Hemos visto alguna pequeña referencia para familiarizarnos con PowerShell, pero, y la seguridad? Se nos viene a la cabeza alguna que otra pregunta como por ejemplo:
Si instalo PowerShell se ejecutarán los scripts que me manden por correo?
La respuesta es sí y no. Para aclarar este tema hay que hablar de los niveles de seguridad que podemos establecer en PowerShell.
PowerShell tiene diferentes directivas de ejecución de scripts que nos servirán para definir qué tipo de seguridad queremos en nuestros sistemas.
Por defecto y cuando instalamos PowerShell en una máquina, la directiva de seguridad establecida por defecto es la llamada Restricted. Esta directiva admite comandos individuales, pero no permite ejecutar scripts. Las directivas que podemos encontrar son:
-Restricted
-AllSigned
-RemoteSigned
-Unrestricted
La directiva AllSigned
Esta directiva requiere que todos los scripts y archivos de configuración estén firmados por un editor de confianza, incluidos los scripts que se escriban en el equipo local. Pregunta cuando un script es invocado.
La directiva RemoteSigned
Esta directiva requiere una firma digital de un editor de confianza en scripts y archivos de configuración descargados de Internet, pero no requiere firmas digitales en scripts ejecutados desde el equipo local. Esta directiva no pregunta antes de ejecutar un script que venga de un editor de confianza.
La directiva Unrestricted
Esta directiva permite ejecutar los scripts sin firma. Tan solo preguntará cuando ejecutemos un script vía Internet.
En función de los escenarios a trabajar, elegiremos una opción u otra. Personalmente recomiendo siempre establecer el nivel de seguridad en RemoteSigned o AllSigned.
Para ejecutar un script en PowerShell, primero debemos guardar este fichero con extensión ps1. PowerShell no ejecutará un script si no tiene esta extensión. El programa asociado a un archivo con extensión .ps1 es por defecto la herramienta más poderosa jamás creada. Eso quiere decir que si hacemos doble-clic en un script de PowerShell, automáticamente se nos abrirá el editor notepad en vez de ejecutarse el script.
Para conocer la directiva de ejecución de script que tenemos configurado en nuestra shell, el comando a ejecutar es:
Get-ExecutionPolicy
Este comando nos devolverá la directiva de ejecución de PowerShell.
Para cambiar esta directiva, el comando que utilizaremos será:
Set-ExecutionPolicy
Para cambiar la directiva por defecto de Restricted a RemoteSigned, el comando a utilizar sería:
Set-ExecutionPolicy RemoteSigned
En posteriores capítulos veremos cómo ejecutar scripts en PowerShell sin arriesgar la seguridad en nuestro equipo.
hola que tal muy interesante tu informacion.
te cuento que recien he comensado a conocer powerShell, y es demasiado poderoso, de lo que he leido.
quisiera estudiarlo, te queria pedir si me puedes ayudar con una lista de comandos que sean basicos, y para que sirve cada uno.
Mil gracias
Saldo