Для работы WMI иногда надо настроить Windows Firewall для расрешения WMI трафика. Задача усложняется тем, что для Windows XP и Windows 2003 используется старый firewall, упрощенный. А для Windows Vista, 7, 2008 - новый, продвинутый. В продвинутом есть стандартные правила для WMI но их лучше не трогать, а создать новые, как рекомендует Microsoft: http://msdn.microsoft.com/en-us/library/aa822854 Для "старого" WF (Windows Firewall) надо просто разрешить удаленные подключения, в нем нет гибких правил. Попробовал сделать скрипт, который настраивает и новый и старый WF. Вроде работает :) Пользуйтесь:
@ECHO OFF
REM Проверяем правильность введенных параметров
IF /i "%1" NEQ "set" IF /i "%1" NEQ "unset" GOTO ERR
IF "%1" EQU "" GOTO ERR1
IF "%2" NEQ "" GOTO ERR2
IF /i "%1" EQU "unset" GOTO UNSETF
:FWSET
REM для старых ОС (позже Windows 6.0***) выполняем старую команду настройки Windows Firewall
ver | find "6."
IF ERRORLEVEL 0 GOTO NEWSETF
REM Настройка windows firewall для Windows XP, Windows 2003
netsh firewall set service RemoteAdmin enable
GOTO EXIT
:NEWSETF
netsh advfirewall firewall add rule dir=in name="DCOM" program=%systemroot%\system32\svchost.exe service=rpcss action=allow protocol=TCP localport=135
netsh advfirewall firewall add rule dir=in name ="WMI" program=%systemroot%\system32\svchost.exe service=winmgmt action = allow protocol=TCP localport=any
netsh advfirewall firewall add rule dir=in name ="UnsecApp" program=%systemroot%\system32\wbem\unsecapp.exe action=allow
netsh advfirewall firewall add rule dir=out name ="WMI_OUT" program=%systemroot%\system32\svchost.exe service=winmgmt action=allow protocol=TCP localport=any
GOTO EXIT
:UNSETF
REM для старых ОС (позже Windows 6.0***) выполняем старую команду настройки Windows Firewall
ver | find "6."
IF ERRORLEVEL 0 GOTO NEWUNSETF
REM Настройка windows firewall для Windows XP, Windows 2003
netsh firewall set service RemoteAdmin disable
GOTO EXIT
:NEWUNSETF
netsh advfirewall firewall delete rule name="DCOM"
netsh advfirewall firewall delete rule name="WMI"
netsh advfirewall firewall delete rule name="UnsecApp"
netsh advfirewall firewall delete rule name="WMI_OUT"
GOTO EXIT
:ERR
ECHO First parameter is incorrect. Enter SET or UNSET
GOTO EXIT
:ERR1
ECHO Enter parameter
GOTO EXIT
:ERR2
ECHO Too many parameters
GOTO EXIT
:EXIT
@ECHO OFF
REM Проверяем правильность введенных параметров
IF /i "%1" NEQ "set" IF /i "%1" NEQ "unset" GOTO ERR
IF "%1" EQU "" GOTO ERR1
IF "%2" NEQ "" GOTO ERR2
IF /i "%1" EQU "unset" GOTO UNSETF
:FWSET
REM для старых ОС (позже Windows 6.0***) выполняем старую команду настройки Windows Firewall
ver | find "6."
IF ERRORLEVEL 0 GOTO NEWSETF
REM Настройка windows firewall для Windows XP, Windows 2003
netsh firewall set service RemoteAdmin enable
GOTO EXIT
:NEWSETF
netsh advfirewall firewall add rule dir=in name="DCOM" program=%systemroot%\system32\svchost.exe service=rpcss action=allow protocol=TCP localport=135
netsh advfirewall firewall add rule dir=in name ="WMI" program=%systemroot%\system32\svchost.exe service=winmgmt action = allow protocol=TCP localport=any
netsh advfirewall firewall add rule dir=in name ="UnsecApp" program=%systemroot%\system32\wbem\unsecapp.exe action=allow
netsh advfirewall firewall add rule dir=out name ="WMI_OUT" program=%systemroot%\system32\svchost.exe service=winmgmt action=allow protocol=TCP localport=any
GOTO EXIT
:UNSETF
REM для старых ОС (позже Windows 6.0***) выполняем старую команду настройки Windows Firewall
ver | find "6."
IF ERRORLEVEL 0 GOTO NEWUNSETF
REM Настройка windows firewall для Windows XP, Windows 2003
netsh firewall set service RemoteAdmin disable
GOTO EXIT
:NEWUNSETF
netsh advfirewall firewall delete rule name="DCOM"
netsh advfirewall firewall delete rule name="WMI"
netsh advfirewall firewall delete rule name="UnsecApp"
netsh advfirewall firewall delete rule name="WMI_OUT"
GOTO EXIT
:ERR
ECHO First parameter is incorrect. Enter SET or UNSET
GOTO EXIT
:ERR1
ECHO Enter parameter
GOTO EXIT
:ERR2
ECHO Too many parameters
GOTO EXIT
:EXIT
Комментариев нет:
Отправить комментарий