2017-07-11 54 views
0

我一直在嘗試創建一個腳本,該腳本從最初從PDQ部署創建的所有AD計算機中以管理員名稱的形式刪除C:\ Users中的文件夾。當我嘗試運行它時,出現有關缺少文件路徑的錯誤。搜索結果產生了很長的腳本,儘管我現在的腳本只有幾行。我希望它儘可能輕巧,因此性能不會嚴重降低。我錯過了什麼嗎?下面的代碼。用於刪除AD計算機上用戶的文件夾的PowerShell腳本

$目標= 'C:\用戶\文件夾'

獲取-ChildItem $目的地|喜歡的foreach對象{刪除,項目-Force -recurse}

+0

只引用本地計算機。你打算如何在遠程計算機上執行此操作?另外,第二行可以是'Remove-Item $ Destination -Force -Recurse'。 – TheMadTechnician

+0

它將在一個單獨的隔離PDQ部署文件中,在本地進行一些測試後執行到遠程PC – Squilly

+1

是否有理由不使用組策略功能可以爲您做到這一點? –

回答

0

東西可以工作,假設你有特權,但運行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 
} 
+0

謝謝!這是可以修改的在本地進行測試嗎?我想通過編輯通配符來包含單個計算機的名稱? – Squilly

+0

是或簡單地將$ allComputers = @(「server01」,「server02」,「etc」)作爲一個數組,然後在foreach中只有$ allComputers,而不是$ allComputers.Name – davdav

相關問題