使用 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
我正在研究 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