在网络上远程终止/运行进程

在网络上远程终止/运行进程

我们的网络规模很小,基于 Windows (XP/7),大约有 15 台机器。我开发了一些我们内部使用的软件应用程序,这些应用程序会定期更新。要更新软件,用户必须关闭并重新打开应用程序。然后系统会提示他们进行更新。

所以我的问题是...我有系统管理员权限,有什么办法可以从我的机器上对网络上的每台机器执行此操作吗?本质上,我想要一个脚本来终止“SomeProcess.exe”,然后为网络上的每台机器启动“SomeProcess.exe”,这样我就可以从我的桌面执行它了。

答案1

如果你想一次处理一台机器,你可以在传统命令提示符下使用“taskkill /S MACHINENAMEHERE /U yourusername /F /IM process.exe”执行此操作

如果想真正高效,就用powershell v2.0吧

如果您正在使用 AD,我会查找安装 QUEST AD CMDlets,然后查看: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'

}

当然,你必须对上面的内容做一些修改,并可能稍微调整一下语法……但它至少应该能让你开始

答案2

假设您可以使用 sysinternal 工具,您可以使用杀伤力远程终止进程(假设您知道进程名称)

pskill \\computer -u用户名-p密码进程名

然后你可以使用执行程序重新启动该应用程序。

psexec \\计算机 c:\应用程序.exe -i

相关内容