Tjänsten Server: Brandväggstatus

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

Detta objekt övervakar brandväggens ingående regler för delning av filer och skrivare och genererar en avisering antingen om en av reglerna är inaktiverad eller om motsvarande TCP-porter är blockerade.

Knowledge Base article:

Sammanfattning

Detta objekt övervakar brandväggens ingående regler för delning av filer och skrivare och genererar en avisering antingen om en av reglerna är inaktiverad eller om motsvarande TCP-porter 445 och 139 är blockerade.

Orsaker

Denna övervakare kan gå in i kritiskt hälsotillstånd på grund av det följande:

Om hälsotillståndet är okänt, menar det att övervakningen för detta objekt inte har börjat än.

Lösningar

Fastställ om Windows brandvägg är aktiverad.

För att fastställa att Windows brandvägg är aktiverad, använd den följande proceduren:

1. Skriv: sc query mpssvc i en förhöjd kommandotolk och tryck på RETUR.

2. Om brandväggen inte är aktiverad skriver du in följande kommando: net start mpssvc.

Fastställ om portens brandväggregler är aktiverade.

För att fastställa om brandväggens regler för porter är aktiverade, använd den följande proceduren:

1. Öppna kontrollpanelen på den aktuella servern och klicka på System och säkerhet och sedan på Windows-brandvägg.

2. Klicka på Avancerade inställningar i det vänstra fönstret och sedan på Regler för inkommande trafik.

3. Kontrollera om följande regler är aktiverade och att status för Åtgärd är Tillåt:

4. Om brandväggsreglerna inte är aktiverade klickar du på regeln och på menyn Åtgärd klickar du på Aktivera regel.

Denna övervakare återställs automatiskt till ett hälsosamt tillstånd efter att du har löst detta problem.

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
Tjänsten Server: Porter för delning av filer och skrivare är blockerade
Antingen är Windows brandvägg inaktiverad är så är brandväggens ingående regler för TCP-porter 445 eller 139 inaktiverade.
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>