用于删除AD计算机上用户中文件夹的PowerShell脚本

用于删除AD计算机上用户中文件夹的PowerShell脚本,powershell,active-directory,Powershell,Active Directory,我一直在尝试创建一个脚本,该脚本从最初从PDQ部署创建的所有AD计算机中以管理员的名义删除C:\Users中的文件夹。当我试图运行它时,我得到一个关于丢失文件路径的错误。搜索结果产生了一个很长的脚本,尽管我当前的脚本只有几行长。我希望它尽可能轻,这样性能就不会严重降低。我错过什么了吗?代码如下 $Destination='C:\Users\foldername' Get-ChildItem$Destination | ForEach对象{remove-Item-Force-recurse}假设您

我一直在尝试创建一个脚本,该脚本从最初从PDQ部署创建的所有AD计算机中以管理员的名义删除C:\Users中的文件夹。当我试图运行它时,我得到一个关于丢失文件路径的错误。搜索结果产生了一个很长的脚本,尽管我当前的脚本只有几行长。我希望它尽可能轻,这样性能就不会严重降低。我错过什么了吗?代码如下

$Destination='C:\Users\foldername'


Get-ChildItem$Destination | ForEach对象{remove-Item-Force-recurse}

假设您有权限,则类似的操作可能会起作用,但运行带有通配符筛选器的Get-ADComputer可能需要很长时间,具体取决于有多少个通配符筛选器

$allComputers = Get-ADComputer -filter "Name -like `"*`"" | Select Name
$Destination = "C:\Users\folder"
Foreach($computer in $allComputers.Name)
{
    Invoke-Command -computername $computer -ScriptBlock {
        param($Destination)
        if(Test-Path ($Destination)){
            Write-Host "Removing $Destination from $computer"
            Remove-Item $Destination -Force -Recurse
        }
    } -ArgumentList $Destination
}

它只引用本地计算机。您打算如何在远程计算机上执行此操作?另外,第二行可以是Remove Item$Destination-Force-Recurse。它将位于一个单独的独立PDQ部署文件中,在本地测试一段时间后执行到远程PC。有没有理由不使用可以为您执行此操作的组策略功能?我没有必要的权限将其添加为GPO,否则我就走那条路。谢谢!是否可以修改以进行本地测试?我设想通过编辑通配符来包含一台计算机的名称,或者简单地将$allComputers=@server01、server02等作为一个数组,那么在foreach中,您将只有$allComputers,而不是$allComputers.name