我需要一些脚本帮助删除服务器(DC)上的AD禁用用户主文件夹和漫游配置文件文件夹。 我已经完成的步骤,我创建了一个powershell命令:
Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=Marked for Deletion,OU=Disable Users,DC=******,DC=com" -Filter * -Property * |
Select-Object -Property homeDirectory,profilePath | Export-CSV -Path .\Remove.csv
此命令导出已禁用用户的主文件夹和漫游配置文件文件夹的属性。 现在,' CSV文件包含两个colmuns,一个是" homeDirectory"第二个" profilePath"
问题是,当我执行此脚本时,我收到错误。
$folders = Get-Content "C:\lab\remove.csv"
foreach ($homeDirectory in $folders) {
Remove-Item -Path $homeDirectory -force -Recurse
}
foreach ($profilePath in $folders) {
Remove-Item -Path $profilePath -force -Recurse
}
write-host -foregroundcolor yellow "Delete action complete"
有人可以帮助我,我会很感激。
答案 0 :(得分:0)
首先,我会从您的CSV中删除类型信息,如下所示:
Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=Marked for Deletion,OU=Disable Users,DC=******,DC=com" -Filter * -Property * |
Select-Object -Property homeDirectory,profilePath |
Export-CSV -Path .\Remove.csv -NoTypeInformation
然后,对于你的删除代码,我会用这个:
Import-Csv "C:\lab\remove.csv" | % {
Remove-Item -Path $_.homeDirectory -force -Recurse
Remove-Item -Path $_.profilePath -force -Recurse
}
write-host -foregroundcolor yellow "Delete action complete"
您的代码的问题在于您没有循环遍历列,您逐行循环然后再进行两次。要按照您的方式进行操作,您需要将该行分隔为逗号。