Este comando no funciona:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways,allowoutbound
Este comando funciona:
netsh advfirewall set allprofiles state on
Intenté usar el comando invoke y &, pero no pude hacerlo funcionar. Cuando ejecuto el comando anterior en PS, me dice:
El número de argumentos proporcionados no es válido. Consulte la ayuda para conocer la sintaxis correcta.
Respuesta1
La coma es un carácter especial de PowerShell. En su caso se interpreta como un operador de matriz binaria. Crea una matriz con dos elementos blockinboundalways
y allowoutbound
. PowerShell inferior a v5 separará los elementos de la matriz con espacio cuando la matriz se pase a aplicaciones nativas. La línea de comando resultante pasada netsh
será la siguiente:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways allowoutbound
Que no es lo que quieres. Tienes que escapar de la coma o encerrarla entre comillas para interpretarla literalmente:
netsh advfirewall set allprofiles firewallpolicy blockinboundalways`,allowoutbound
netsh advfirewall set allprofiles firewallpolicy 'blockinboundalways,allowoutbound'