これを複数のサーバー(ほぼ40〜50台のサーバー)で並行して実行したい
$Username = "ユーザー"
$Password = "Password"
$servers = get-content "c:\temp\servers.txt"
$sb = {c:\temp\PsExec.exe -h \\$server -u $Username -p $password cmd.exe /c "echo . | Powershell.exe -executionpolicy bypass -file c:\script.ps1" > "$env:userprofile\Desktop\output.txt"}
foreach($server in $servers)
{
start-job -ScriptBlock $sb
}
このコードは、start-job を削除すると正常に動作しますが、次々と実行されるため、多くの時間がかかります。
PSsessionやinvoke-commandは当方の環境で制限されているため使えません。
このコードは決して終了しません。次の位置で停止します。
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com