該命令不起作用:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways,allowoutbound
該命令的工作原理:
netsh advfirewall set allprofiles state on
我嘗試過使用呼叫命令和&,但我無法讓它工作。當我在 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'