使用Powershell在VS代码中调试Windows防火墙规则

使用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不是以管理员身份运行,我就无法调试,因为我正在修改防火墙 现在,如果无法在非提升模式下“干运行”脚本,那么如何在不以管理员身份运行

我正在编写powershell脚本,其目的是向Widnows防火墙添加规则。 使用VSCode、powershell 5.1和VSCode的powershell扩展

现在有两个问题: 首先,我只想运行调试器,看看脚本执行时是否没有错误,但实际情况是,该规则被添加到防火墙中

有没有一种方法可以避免将规则添加到防火墙中,只需测试它是否有效,即干运行

其次,如果VSCode不是以管理员身份运行,我就无法调试,因为我正在修改防火墙

现在,如果无法在非提升模式下“干运行”脚本,那么如何在不以管理员身份运行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