Powershell – 10 – Alias

10.1- Alias

En articulos anteriores hemos comentado o ha salido el termino de Alias, sin especificar lo que son y para que sirven.

Bueno, pues ha llegado el momento de que lo veamos un poco en detalle por que es algo que podemos utilizar para facilitar el trabajo.

Un alias es un nombre alternativo o sobrenombre para un cmdlet o un elemento de un comando, como una funcion, un script, un archivo o un archivo ejecutable. El tema es que podemos utilizar el alias en lugar de el nombre completo del cmdlet.

Ya comentamos que podemos utilizar en Windows Powershell comandos como «dir» o «ls» y muchos mas. Estos no son mas que alias definidos a otros comandos de Powershell. En el caso de «dir» y «ls» el cmdlet al que hacen referencia es «get-childitem«.

Cmdlets de Alias

Powershell incluye varios cmdlets diseñados para trabajar con Alias.

Get-alias, new-alias, set-alias, export-alias e import-alias.

Nombres alternativos para comandos con parametros.

Es posible asignar una lias a un cmdlet, un script, una funcion o un archivo ejecutable, pero no podemos asignar un lias a un comnado y sus parametros. Por ejemplo, podemos asignar un alias a «get-command«, pero no podemos asingnar un alias a «get-command -name get-*«.

Para hacer esto, crearemos una funcion. Pero esto de las funciones es otra historia que ya veremos mas adelante.

Objetos de Alias.

Los alias de Windows Powershell estan representados por objetos que son instancias de la clase System.Management.Automation.AliasInfo.

Para ver las propiedades y metodos de los objetos de alias, obtenemos los alias y los canalizamos a traves de «get-member«.

Por ejemplo:

>get-alias | get-member

Para obtener una lista de los cmdlets relativos a alias:

>get-help *-alias


10.2- Get-Alias.

Get-alias obtiene los nombres alternativos de los cmdlets, las funciones y los archivos ejecutables que se han establecido e la sesion actual. Este conjunto incluye los alias integrados, los alias importados o definidos por el usuario y los alias que se han agregado al perfil de Windows Powershell.

Si especificamos uno o varios alias, «get-alias» obtiene el objeto de alias y muestra sus propiedades, incluido el objeto al que se asigna un alias, como el nombre completo de un cmdlet.

Parametros


-name <String[]>

Especifica el alias que se va a recuperar. De manera predeterminada, recupera todos los alias definidos para la sesion actual. El nombre de esta parametro es opcional.

-scope <String>

Especifica el ambito en el que el alias es valido. Los valores validos son: «global«, «local«, «script» o el numero correspondiente al ambito, donde 0 es el ambito actual y 1 su ambito principal. «local» es el valor predeterminado.

-exclude <String[]>

Omite los elementos especificados. Se permite el uso de caracteres comodin para introducir un patron.

Ejemplo1

>get-alias

Muestra todos los alias de la sesion actual.

Ejemplo 2

>get-alias -name g*

Muestra los alias cuyo nombre comienza por «g» y le sigue cualquier otro u otros caracteres.

Esto lo hacemos para poder ver los alias que se refieren normalmente a los cmdlets que comienzan por «get-«.

Ejemplo 3

>get-alias | where-object {$_.Definition -match «get-command»}

En este ejemplo hemos incluido el cmdlet «where-object» que todavia no hemos visto, pero nos basta con saber que este comando completo nos mostrara los alias que tenga definidos el cmdlet «get-command«.

10.3- Set-Alias

Crea o cambia un alias. Tambien podemos utilizar «set-alias» para reasignar el alias actual a un nuevo comando o cambiar cualquiera de sus propiedades. A menos que se agregue el alias al perfil de Windows Powershell, los cambios que realicemos en el, se perderan al finalizar la sesion o cerrar windows powershell.

Parametros


-name <String[]>

Especifica el nuevo alias. Pueden utilizarse caracteres alfanumericos en los alias pero el primer caracter no puede ser un numero.

-value <String>

Especifica el nombre del elemento del cmdlet o el comando al que se le está asignando un alias.

-description <Sting>

Especifica una descripcion del alias. Si la descripcion contiene espacios, la escribiremos entre comillas.

-scope <String>

Especifica el ambito en el que es valido este alias. Los valores posibles son: «global», «local», «scrip» o el numero correspondiente al ambito actual. «local» es el valor predeterminado.

Para obtener mas informacion al respecto:

>get-help -detailed set-alias


Ejemplo 1

>set-alias

Este comando nos permite crear un alias de forma interactiva. Tendremos que facilitar el nombre y el valor del mismo.

En este ejemplo crearemos el alias «np» cuyo valor sera «notepad.exe».

Ahora, para saber si hemos establecido correctamente el alias, podemos introcucir el siguiente comando:

>get-alias -name «n*»

Nos muestra todos los alias cuyo nombre comienza por «n».

Y por ultimo, podemos probar el alias escribiendo:

>np

No pongo la captura, pero lo que debe hacer es abrirnos el block de notas, igual que si escribimos «notepad.exe».

Ejemplo 2

Podemos hacer lo mismo que en el ejemplo anterior en un solo comando, sin que sea interactivo de la siguiente forma:

>set-alias -name np2 -value notepad.exe

o

>set-alias np2 notepad.exe

10.4- New-Alias

Este cmdlet es practicamente identico al aterior, a set-alias. Lo unico que los diferencia es que en el caso de «new-alias» no permite sobreescribir un alias existente. En el caso de que intentasemos esto, nos mostraria un mensaje de error como el de la siguiente captura:

Sin embargo, «set-alias» si nos permite sobreescribir un alias sin comentarnos nada.

Cada uno tiene lo suyo, por eso es que tenemos que andar con cuidado cuando estemos utilizando «set-alias» y pretendamos establecer un nombre que ya existe. En estos casos es aconsejable utilizar el cmdlet «get-alias» para comprobar que no existe el alias que vamos a crear.

10.5- Export-Alias

Exporta informacion sobre los alias definidos actualmente dentro del ambito del espacio de nombres espeficiado a un archivo.

Parametros


-path <String>

Especifica la ruta de acceso al archivo en que se almacenara la informacion sobre los alias. Se puede utilizar caracteres comodin.

-name <String>

Especifica los nombres de los alias que se van a exportar. Para indicar varios alias, los separaremos por comas (,). Si no especificamos ningun alias, exportaremos la informacion de todos los alias.

-scope <String>

Especifica el ambito dsde el que se deben exportar los alias.

Para mas informacion al respecto:

>get-help -detailed export-alias


Ejemplo 1

>export-alias -path alias.txt

Este comando exportara la informacion de todos los alias disponibles al fichero «alias.txt».

Si abrimos el fichero «alias.txt» veremos algo parececido a lo siguiente:

Ejemplo 2

>export-alias -name np -path np.txt

Si abrimos el fichero «np.txt«:

10.6- Import-Alias

Importa una lista de alias desde un archivo.

Nos puede servir para cargar unos alias que tengamos definidos en un equipo en concreto y queramos tenerlos disponibles en otros equipos.

Parametros


-path <String>

Especifica la ruta de acceso al archivo que contienen la informacion sobre los alias.

-scope <String>

Especifica el ambito que tendran estos alias.

Para obtener mas infomacion sobre «import-alias«:

>get-help -detailed import-alias


Ejemplo 1

>import-alias -path np.txt

Si ejecutamos este comando en la misma sesion de Windows Powershell en la que la hemos creado, nos dara un error puesto que ya existe dicho alias.

Para probarlo, cerramos Windows Powershell, lo volvemos a abrir e introducimos el comando.

Comprobamos que efectivamente existe el alias:

Bueno, hasta aqui el tema de los alias, espero que os haya aclarado un poco este asunto.

Venga, hasta la proxima!

Otros articulos sobre Powershell:

—–
Oscar Abad
http://www.xulak.com – Consultoría informática