У нас есть довольно небольшая сеть на базе Windows (XP / 7), состоящая примерно из 15 машин. Я разработал несколько программных приложений, которые мы используем для внутренних целей и которые регулярно обновляются. Чтобы обновить программное обеспечение, пользователь должен закрыть и снова открыть приложение. Затем им будет предложено выполнить обновление.
Итак, вот мой вопрос ... У меня есть права системного администратора, могу ли я сделать это для каждой машины в сети с моей машины? По сути, я хочу, чтобы сценарий убивал SomeProcess.exe, а затем запускал SomeProcess.exe для каждой машины в нашей сети, которую я могу запустить со своего рабочего стола.
Предполагая, что вы согласны с использованием инструментов sysinternal, вы можете использовать PSKill удаленно убить процесс (при условии, что вы знаете имя процесса)
pskill \\ компьютер -u имя пользователя -p пароль имя процесса
Затем вы можете использовать PSExec чтобы снова запустить приложение.
psexec \\ компьютер c: \ application.exe -i
Если вы хотите работать с одной машиной за раз, вы можете сделать это в старой доброй командной строке с помощью "taskkill / S MACHINENAMEHERE / U yourusername / F / IM process.exe"
Если вы хотите быть действительно эффективным, давайте воспользуемся powershell v2.0
Если вы используете AD, я бы поискал установку CMDlets QUEST AD, а затем взглянул бы на: Quest Wiki: на GET-QADCOMPUTER
В противном случае, если вы не используете AD, я бы поместил все имена компьютеров в CSV и использовал бы что-то вроде следующего фрагмента powershell и используя 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'
}
Конечно, вам придется внести некоторые изменения в вышеизложенное и, вероятно, немного изменить синтаксис ... но это должно, по крайней мере, помочь вам начать