使用 netsh 记录 Windows 连接

使用 netsh 记录 Windows 连接

我正在尝试在 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

相关内容