控制另一台计算机上的服务

Sco*_*ain 2 windows windows-service remote

我目前正在为 Windows 编写一个服务,我经常修改它并将其更新到我的测试计算机上。我想写一个脚本,自动停止服务,更新exe并重新启动服务。然而,它的停止和开始部分我遇到了麻烦。

我要连接的计算机不在域中,我们不共享用户名和密码。我认为我最好的选择是这样做,sc.exe \\testsvr stop "myService"因为我没有域或共享用户名和密码,这给了我“访问被拒绝”消息。

我可以很容易地添加用户,但我希望这是一种学习体验,当我无法更改用户时。

Eva*_*son 7

为了完整起见,如果您只想使用库存 Windows 工具执行此操作,您可以首先建立到远程机器的 IPC 连接(以在该机器上建立安全令牌),然后使用“SC”命令:

net use \\remote\IPC$ /user:local-username-on-remote-machine passowrd
sc \\remote stop service-name
net use \\remote\IPC$ /delete
Run Code Online (Sandbox Code Playgroud)

这将使您可以控制远程机器上的服务,而不管两台机器的工作组/域成员身份的组合如何。

  • 对于 Vista/W7/W8 系统,您需要允许提升潜力以完全管理员身份连接(这可能代表安全问题),您需要将 DWORD LocalAccountTokenFilterPolicy=1 添加到 HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\系统 http://support.microsoft.com/kb/951016 (2认同)