使用 Powershell 在 VSCode 中调试 Windows 防火墙规则

Debuging Windows firewall rules in VS Code with Powershell

我正在研究 powershell 脚本,其目的是向 Widnows 防火墙添加规则。 使用 VSCode、powershell 5.1 和 VSCode.

的 powershell 扩展

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

有没有办法真正避免向防火墙添加规则,只需测试它是否有效,即。干-运行?

其次,如果 VSCode 不是 运行 作为管理员,我无法调试,显然是因为我正在修改防火墙。

现在,如果没有办法在非提升模式下 "dry-run" 脚本,那么如何在没有 运行宁 VSCode 作为管理员的情况下调试这些脚本?

否则我得到 "Permission denied" 错误。

这是我的 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 开关。 WhatIf 开关会告诉你如果你 运行 命令会发生什么,但它不会 运行 它。

Microsoft 在网上有 New-NetFirewallRule 信息,其中还显示了 -WhatIf 开关的详细信息。

所以试试下面的方法。

New-NetFirewallRule -DisplayName "Block Outbound Port 80" -Direction Outbound `
    -LocalPort 80 -Protocol TCP -Action Block -WhatIf