从txt文件对每个站点运行PowerShell脚本

从txt文件对每个站点运行PowerShell脚本,powershell,sharepoint-online,Powershell,Sharepoint Online,正在寻找有关针对sharepoint online运行powershell脚本的帮助。基本上我现在有: #Parameters $SiteURL = "https://mysite.sharepoint.com/sites/site1" $ListName= "Documents" $ReportOutput = "C:\Temp\export.csv" $Pagesize = 500 #Connect to Share

正在寻找有关针对sharepoint online运行powershell脚本的帮助。基本上我现在有:

    #Parameters
$SiteURL = "https://mysite.sharepoint.com/sites/site1"
$ListName= "Documents"
$ReportOutput = "C:\Temp\export.csv"
$Pagesize = 500
   
#Connect to SharePoint Online site
Connect-PnPOnline $SiteURL -UseWebLogin
 
#Delete the Output report file if exists
If (Test-Path $ReportOutput) { Remove-Item $ReportOutput}
 
#Array to store results
$Results = @()
 
#Get all Items from the document library with given fields
$ListItems = Get-PnPListItem -List $ListName -Fields "FileLeafRef", "SMTotalFileStreamSize", "FileDirRef","Author","Created","File_x0020_Type"
 
#Iterate through each item
Foreach ($Item in $ListItems) 
{
    #Filter Files only
    If (($Item.FileSystemObjectType) -eq "File")
    {
        $Results += New-Object PSObject -Property ([ordered]@{
            FileName          = $Item["FileLeafRef"]
            FileType          = $Item["File_x0020_Type"]            
            RootFolder        = $Item["FileDirRef"]
            RelativeURL       = $Item["FileRef"]
            FileSize          = ($Item["SMTotalFileStreamSize"]) 
            CreatedBy         = $Item["Author"].Email
            CreatedOn         = $Item["Created"]
            Modified          = $Item["Modified"]
            ModifiedByEmail   = $Item["Editor"].Email
        })
    }
}
 
#Export the results
$Results
$Results | Export-Csv -Path $ReportOutput -NoTypeInformation
不过,我有一个文本文件中的网站列表,我想对其运行此操作

> https://mysite.sharepoint.com/sites/site1
> https://mysite.sharepoint.com/sites/site2
> https://mysite.sharepoint.com/sites/site3

将站点url添加到CSV中:

使用导入CSV命令从CSV导入并使用站点url:

$contents = Import-Csv  ".\Test.csv" 
$ListName= "Documents"
$ReportOutput = "C:\Temp\export.csv"
$Pagesize = 500

foreach($row in $contents)
{
        
        #Parameters
        #$SiteURL = "https://mysite.sharepoint.com/sites/site1"
        $SiteURL = $row.SiteUrl
        
   
        #Connect to SharePoint Online site
        Connect-PnPOnline $SiteURL -UseWebLogin
 
        #Delete the Output report file if exists
        If (Test-Path $ReportOutput) { Remove-Item $ReportOutput}
 
        #Array to store results
        $Results = @()
 
        #Get all Items from the document library with given fields
        $ListItems = Get-PnPListItem -List $ListName -Fields "FileLeafRef", "SMTotalFileStreamSize", "FileDirRef","Author","Created","File_x0020_Type"
 
        #Iterate through each item
        Foreach ($Item in $ListItems) 
        {
            #Filter Files only
            If (($Item.FileSystemObjectType) -eq "File")
            {
                $Results += New-Object PSObject -Property ([ordered]@{
                    FileName          = $Item["FileLeafRef"]
                    FileType          = $Item["File_x0020_Type"]            
                    RootFolder        = $Item["FileDirRef"]
                    RelativeURL       = $Item["FileRef"]
                    FileSize          = ($Item["SMTotalFileStreamSize"]) 
                    CreatedBy         = $Item["Author"].Email
                    CreatedOn         = $Item["Created"]
                    Modified          = $Item["Modified"]
                    ModifiedByEmail   = $Item["Editor"].Email
                })
            }
        }
 
        #Export the results
        $Results
        $Results | Export-Csv -Path $ReportOutput -NoTypeInformation
}

那么您想对列出的所有SharePoint网站运行相同的脚本吗?您可以对它执行
foreach
循环。