在Active Directory域成员PC上运行脚本,无需重新启动或login

我有一个在Windows Server 2003 R2上运行的Active Directory域。 客户端是Windows XP SP2,Vista和Windows 7的混合体。我想在每台机器上运行脚本(batch file,但可能是VB脚本)一次。 我不希望在login,注销,启动或关机时发生这种情况。 我只是希望它尽快发生,一次。

有没有一种相对无痛的方式来做到这一点,将跨所有客户端types工作?

谢谢。

更新 :我原本应该提到这一点:许多个人电脑都在插入到以太网插口的便宜的5端口路由器后面。 认为五个gradle生共享一个办公室。 因此,办公室中的每台PC都有一个RFC1918 IP。 我在路由器的公共端,所以我不能直接连接到PC。 因此PsExec或WMI将不起作用。 WinRM可能,但大多数电脑没有安装。 我认为我唯一的select是以某种方式使用GPO,也许安排任务从networking驱动器运行脚本。

我会说使用psTools psexec.exe来远程运行脚本。

起床和跑步是一个无痛的过程,不需要你login到每个站点,也不需要留下足迹。


为了回应所有的评论,因为他们可以与DC进行交stream,所以你应该能够跳到DC上并从那里运行psexec脚本。

这听起来像psexec的工作。 如果您提供“\”作为计算机,PSexec将允许您远程执行域中所有计算机上的脚本。 您需要在脚本中添加某种逻辑,以在已完成的系统上留下某种指示,并在开始之前检查该指示。

您可以编写一个包装脚本并使用psexec连接到远程机器,并执行想要运行的脚本,只要它位于这些机器可以访问的位置。 你只需要有一个连接到你的PC的源代码来循环它们。

你也可以编写一个脚本(PS,VBScript等)来通过WMI执行它 ,但正如其他人指出的,psTools可能是最简单的方法。

我想在每台机器上运行脚本(batch file,但可能是一个VB脚本),一次。 我不希望在login,注销,启动或关机时发生这种情况。 我只是希望它尽快发生,一次。 有没有一种相对无痛的方式来做到这一点,将跨所有客户端types工作?

VBscript的。

许多个人计算机都在廉价的5端口路由器后面插入一个以太网插口。 认为五个gradle生共享一个办公室。 因此,办公室中的每台PC都有一个RFC1918 IP。

我很惊讶,这一切工作。 我认为所有的路由器都有不同的子网, 否则,您的域将完全混乱,因为您有任何数量的客户端都试图要求相同的192.168.xx IP地址…

我在路由器的公共端,所以我不能直接连接到PC。 因此PsExec或WMI将不起作用。

这是你的第一个问题。 你需要在每个networking的“内部”。 这听起来像是远程PC在某种防火墙NAT后面,这会引起各种各样的麻烦。 从技术上讲,“在一个完美的世界”,你的服务器应该和你的客户在同一个networking上。 客户端是否通过VPN连接? 如果是这样,那将是你的票“in”。

我认为我唯一的select是以某种方式使用GPO,也许安排任务从networking驱动器运行脚本。

如果您创build的GPO适用于用户login时,这可能是一个问题,因为您说用户login到计算机时不希望发生这种情况。


我很抱歉冒犯了你,但考虑到问题的性质,我必须问(如果你愿意回答):你为什么需要这样做? 一个托pipe的networking将不会以这种疯狂的方式进行configuration,坦率地说,从我的POV看来,您似乎希望对这些内部networking进行某种违反。