C# 记录所有入站连接powershell
我需要在所有公司机器上启用防火墙,并且没有任何关于所用端口的文档,因此我计划使用PowerShell脚本记录所有入站连接,以便创建所需的异常 如何使用PowerShell或C监控创建到我的计算机的所有入站连接?因为y发现有一个Cmdlet列出了与计算机的所有连接,但我没有找到一种方法来只选择入站连接C# 记录所有入站连接powershell,c#,.net,powershell,ports,inbound,C#,.net,Powershell,Ports,Inbound,我需要在所有公司机器上启用防火墙,并且没有任何关于所用端口的文档,因此我计划使用PowerShell脚本记录所有入站连接,以便创建所需的异常 如何使用PowerShell或C监控创建到我的计算机的所有入站连接?因为y发现有一个Cmdlet列出了与计算机的所有连接,但我没有找到一种方法来只选择入站连接 有办法做到这一点吗?为什么不使用FW软件呢 至于 因为y发现有一个Cmdlet列出了所有 连接到机器,但我没有找到一种方法来选择 入站连接 您刚刚声明可以获得所有连接,这些连接线应该显示触发的FW规
有办法做到这一点吗?为什么不使用FW软件呢 至于 因为y发现有一个Cmdlet列出了所有 连接到机器,但我没有找到一种方法来选择 入站连接 您刚刚声明可以获得所有连接,这些连接线应该显示触发的FW规则,并且从您的FW软件中,您已经知道什么是入口/出口规则 根据列出的入站规则筛选以获取数据集
# Get the configured FW ingress rules
$FirewallInboundRules = Get-NetFirewallRule | Where { $_.Enabled –eq ‘True’ –and $_.Direction –eq ‘Inbound’ }
然后将其匹配到您的所有连接数据集
但所有这些听起来都像是你在尝试使用PS创建自己的ID。我认为这是一项过度工程,因为现成的工具已经提供了这一功能。谢谢@postanote我已经用你给我的提示解决了这个问题,可以启用windows防火墙,并且可以将日志重定向到文件共享,以分析公司机器正在使用的入站端口 我正在使用类似的脚本启用防火墙,并将所有日志转发到将成为测试组一部分的计算机列表
$machines = Get-Content -Path '.\Desktop\servers.txt'
foreach ($machine in $machines)
{
Invoke-Command -ComputerName machine -ScriptBlock {Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True;Set-NetFirewallProfile -Profile Domain,Public,Private -LogFileName "\\localhost\C$\Block-$env:COMPUTERNAME.txt" -LogMaxSizeKilobytes 444 -LogAllowed False -LogBlocked True}
}
在我的情况下,这并不能解决问题,因为这只显示打开的入站端口,而不显示使用的入站端口
$FirewallInboundRules = Get-NetFirewallRule | Where { $_.Enabled –eq ‘True’ –and $_.Direction –eq ‘Inbound’ }