我有一个在 Windows Server 2003 R2 上运行的 Active Directory 域。客户端是 Windows XP SP2、Vista 和 Windows 7 的混合体。我想在每台机器上运行一次脚本(批处理文件,但可能是 VB 脚本)。我不希望在登录、注销、启动或关机时发生这种情况。我只希望它尽快发生一次。
是否有一种相对轻松的方法可以实现此目的并且适用于所有客户端类型?
谢谢。
更新:我本来应该提到这一点:许多 PC 都位于插入以太网插孔的廉价 5 端口路由器后面。想象一下五个研究生共用一间办公室。因此,办公室中的每台 PC 都有一个 RFC1918 IP。我在路由器的公共端,因此无法直接连接到 PC。因此 PsExec 或 WMI 将不起作用。WinRM 可能有效,但大多数 PC 都没有安装它。我想我唯一的选择是以某种方式使用 GPO,也许是安排任务以从网络驱动器运行脚本。
答案1
我会说使用ps工具psexec.exe 远程运行脚本。
启动和运行过程非常轻松,不需要您登录每个站点,也不会留下任何痕迹。
回应所有评论,由于他们可以与域中的 DC 对话,所以您应该能够跳转到 DC 并从那里运行 psexec 脚本。
答案2
这听起来像是一份工作执行。如果您提供“\”作为计算机,PSexec 将允许您在域中的所有计算机上远程执行脚本。您需要向脚本添加某种逻辑,以在系统上留下某种已完成的指示,并在开始之前检查这一点。
答案3
您可以编写一个包装器脚本并使用 psexec 连接到远程计算机并执行要运行的脚本(前提是该脚本位于这些计算机可以访问的位置)。您只需拥有要连接的 PC 的源即可循环访问它们。
答案4
我想在每台机器上运行一次脚本(批处理文件,但可能是 VB 脚本)。我不希望在登录、注销、启动或关机时发生这种情况。我只希望它尽快发生一次。有没有一种相对轻松的方法可以适用于所有客户端类型?
VBscript。
许多 PC 都位于插入以太网插孔的廉价 5 端口路由器后面。想象一下五个研究生共用一间办公室。因此办公室中的每台 PC 都有一个 RFC1918 IP。
我很惊讶这竟然有效。我假设所有路由器都有不同的子网;否则,您的域将陷入彻底的混乱,因为您有任意数量的客户端都试图声明相同的 192.168.xx IP 地址...
我在路由器的公共端,因此无法直接连接到 PC。因此 PsExec 或 WMI 不起作用。
这是你的第一个问题。你需要“进入”每个远程 PC 的网络。听起来远程 PC 位于某种防火墙 NAT 后面,这会引起各种麻烦。从技术上讲,“在理想情况下”,你的服务器应该与你的客户端位于同一网络上。客户端是通过 VPN 连接的吗?如果是这样,那将是你的“进入”门票。
我认为我唯一的选择是以某种方式使用 GPO,也许是安排任务从网络驱动器运行脚本。
如果您创建的 GPO 在用户登录时应用,则这可能是一个问题,因为您说过您不希望在用户登录机器时发生这种情况。
很抱歉冒犯了你,但考虑到问题的性质,我不得不问(如果你愿意回答的话):你为什么需要这样做?托管网络不会以这种疯狂的方式配置,坦率地说,从我的角度来看,你似乎希望针对这些内部网络发动某种攻击。