Serviço Servidor: Estado da Firewall

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

Este objeto monitoriza as regras de entrada da firewall para a Partilha de Ficheiros e Impressoras, gerando um alerta se as regras estiverem desativadas ou se as portas TCP correspondentes estiverem bloqueadas.

Knowledge Base article:

Resumo

Este objeto monitoriza as regras de entrada da firewall para a Partilha de Ficheiros e Impressoras, gerando um alerta se as regras estiverem desativadas ou se as portas TCP correspondentes, 445 e 139, estiverem bloqueadas.

Causas

Este monitor poderá entrar num estado de funcionamento Crítico pelos seguintes motivos:

Se o estado de funcionamento for desconhecido, isso significa que a monitorização ainda não começou para este objeto.

Resoluções

Determinar se a Firewall do Windows está ativada

Para determinar se a Firewall do Windows está ativada, utilize o seguinte procedimento:

1. Numa linha de comandos elevada no servidor afetado, escreva: sc query mpssvc e prima ENTER.

2. Se a firewall não estiver em execução, escreva o seguinte comando: net start mpssvc.

Determinar se as regras de firewall das portas estão ativadas

Para determinar se as regras de firewall das portas estão ativadas, utilize o seguinte procedimento:

1. No servidor afetado abra o Painel de Controlo, clique em Sistema e Segurança e clique em Firewall do Windows.

2. No painel da esquerda, clique em Definições Avançadas e clique em Regras de Entrada.

3. Verifique se as regras seguintes estão ativadas e se a Ação é Permitir:

4. Se as regras de firewall não estiverem ativadas, clique na regra e, no menu Ação, clique em Ativar Regra.

Quando tiver resolvido o problema, este monitor será automaticamente reposto num Bom estado de funcionamento.

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
Serviço Servidor: Portas de Partilha de Ficheiros e Impressoras Bloqueadas
A Firewall do Windows está desativada ou as regras de entrada da firewall para as portas TCP 445 ou 139 estão desativadas.
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>