約15台のマシンからなるかなり小さなウィンドウ(XP/7)ベースのネットワークがあります。定期的に更新される、社内で使用するいくつかのソフトウェアアプリケーションを開発しました。ソフトウェアを更新するには、ユーザーはアプリケーションを閉じて再度開く必要があります。次に、更新を行うように求められます。
だからここに私の質問があります...私はシステム管理者権限を持っています、私のマシンからネットワーク上の各マシンに対してこれを行うことができる方法はありますか?基本的に、デスクトップから実行できるネットワーク上のすべてのマシンに対して、スクリプトで「SomeProcess.exe」を強制終了してから「SomeProcess.exe」を起動する必要があります。
一度に1台のマシンを実行する場合は、古き良き方法でコマンドを実行できます。「taskkill/S MACHINENAMEHERE/U yourusername/F /IMprocess.exe」でプロンプトを表示します。
本当に効率的になりたい場合は、PowerShellv2.0を使用しましょう
ADを使用している場合は、QUEST AD CMDletのインストールを検索してから、以下を確認します。 Quest Wiki:GET-QADCOMPUTER
それ以外の場合、ADを使用していない場合は、すべてのコンピューター名をCSVに入れ、次のPowerShellのようなものを使用し、前述のSamのようにPSKILLとPSEXECを使用します。
$username = "YourUserName"
$password = "YourPassword"
$process = "YourProcess.exe"
$pathtoCSV = "pathto.csvfile"
Import-CSV $pathtoCSV | ForEach-Object{
PSKILL $._columnfromCSVComputername -u $username -p $password $process
Start-Sleep -s 10 #wait for process to die
PSEXEC $._columnfromCSVComputername 'C:\PATH\'$process '-i'
}
もちろん、上記にいくつかの変更を加える必要があり、構文を少し調整する可能性があります...しかし、少なくとも開始する必要があります