0

我需要一些脚本帮助,以删除服务器 (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"

有人可以帮我解决这个问题,我将不胜感激。

4

1 回答 1

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"

您的代码的问题是您没有循环遍历列,而是逐行循环然后执行两次。要按照自己的方式进行操作,您需要在逗号处拆分行。

于 2013-07-25T08:05:45.043 回答