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

断开连接