该命令不起作用:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways,allowoutbound
该命令有效:
netsh advfirewall set allprofiles state on
我尝试使用invoke-command和&,但无法正常工作。当我在PS中运行上述命令时,它告诉我:
提供的参数数量无效。请查看帮助以获取正确的语法。
答案1
逗号是 PowerShell 的特殊字符。在您的情况下,它被解释为二进制数组运算符。它创建具有两个元素blockinboundalways
和的数组allowoutbound
。当数组传递给本机应用程序时,v5 以下的 PowerShell 会用空格分隔数组元素。传递给的结果命令行将netsh
如下所示:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways allowoutbound
这不是你想要的。你必须转义逗号或将其括在引号中才能按字面意思解释:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways`,allowoutbound
netsh advfirewall set allprofiles firewallpolicy 'blockinboundalways,allowoutbound'