使用Powershell在VS代码中调试Windows防火墙规则
我正在编写powershell脚本,其目的是向Widnows防火墙添加规则。 使用VSCode、powershell 5.1和VSCode的powershell扩展 现在有两个问题: 首先,我只想运行调试器,看看脚本执行时是否没有错误,但实际情况是,该规则被添加到防火墙中 有没有一种方法可以避免将规则添加到防火墙中,只需测试它是否有效,即干运行 其次,如果VSCode不是以管理员身份运行,我就无法调试,因为我正在修改防火墙 现在,如果无法在非提升模式下“干运行”脚本,那么如何在不以管理员身份运行VSCode的情况下调试这些脚本 因为否则我会得到“权限被拒绝”的错误 这是我的使用Powershell在VS代码中调试Windows防火墙规则,powershell,debugging,visual-studio-code,windows-firewall,Powershell,Debugging,Visual Studio Code,Windows Firewall,我正在编写powershell脚本,其目的是向Widnows防火墙添加规则。 使用VSCode、powershell 5.1和VSCode的powershell扩展 现在有两个问题: 首先,我只想运行调试器,看看脚本执行时是否没有错误,但实际情况是,该规则被添加到防火墙中 有没有一种方法可以避免将规则添加到防火墙中,只需测试它是否有效,即干运行 其次,如果VSCode不是以管理员身份运行,我就无法调试,因为我正在修改防火墙 现在,如果无法在非提升模式下“干运行”脚本,那么如何在不以管理员身份运行
launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "PowerShell: Launch Current File",
"type": "PowerShell",
"request": "launch",
"script": "${file}",
"cwd": "${file}"
}
]
}
下面是示例脚本test.ps1
:
New-NetFirewallRule -DisplayName "Block Outbound Port 80" -Direction Outbound -LocalPort 80 -Protocol TCP -Action Block
您要查找的是
-WhatIf
开关。该开关将向您显示如果您运行该命令会发生什么,但它不会运行该命令
Microsoft的在线信息还显示了-WhatIf
开关的详细信息
因此,请尝试下面的方法
New-NetFirewallRule -DisplayName "Block Outbound Port 80" -Direction Outbound `
-LocalPort 80 -Protocol TCP -Action Block -WhatIf