我的powershell脚本无法从csv文件中删除多个用户,但可以删除1个用户

eivgtgni  于 2022-12-06  发布在  Shell
关注(0)|答案(2)|浏览(175)

这是删除用户的脚本,但只有当1条目在那里的csv文件。然而,当我在csv中输入多个条目,脚本将所有行的值作为一个单一的条目。我该如何修复它?提前感谢!

Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue
$CSVPath = "D:\Temp\userss.csv"
$CSVFile = Import-CSV $CSVPath
$web = Get-SPWeb -Identity https://................./
$DocLibsName = "Bilder der websitesammlung"
$folder = $web.Folders[$DocLibsName].SubFolders

foreach($Files in $CSVFile)
{
Write-Host "Retreiving user..." -ForegroundColor Blue
$user = $CSVFile.users
$items = $folder.Files | where {$_.Title -eq $user}
If($items.Title -contains $user)
{
$items.Delete()
Write-Host $user "deleted" -ForegroundColor DarkGreen

}
Else { 
Write-Host $user"not found" -ForegroundColor DarkRed 
}

}
Write-Host "Finished" -ForegroundColor Green
kmpatx3s

kmpatx3s1#

请尝试将代码“$user = $CSVFile.users”更改为“$user = $Files.users"。希望它能对您有所帮助。

t3irkdon

t3irkdon2#

请尝试使用以下PowerShell代码:

Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue
$CSVPath = "D:\Temp\userss.csv"
$CSVFile = Import-CSV $CSVPath
$web = Get-SPWeb -Identity https://................./
$DocLibsName = "Bilder der websitesammlung"
$folder = $web.Folders[$DocLibsName].SubFolders

foreach($Files in $CSVFile)
{
    foreach($loopItem in $Files.users) {
        Write-Host "Retreiving user..." -ForegroundColor Blue
        $user = $loopItem
        
        $items = $folder.Files | where {$_.Title -eq $user}
        If($items.Title -contains $user)
        {
            $items.Delete()
            Write-Host $user "deleted" -ForegroundColor DarkGreen
        }
        Else { 
            Write-Host $user"not found" -ForegroundColor DarkRed 
        }
    }
}
Write-Host "Finished" -ForegroundColor Green

相关问题