代码之家  ›  专栏  ›  技术社区  ›  metablaster

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

  •  0
  • metablaster  · 技术社区  · 6 年前

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

    现在有两个问题: 首先,我只想运行debugger来查看脚本是否在没有错误的情况下执行,但是发生的情况是规则被添加到防火墙中。

    有没有一种方法可以真正避免在防火墙中添加规则,只需测试它是否有效,例如,试运行?

    其次,如果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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Drew    6 年前

    你要找的是 -WhatIf 切换。这个 WhatIf switch将向您显示如果运行该命令会发生什么情况,但它不会运行该命令。

    微软拥有 New-NetFirewallRule 在线信息还显示 -华蒂夫 切换详细信息。

    所以试试下面的。

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