簡體   English   中英

在多台遠程計算機上運行 Powershell 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM