利用 Invoke-RestMethod 透過網址下載
需要具有 Site 管理權限
搭配 Junction 避免路徑過長的問題
如果還是過長,要再另外處理
注意非黑色文字的變數與執行細節
ExportSharePointSiteTriggler.ps1
$Finalize = $False;
$ConcurrentLimit = 5;
Add-PSSnapin Microsoft.SharePoint.PowerShell
$Sites = (Get-SPSite -Limit ALL)
$ExceptSites = @();
$ExceptSites += 'DefaultSite';
$TargetSites = @();
foreach ($SiteURL in ($Sites | where {(($_.Url -Split '/').count -eq 5) -and ($ExceptSites -notcontains ($_.Url -Split '/')[-1])})) {
$TargetSites += ($SiteURL.Url -Split '/')[-1];
};$Location = 'S:\Command';
Set-Location -LiteralPath $Location;foreach ($TargetSite in $TargetSites) {
write-host ('Processing ' + $TargetSite);
Start-Process "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -ArgumentList "-NoProfile", "-ExecutionPolicy", "Bypass", "-File", ($Location + '\ExportSharePointSiteMain.ps1'), "-TargetSite", $TargetSite
while ((Get-Process -Name 'PowerShell').Count -ge $ConcurrentLimit) {
Start-Sleep -Seconds 1;
};
};
