PowerShell 中的 OneDrive 连接问题
Connection to OneDrive issue in PowerShell
我在 VSCode 中有此脚本 运行ning,但 $SiteURL 不同。我在 ISE 中再次打开此脚本并更改 $SiteUR $searchfor 和 $folderpath。我遇到的问题是每次我在 ISE 运行 中执行 Get-PnPListItem 时,它都会从我在 VSCode 中提供的路径中获取项目。不确定发生了什么,所以如果我能得到任何帮助或建议,我将不胜感激。
$SiteURL = "https://companyName-my.sharepoint.com/personal/user_id"
$searchfor = "/personal/user_id/Documents/Pkmon"
$folderpath = "Documents/Pkmon"
$CSVFile = "C:\Users\user\Desktop\Resource\FolderStats.csv"
#Connect to SharePoint Online
Connect-PnPOnline $SiteURL -useWebLogin
$FolderItems = Get-PnpListItem -List $folderpath -PageSize 2000 -Fields ID, FileDirRef, FileRef -ScriptBlock `
{ Param($items) $global:counter += $items.Count; Write-Progress -PercentComplete ($global:Counter / ($List.ItemCount) * 100) -Activity `
"Getting Items from Folder '$FolderServerRelativeURL'" -Status "Getting Items $global:Counter of $($List.ItemCount)"; }
$fieldvalues = $FolderItems.Fieldvalues
$result = @()
foreach ($field in $fieldvalues) {
$obj = New-object psobject -property $field
$result += $obj.fileref
}
$final = $result | where-object {$_ -match $searchfor}
$item = New-Object psobject -Property @{
FolderName = Split-Path -Path $searchfor -Leaf
URL = $searchfor
filesfoldercount = $final.count
}
$item
$item | Export-Csv -Path $CSVFile -NoTypeInformation
你可以像
这样的变量捕获连接对象
$thisConnection = Connect-PnPOnline $SiteURL -useWebLogin -ReturnConnection
-ReturnConnection
相当于通常所说的 -PassThru
。它使 cmdlet return 成为与其他 cmdlet 上的 -Connection 参数一起使用的连接对象。
然后在 Get-PnpListItem
cmdlet 的参数 -Connection
中使用它:
$FolderItems = Get-PnpListItem -List $folderpath -Connection $thisConnection ...
您可能还需要在 VSCode 实例中指定连接。
完成后,使用 Disconnect-PnPOnline -Connection $thisConnection
断开连接
我在 VSCode 中有此脚本 运行ning,但 $SiteURL 不同。我在 ISE 中再次打开此脚本并更改 $SiteUR $searchfor 和 $folderpath。我遇到的问题是每次我在 ISE 运行 中执行 Get-PnPListItem 时,它都会从我在 VSCode 中提供的路径中获取项目。不确定发生了什么,所以如果我能得到任何帮助或建议,我将不胜感激。
$SiteURL = "https://companyName-my.sharepoint.com/personal/user_id"
$searchfor = "/personal/user_id/Documents/Pkmon"
$folderpath = "Documents/Pkmon"
$CSVFile = "C:\Users\user\Desktop\Resource\FolderStats.csv"
#Connect to SharePoint Online
Connect-PnPOnline $SiteURL -useWebLogin
$FolderItems = Get-PnpListItem -List $folderpath -PageSize 2000 -Fields ID, FileDirRef, FileRef -ScriptBlock `
{ Param($items) $global:counter += $items.Count; Write-Progress -PercentComplete ($global:Counter / ($List.ItemCount) * 100) -Activity `
"Getting Items from Folder '$FolderServerRelativeURL'" -Status "Getting Items $global:Counter of $($List.ItemCount)"; }
$fieldvalues = $FolderItems.Fieldvalues
$result = @()
foreach ($field in $fieldvalues) {
$obj = New-object psobject -property $field
$result += $obj.fileref
}
$final = $result | where-object {$_ -match $searchfor}
$item = New-Object psobject -Property @{
FolderName = Split-Path -Path $searchfor -Leaf
URL = $searchfor
filesfoldercount = $final.count
}
$item
$item | Export-Csv -Path $CSVFile -NoTypeInformation
你可以像
这样的变量捕获连接对象$thisConnection = Connect-PnPOnline $SiteURL -useWebLogin -ReturnConnection
-ReturnConnection
相当于通常所说的 -PassThru
。它使 cmdlet return 成为与其他 cmdlet 上的 -Connection 参数一起使用的连接对象。
然后在 Get-PnpListItem
cmdlet 的参数 -Connection
中使用它:
$FolderItems = Get-PnpListItem -List $folderpath -Connection $thisConnection ...
您可能还需要在 VSCode 实例中指定连接。
完成后,使用 Disconnect-PnPOnline -Connection $thisConnection