Usługa serwera: Stan zapory

Microsoft.Windows.FileServices.Service.SMB.6.3.FirewallPortConfig (UnitMonitor)

Ten obiekt monitoruje reguły zapory dla ruchu przychodzącego funkcji Udostępnianie plików i drukarek i generuje alert w przypadku wyłączenia tych reguł lub zablokowania odpowiadających im portów TCP.

Knowledge Base article:

Podsumowanie

Ten obiekt monitoruje reguły zapory dla ruchu przychodzącego funkcji Udostępnianie plików i drukarek i generuje alert w przypadku wyłączenia tych reguł lub zablokowania odpowiadających im portów TCP 445 i 139.

Przyczyny

Ten monitor może przejść w stan kondycji Krytyczny z poniższych powodów:

Jeśli stan kondycji jest nieznany, oznacza to, że jeszcze się nie rozpoczęło monitorowanie tego obiektu.

Rozwiązania

Sprawdź, czy Zapora systemu Windows jest włączona

Aby ustalić, czy Zapora systemu Windows jest włączona, wykonaj następującą procedurę:

1. W wierszu polecenia z podwyższonym poziomem uprawnień na serwerze, na którym wystąpił problem, wpisz sc query mpssvc i naciśnij klawisz ENTER.

2. Jeśli zapora nie jest uruchomiona, wpisz następujące polecenie: net start mpssvc.

Sprawdź, czy są włączone reguły zapory dotyczące portów

Aby ustalić, czy są włączone reguły zapory dla odpowiednich portów, wykonaj następującą procedurę na serwerze:

1. Otwórz Panel sterowania na serwerze, na którym wystąpił problem, kliknij pozycję System i zabezpieczenia, a następnie kliknij pozycję Zapora systemu Windows.

2. W lewym panelu kliknij opcję Ustawienia zaawansowane, a następnie kliknij opcję Reguły ruchu przychodzącego.

3. Sprawdź, czy są włączone poniższe reguły, a ich Akcja to Zezwalaj:

4. Jeśli reguły zapory nie są włączone, kliknij odpowiednią regułę i w menu Akcja kliknij opcję Włącz regułę.

Ten monitor jest automatycznie resetowany do stanu prawidłowej kondycji po rozwiązaniu problemu.

Element properties:

TargetMicrosoft.Windows.FileServices.Service.SMB.6.3
Parent MonitorSystem.Health.AvailabilityState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.TimedScript.TwoStateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Usługa serwer: Porty funkcji Udostępnianie plików i drukarek zablokowane
Zapora systemu Windows jest wyłączona lub wyłączone są reguły zapory dla ruchu przychodzącego portów TCP 445 i 139.
RunAsMicrosoft.Windows.FileServices.MonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.Windows.FileServices.Service.SMB.6.3.FirewallPortConfig" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServices.Service.SMB.6.3" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RunAs="FileServices!Microsoft.Windows.FileServices.MonitoringAccount" TypeID="Windows!Microsoft.Windows.TimedScript.TwoStateMonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.FileServices.Service.SMB.6.3.FirewallPortConfig.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>30</IntervalSeconds>
<SyncTime/>
<ScriptName>CheckFirewallPort.vbs</ScriptName>
<Arguments>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>
Option Explicit

SetLocale("en-us")

Dim oArgs
Dim serverName

Set oArgs = WScript.Arguments
If oArgs.Count &lt; 1 Then
Wscript.Quit -1
Else
serverName = oArgs(0)
End If

' NET_FW_PROFILE_TYPE2
Const NET_FW_PROFILE2_DOMAIN = &amp;h0001
Const NET_FW_PROFILE2_PRIVATE = &amp;h0002
Const NET_FW_PROFILE2_PUBLIC = &amp;h0004
Const NET_FW_IP_PROTOCOL_TCP = &amp;h0006

' Create the FwPolicy2 object
Dim fwPolicy2
Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2")

Dim fwCurrentProfile, fwCheckProfile
fwCurrentProfile = fwPolicy2.CurrentProfileTypes
fwCheckProfile = fwCurrentProfile And (NET_FW_PROFILE2_DOMAIN Or NET_FW_PROFILE2_PRIVATE)

Dim fwFileSharingPortsEnabled
fwFileSharingPortsEnabled ="False"

Dim rule
For Each rule in fwPolicy2.Rules
If (rule.Protocol = NET_FW_IP_PROTOCOL_TCP) And (rule.LocalPorts = "445") Then
If (Not rule.Enabled) And (rule.Profiles And fwCheckProfile ) Then
fwFileSharingPortsEnabled = "True"
Exit For
End If
End If
Next

Dim regularShareExist, objWMIService, colShares, objShare
regularShareExist = "False"

Set objWMIService = GetObject("winmgmts:" _
&amp; "{impersonationLevel=impersonate}!\\" &amp; serverName &amp; "\root\microsoft\windows\smb")
Set colShares = objWMIService.ExecQuery("Select * from MSFT_SmbShare")
For each objShare in colShares
If objShare.Special = "False" Then
regularShareExist = "True"
Exit For
End If
Next

Dim portStatus
portStatus = "Disabled"

' Only if regular share exists and port 139/445 are not open will portStatus be returned as "Disabled"
If fwFileSharingPortsEnabled = "True" Then
portStatus = "Enabled"
Else
If regularShareExist = "False" Then
portStatus = "Enabled"
End If
End If

Dim oAPI, oBag

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Call oBag.AddValue ("PortStatus", portStatus)
Call oAPI.Return(oBag)

</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='PortStatus']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">Enabled</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='PortStatus']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Enabled</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>