我正在尝试netsh
在 Vista x64 上启用连接日志记录,如这篇关于防火墙故障排除的 MSDN 文章所示......
首先,我启用了允许连接的日志记录%systemroot%\system32\LogFiles\Firewall\pfirewall.log
,下面...
PS C:\Windows\system32> netsh advfirewall set allprofiles logging allowedconnections enable
Ok.
PS C:\Windows\system32>
接下来我检查是否真的启用了日志记录。AFAICT,这是...
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 启用连接日志记录?如果可能的话,我想避免重启。
如您所见,
%systemroot%
当您检索日志文件时,您的变量在 PowerShell 中没有得到正确解析:找不到路径 'C:\Windows\system32\%systemroot%\system32\LogFiles\Firewall\pfioes 不存在。在 PowerShell 中,您可以通过以下方式访问环境变量:
$env:Variable
请试试这个命令:
Get-Content $env:systemroot\system32\LogFiles\Firewall\pfirewall.log