我们有两台运行 Cisco Call Manager 软件的 Windows 2000 服务器。这些服务器位于一个工作组中。我们还有一台运行 Cisco Unity 的 Windows 2000 服务器,它是我们主域的一部分,其余服务器、域控制器等都运行 Windows Server 2003。
我们正在域中的一台 2003 服务器上安装一些环境监控软件,我希望能够运行一个脚本,在出现诸如空调故障之类的情况时关闭 Windows 2000 服务器。
这可能吗?
我可以从 2003 域 ping 通 Call Manager 2000 服务器,但反过来不行。如果我进入 2000 服务器上的“我的网络位置”,我可以看到该域,并看到其中的所有计算机。但是我实际上只能访问 Windows 2000 Unity 服务器。同样,Unity 服务器也是我唯一可以 ping 通的服务器。
有没有办法让域管理员帐户在 2000 服务器上获得权限来运行该脚本?有没有办法让 2000 服务器连接到 2003 服务器而无需将其从工作组中删除?
任何帮助,将不胜感激。
谢谢
答案1
正如您所描述的,在 Windows 机器上远程调用关机需要启动关机的主机和被关机的主机之间进行双向通信。身份验证是协议中“内置”的,因此您还必须让启动关机的主机正确进行身份验证。
在远程未加入域的计算机上远程调用关机的简单脚本如下:
net use \\x.x.x.x\ipc$ /user:administrator password
shutdown -s -t 10 -f -m \\x.x.x.x
met ise \\x.x.x.x\ipc$ /delete
在第一行中将远程服务器的 IP 地址替换为“xxxx”,并将远程服务器上的本地管理员用户名和密码替换为远程服务器net use
。
不幸的是,依靠“查看”“网上邻居”中的计算机并不能告诉您太多有关机器之间允许哪些类型的流量的信息。
我刚刚嗅探了 Windows Server 2003 计算机和 Windows 2000 Server 计算机之间的这种交换(有趣的是,这台计算机正在为我的一位客户运行旧的 2003 版 Cisco CallManager 3 安装),并使用上面的脚本执行了关闭(尽管我重新启动了他们的服务器,而不是关闭它——数据包交换是相同的)。我观察到 TCP 端口 139 和 445 被用于移动流量。我猜如果我只打开端口 139,它可能仍然有效,但你必须尝试一下才能看到。
如果您想在关机脚本中使用 CallManager 服务器的名称而不是 IP 地址,那么您需要使 NetBIOS 或基于 DNS 的名称解析正常工作。
编辑:
通常,这不是“Windows 问题”,而是硬件电源管理问题。您可能安装了错误的 HAL,或者 BIOS 电源管理支持可能已关闭。
您可以尝试在“HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”中添加 REG_SZ 值“PowerdownAfterShutdown”,并将其设置为“1”,看看它是否对行为产生影响。
检查 BIOS 并确保电源管理功能已启用。