我正在尝试在 Vista x64 上启用连接日志记录netsh
,如下所示有关防火墙故障排除的 MSDN 文章...
首先,我启用了允许连接的日志记录%systemroot%\system32\LogFiles\Firewall\pfirewall.log
,如下所示......
PS C:\Windows\system32> netsh advfirewall set allprofiles logging allowedconnections enable
Ok.
PS C:\Windows\system32>
接下来我检查日志记录是否真的已启用。据我所知,是的...
PS C:\Windows\system32> netsh advfirewall show currentprofile
Public Profile Settings:
----------------------------------------------------------------------
State ON
Firewall Policy BlockInbound,AllowOutbound
LocalFirewallRules N/A (GPO-store only)
LocalConSecRules N/A (GPO-store only)
InboundUserNotification Enable
RemoteManagement Disable
UnicastResponseToMulticast Enable
Logging:
LogAllowedConnections Enable
LogDroppedConnections Disable
FileName %systemroot%\system32\LogFiles\Firewall\pfirewall.log
MaxFileSize 4096
Ok.
PS C:\Windows\system32>
但是,当我尝试检索日志时,我无法......
PS C:\Windows\system32> Get-Content %systemroot%\system32\LogFiles\Firewall\pfirewall.log
Get-Content : Cannot find path 'C:\Windows\system32\%systemroot%\system32\LogFiles\Firewall\pfi
oes not exist.
At line:1 char:12
+ Get-Content <<<< %systemroot%\system32\LogFiles\Firewall\pfirewall.log
+ CategoryInfo : ObjectNotFound: (C:\Windows\syst...l\pfirewall.log:String) [Get-C
ception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
PS C:\Windows\system32>
我还需要做什么才能从 powershell 启用连接日志记录?如果可能的话,我想避免重新启动。
答案1
如您所见,%systemroot%
当您检索日志文件时,您的变量无法在 PowerShell 中正确解析:找不到路径“C:\Windows\system32\%systemroot%\system32\LogFiles\Firewall\pfioes 不存在”。
在 PowerShell 中,您可以通过执行以下操作来访问环境变量:$env:Variable
请尝试这个命令:
Get-Content $env:systemroot\system32\LogFiles\Firewall\pfirewall.log