为远程 WMI 打开防火墙
Open Firewall for Remote WMI
我目前使用 winrs
和 shell
更改远程 PC 上的防火墙规则,以便我可以查询 WMI。
strCMD = "winrs -r:" & strHost & " netsh advfirewall firewall set rule group=" _
& Chr(34) & "Windows Management Instrumentation (WMI)" & Chr(34) _
& " new enable=yes"
Shell "cmd.exe /S /C" & strCMD, vbMinimizedNoFocus
有没有更好的方法来做到这一点,不会弹出 CMD windows 短暂窃取焦点?
扩展我的问题:
我的团队领导不是最精通技术的人,所以我在 Excel 工作簿中创建了一堆宏,允许他们做各种事情(比如在 USB 存储 enabled/disabled 之间切换,或者临时提升用户到本地管理员等)。一切正常,但我的团队领导对以下事实感到恼火:当他们 运行 一个命令时,会弹出一个 CMD window 并短暂获得焦点(即使我指定 vbMinimizedNoFocus
)。我不知道还有另一种打开防火墙的方法,这样当他们只是本地管理员而不是域管理员时,他们就可以执行各种任务。是否有 API 或 COM 对象或我可以在 VBA 中引用的东西来远程更改防火墙设置?或者是否有另一种调用 Shell
的方法...比如 WScript.Shell
可以在没有弹出 CMD window 的情况下工作?
是的,使用 WScript.Shell
对象的 Run
方法而不是 Shell
函数应该可行:
Set sh = CreateObject("WScript.Shell")
sh.Run "cmd.exe /S /C " & strCMD, 0, True
我目前使用 winrs
和 shell
更改远程 PC 上的防火墙规则,以便我可以查询 WMI。
strCMD = "winrs -r:" & strHost & " netsh advfirewall firewall set rule group=" _
& Chr(34) & "Windows Management Instrumentation (WMI)" & Chr(34) _
& " new enable=yes"
Shell "cmd.exe /S /C" & strCMD, vbMinimizedNoFocus
有没有更好的方法来做到这一点,不会弹出 CMD windows 短暂窃取焦点?
扩展我的问题:
我的团队领导不是最精通技术的人,所以我在 Excel 工作簿中创建了一堆宏,允许他们做各种事情(比如在 USB 存储 enabled/disabled 之间切换,或者临时提升用户到本地管理员等)。一切正常,但我的团队领导对以下事实感到恼火:当他们 运行 一个命令时,会弹出一个 CMD window 并短暂获得焦点(即使我指定 vbMinimizedNoFocus
)。我不知道还有另一种打开防火墙的方法,这样当他们只是本地管理员而不是域管理员时,他们就可以执行各种任务。是否有 API 或 COM 对象或我可以在 VBA 中引用的东西来远程更改防火墙设置?或者是否有另一种调用 Shell
的方法...比如 WScript.Shell
可以在没有弹出 CMD window 的情况下工作?
是的,使用 WScript.Shell
对象的 Run
方法而不是 Shell
函数应该可行:
Set sh = CreateObject("WScript.Shell")
sh.Run "cmd.exe /S /C " & strCMD, 0, True