У нас есть файл csv с примерно 8000 URL-адресами файла документа SharePoint. Файлы, о которых они говорят, должны быть загружены в папку общего доступа к файлам, а затем удалены из SharePoint. Файлы находятся не на тех же сайтах, а на нескольких сотнях ферм серверов. Мы хотим удалить только указанные файлы - НЕ всю библиотеку.Автоматическое удаление Powershell указанных документов SharePoint
У нас есть следующий сценарий для загрузки, который создает структуру папок, чтобы загруженные файлы были разделены.
param (
[Parameter(Mandatory=$True)]
[string]$base = "C:\Export\",
[Parameter(Mandatory=$True)]
[string]$csvFile = "c:\export.csv"
)
write-host "Commencing Download"
$date = Get-Date
add-content C:\Export\Log.txt "Commencing Download at $date":
$webclient = New-Object System.Net.WebClient
$webclient.UseDefaultCredentials = $true
$files = (import-csv $csvFile | Where-Object {$_.Name -ne ""})
$line=1
Foreach ($file in $files) {
$line = $line + 1
if (($file.SpURL -ne "") -and ($file.path -ne "")) {
$lastBackslash = $file.SpURL.LastIndexOf("/")
if ($lastBackslash -ne -1) {
$fileName = $file.SpURL.substring(1 + $lastBackslash)
$filePath = $base + $file.path.replace("/", "\")
New-Item -ItemType Directory -Force -Path $filePath.substring(0, $filePath.length - 1)
$webclient.DownloadFile($file.SpURL, $filePath + $fileName)
$url=$file.SpURL
add-content C:\Export\Log.txt "INFO: Processing line $line in $csvFile, writing $url to $filePath$fileName"
} else {
$host.ui.WriteErrorLine("Exception: URL has no backslash on $line for filename $csvFile")
}
} else {
$host.ui.WriteErrorLine("Exception: URL or Path is empty on line $line for filename $csvFile")
}
}
write-Host "Download Complete"
Есть ли способ получить версии для каждого файла?
Я искал средство для выполнения удаления, используя тот же файл csv, что и ссылка - весь код, который я видел, относится к удалению целых библиотек, что нежелательно.
Я очень новичок в PowerShell и теряюсь. Может ли кто-нибудь пролить свет?
Большое спасибо.