0

所以让我先说我在脚本方面没用,所以请多多包涵。

我们在整个企业中使用 Symantec Endpoint Protection (SEP),Citrix XenServer 5.5 和 SEP 11 似乎存在问题,在没有警告的情况下,SEP 将停止几乎所有对 VM 的访问。通常存在文件和打印或打印服务器虚拟机,因此站点上的所有打印都将停止或所有文件访问。

发生这种情况时,您可以 ping 虚拟机(因此 Nagios 认为它​​没问题),并且许多其他检查(例如 SNMP 轮询等)仍然有效(因此 HP SIM 认为没问题),但是任何域用户的 RDP 访问和登录都被拒绝,因此您必须使用XenCenter 并使用本地帐户登录。登录后,您只需运行“SMC -stop”,然后运行“SMC -start”即可停止和启动所有相关的 SEP 服务。

现在我们有一个 24/7 全天候服务台,但不允许他们访问 XenCenter,因此呼叫会直接传递给 3 级支持,并且在凌晨 2 点,您真的不想因为这么简单的事情而被吵醒。

因为您仍然可以远程运行命令,所以我认为某种形式的脚本(任何语言)只是提示输入计算机名称,一旦输入运行“ SMC -Stop ”,暂停 15 秒,然后运行“ SMC -start ”和 Echo 的“ Symantec Endpoint Protection Services Restarted”将是完美的,它可以让我和我的队友时不时地睡一整晚。

到目前为止,我已经提出了以下脚本,但还没有机会对其进行测试,所以甚至不确定它是否能正常工作(我确实说过我不擅长编写脚本)

strComputer = InputBox("Name of computer to stop SEP Services on:", "Run SMC -stop")

If strComputer = "" Then
    Wscript.Quit
End If

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd.exe /c SMC -Stop"

MsgBox "Waiting 15 Seconds before restarting SEP Services"
WScript.Sleep 15000

Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd.exe /c SMC -Start"
Set oShell = Nothing

MsgBox "Symantec Endpoint Protection Services Restarted"*

Apreceate 提供的任何帮助。

4

1 回答 1

0

您的脚本将在本地计算机上运行命令,而不是在远程计算机上。要通过 VBScript 在远程计算机上执行命令,请尝试WMI

computer = "..."

Sub RunRemoteCommand(cmd, host)
  Set wmi = GetObject("winmgmts://" & host & "/root/cimv2")
  rc = wmi.Get("Win32_Process").Create(cmd, , , pid)
  If rc <> 0 Then
    WScript.Echo "Running '" & cmd & "' on " & computer & " failed (" & rc & ")."
    WScript.Quit 1
  End If
End Sub

RunRemoteCommand "smc -stop", computer
WScript.Sleep 15000
RunRemoteCommand "smc -start", computer

您可以使用以下InputBox函数提示输入计算机名称:

computer = InputBox("Enter computername:")

不过,通过以下方式运行批处理脚本可能更简单PsExec

C:\>psexec \\computer -c restart_sep.cmd

restart_sep.cmd看起来像这样:

@echo off
smc -stop
ping -n 16 127.0.0.1 >nul
smc -start

该选项-c告诉PsExec在执行之前将批处理文件从本地主机复制到远程计算机。ping -n 16 127.0.0.1模拟一个sleep 15ping在 2 个回显请求之间放置约 1 秒的延迟)。

于 2013-07-04T11:11:50.787 回答