远程closuresWindows工作站(从Linux)

我有一个由10个Windows 7 Professional工作站组成的系统,join到一个域中。

作为“紧急”系统closures过程的一部分,我想要一个从Linux控制器(这又是一个服务编排工具)触发远程closures的机制。 “紧急”这个词在引用中是因为它并不是真正的紧急情况,但仍然需要一种机制,而不是简单地告诉用户closures工作站。

所以,我看了psexec ,这几乎是理想的,除了似乎只能从另一个Windows机器触发。 ..我想这不是不可能有一个Windows服务器触发工作站关机程序,但这并不理想。

我收集一个选项是安装Cygwin和OpenSSH,但坦率地说,这似乎很笨重

我想,理想情况下..程序作为服务运行,具有本地(或域)pipe理员权限,侦听端口,SSLencryption,RESTful API调用,如http://workstation:8888/admin/shutdown?key=secretsharedkey

我是否需要用C#.net编写一些东西,或者是否有跨平台触发windows工作站closures的工具?

如何使用Samba软件包中的net工具?

例如:

 net rpc shutdown -S workstation1 -U Administrator -w example.com 

您可能需要稍微不同的命令行选项,例如-k使用Kerberos进行身份validation; 检查手册页。

你可以使用winexe 。 它使用RPC调用在目标计算机上安装服务,然后使用此服务在其上执行命令。 您可以指定凭据,并且Linux服务器不必是域的成员。

请注意,它基于Samba代码,但;)

RPC是这样的,但是可能有更多的设置要做,特别是对于Windows Vista,Windows 7和更高版本的Windows,以允许远程关机:

A)Win7机器上的部分设置:

1)运行“secpol.msc”

  • 在程序树中,打开“安全设置/本地策略/用户权限分配”

  • find条目“强制从远程系统关机”

  • 编辑条目,添加将用于关机的CONCRETE用户(例如:nouknouk)

2)以pipe理员身份运行regedit.exe

  • findHKLM / SOFTWARE / Microsoft / Windows / CurrentVersion / Policies / System

  • 创build一个名为“LocalAccountTokenFilterPolicy”的新registryDWORD(32)值,然后为其分配值“1”

3)设置远程registry服务:

  • 以pipe理员身份打开“cmd.exe”

  • 执行以下两个命令:

    sc config RemoteRegistry start = auto

    sc启动RemoteRegistry

B)安装在Linux机器上的一部分:

1)安装“samba-common”包:

这取决于你的Linux发行版,但是对于Debian和推导(Ubuntu,Linux Mint,…),apt-get命令可以这样执行:

apt-get install samba-common

2)要真正closures您的Windows机器的Linux机器,运行以下命令:

net rpc shutdown -f -t 0 -C'message'-U userName%password -I xxx.yyy.zzz.ttt

哪里:

  • '-f'表示“强制”closures(我认为这是强制性的)

  • '-t 0'是在做之前的延迟(0表示'现在')。

  • '-U user%password'是本地用户及其在Windows机器上的密码(在A点已被允许远程关机的密码)。

  • '-I'是要关机的Windows机器的IP地址。