[英]Run Powershell Script on Multiple Remote Computers
再會。
如果這似乎是一個重復的問題,我深表歉意,但我所做的研究讓我更加困惑。 我正在嘗試運行以下 Powershell 腳本來刪除某些計算機上的文件夾:
$users = get-childitem c:\users
foreach ($user in $users)
{
$folder = "C:\Users\" + $user + "\AppData\Local\Microsoft\OneDrive"
Remove-Item $folder -Recurse -Force -ErrorAction silentlycontinue
}
該腳本似乎有效。 如何在遠程計算機列表上使用此腳本?
謝謝你。
您可以使用帶有 ComputerName 參數的 Invoke-Command cmdlet。 例子:
Invoke-Command { $env:ComputerName } -ComputerName SOMEMACHINE
正如dugas所指出的,您可以使用Invoke-Command使用-ScriptBlock
和-ComputerName
參數執行遠程腳本執行。
# Create script block using surrounding {}
$sb = {
$users = Get-Childitem C:\Users -Directory -Name
foreach ($user in $users) {
$folder = "C:\Users\" + $user + "\AppData\Local\Microsoft\OneDrive"
Remove-Item $folder -Recurse -Force -ErrorAction silentlycontinue
}
}
# Create array of computer names since -ComputerName accepts an array
$computers = 'computer1','computer2','computer3'
Invoke-Command -ComputerName $computers -ScriptBlock $sb
有許多方法可以遍歷遠程目錄。 使用帶有-Directory
和-Name
參數Get-ChildItem
將僅返回C:\Users
下的文件夾名稱。
如果您使用 Active Directory 域,請不要為脫機計算機、無法訪問的計算機等而頭疼,請讓系統管理員使用組策略首選項創建一個運行一次計划任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.