Comparte este post:

Un perfil de PowerShell es una secuencia de comandos que se ejecuta cuando se inicia PowerShell y tiene un nombre específico.

PowerShell soporta varios perfiles para los usuarios y los programas de acogida. Cuando decimos programas anfitriones pensamos principalmente en la consola de Windows PowerShell y en Windows PowerShell ISE. Sin embargo, no crea los perfiles para usted, así que continúe leyendo este artículo y le mostraré cómo crear y personalizar los perfiles con ejemplos impresionantes.

Podemos crear 3 archivos de perfil para cada usuario en el sistema, uno para cada host (Windows PowerShell Console e ISE) y uno para todos los hosts.

Además, es posible crear 3 archivos de perfil para todos los usuarios si queremos aplicar alguna personalización aplicable a todos los usuarios.

IMPORTANTE: Si tenemos una instalación independiente de la versión 6 de PowerShell entonces podemos crear 4 perfiles adicionales. Dos archivos de perfil por usuario y dos archivos de perfil para todos los usuarios.

Tabla de contenidos

Comandos de Perfil PowerShell, Hosts, Nombres de Perfiles, Ubicaciones de Perfiles

Aquí hay una tabla que muestra Tipos de Perfiles, Comando que se puede usar para probar si existe un perfil y crearlos si queremos, A qué Host se aplica este Perfil, Nombre del archivo de Perfil, y Ubicación del Archivo de Perfil.

# Tipo de perfil Comando Host Nombre del archivo de perfil Localización del archivo de perfil
1* Usuario actual, Host actual $profile Consola Microsoft.PowerShell_profile.ps1 HOME\NDocumentosWindowsPowerShell
2 Todos los usuarios, host actual $profile.AllUsersCurrentHost Consola Microsoft.PowerShell_profile.ps1 $PSHOME\
3 Usuario actual, todos los hosts $profile.CurrentUserAllHosts Consola, ISE Profile.ps1 $HOME DocumentosWindowsPowerShell
4 Todos los usuarios, todos los hosts $profile.AllUsersAllHosts Consola, ISE Profile.ps1 $PSHOME\
5** Usuario actual, Host actual $profile ISE Microsoft.PowerShellISE_profile.ps1 HOME DocumentosWindowsPowerShell\
6** Todos los usuarios, Host actual $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME

Tabla 1 – Tipos de perfiles PowerShell, comandos, hosts, nombres de archivos, ubicaciones de archivos

* En lugar de $perfil podemos utilizar $perfil.CurrentUserCurrentHost comando.

** Ejecutar el comando desde la consola de Windows PowerShell ISE.

Para encontrar los valores correctos de las variables $HOME y $PSHOME en su instalación de PowerShell ejecute los siguientes comandos:

$HOME

Normalmente, el valor de $HOME es C:

Valor de $HOME
$PSHOME

Por lo general, el valor de $PSHOME es C:\Windows\System32\WindowsPowerShell\v1.0

Valor de $PSHOME

Recuerda: Si tienes una instalación independiente de la versión 6 de PowerShell podemos crear perfiles adicionales. Dos por usuario actual y dos para todos los usuarios.

# Tipo de perfil Comando Host Nombre de archivo del perfil Perfil Ubicación del archivo
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 HOME DocumentosPowerShell\
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 DocumentosHOME
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME\

Tabla 2 – PowerShell v6 Tipos de perfiles, comandos, hosts, nombres de archivos, ubicaciones de archivos

Por lo general, el valor de $HOME es C:\Users\user_name

Valor de $HOME para PowerShell v6

Usualmente, el valor de $PSHOME es C:\Program Files\PowerShell\6

Valor de $PSHOME para PowerShell v6

Observación: La diferencia entre los nombres de las carpetas de Documentos PowerShell v6 es PowerShell y el nombre de la carpeta de las versiones anteriores de PowerShell es WindowsPowerShell.

Cómo crear un perfil de PowerShell paso a paso

Aquí te mostraré exactamente cómo crear un perfil de PowerShell.

Crear un perfil de PowerShell para el usuario actual y el host actual

Este es el perfil predeterminado de Windows PowerShell.

Siga estos pasos para crear un perfil de PowerShell para la Consola como Host y usuario actual:

Paso 1: Abra la Consola de Windows PowerShell (Host actual).

Consola de Windows PowerShell

Paso 2: En primer lugar, vamos a probar si el Perfil existe o no en nuestra instalación de PowerShell. Escriba el siguiente comando en la Consola de PowerShell de Windows, y pulse ENTER.

Test-Path $PROFILE

Recuerde: Valor del parámetro para Test-Path CmdLlegaremos de la Tabla 2 – Columna de comandos. ($perfil, $perfil.CurrentUserAllHosts, etc)

Paso 3: Si el resultado del comando anterior es falso, el perfil no existe así que vaya al paso 4. Si el resultado es verdadero, el archivo de perfil existe así que vaya al paso 5

El archivo de perfil no existe (falso)

Paso 4: Como el Perfil no existe crearemos uno con el siguiente comando que escribirá y pulsará ENTER.

New-Item -Type File -Force $PROFILE
Se ha creado el archivo de Perfil
Microsoft.PowerShell_profile.ps1 – Perfil para el usuario actual y Consola como host

Paso 5: Se ha creado el perfil y podemos abrir el archivo de Perfil en PowerShell ISE con el siguiente comando, y pulsar ENTER.

ise $PROFILE
Abrir Windows PowerShell ISE con el archivo Profile

Paso 6: Se ha abierto el archivo Profile vacío en Windows PowerShell ISE

Windows PowerShell ISE abrió un archivo Profile vacío Microsoft.PowerShell_profile.ps1

Paso 7: Continúe con el Ejemplo 1 para ver cómo personalizar este perfil.

Creación de un perfil de PowerShell para el usuario actual y todos los hosts

Siga estos pasos para crear un perfil de PowerShell:

Paso 1: Abra la consola de Windows PowerShell (Esto es sólo un host de elección para ejecutar los comandos y podemos hacer estos pasos de Windows PowerShell ISE también).

Paso 2: En primer lugar, vamos a probar si el perfil existe o no en nuestra instalación de PowerShell. Escriba el siguiente comando en la consola de Windows PowerShell, y pulse ENTER.

Test-Path $PROFILE.CurrentUserAllHosts

Recuerde: Valor del parámetro para Test-Path CmdLlegaremos de la Tabla 2 – Columna de comandos. ($perfil, $perfil.CurrentUserAllHosts, etc)

Paso 3: Si el resultado del comando anterior es falso, el perfil no existe así que vaya al paso 4. Si el resultado es verdadero, el archivo de perfil existe así que vaya al paso 5

El archivo de perfil no existe (falso)

Paso 4: Como el Perfil no existe crearemos uno con el siguiente comando que escribirá y pulsará ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Se ha creado el archivo de perfil
Archivo perfil.ps1 – Perfil para el usuario actual y todos los hosts

Paso 5: El perfil ha sido creado y podemos abrir el archivo Profile en PowerShell ISE con el siguiente comando, y pulsar ENTER.

ise $PROFILE.CurrentUserAllHosts

Paso 6: Se ha abierto el archivo de Perfil vacío en Windows PowerShell ISE

Windows PowerShell ISE ha abierto un archivo de perfil vacío profile.ps1

Paso 7: Se continúa con el Ejemplo 2 para ver cómo personalizar el perfil.

Repetimos el proceso para otros tipos de perfil lo único es utilizar el valor correcto de la variable en la columna Comando de la Tabla 1 – Tipos de perfil PowerShell, comandos, hosts, nombres de archivos, ubicaciones de archivos.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMEMBER: Cuando quiera crear un Perfil para Windows PowerShell ISE como host necesita abrir Windows PowerShell ISE y seguir los pasos ejecutando los comandos desde la Consola de Windows PowerShell ISE (mire la captura de pantalla de abajo)

Windows PowerShell Consola ISE y el respectivo archivo de perfil para el ISE como host

Cómo editar el perfil de Windows PowerShell con ejemplos

Ejemplo 1 – Perfil para la consola como host y usuario actual (usuario actual – host actual)

Nombre del perfil: Microsoft.PowerShell_profile.ps1
Ubicación del perfil: $Home\Documents\WindowsPowerShell\
Usado para: En este ejemplo, he cambiado los colores de fondo de la fuente para ser más legible.

Aquí está el código en Microsoft.PowerShell_profile.ps1 archivo de perfil. Sólo tienes que copiar el código en el archivo de perfil y guardar los cambios para tener el mismo esquema de color o personalizarlo a tu gusto.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Código del archivo de perfil Microsoft.PowerShell_profile.ps1

En algunos sistemas antiguos la configuración de Set-PSReadLineOption CmdLet era un poco diferente como en el ejemplo siguiente.

Set-PSReadlineOption -TokenKind String -ForegroundColor MagentaSet-PSReadlineOption -TokenKind Operator -ForegroundColor CyanSet-PSReadlineOption -TokenKind Parameter -ForegroundColor Cyan 

Los colores de la fuente han sido cambiados de esto…

Colores de la fuente de la Consola PowerShell sin personalización del perfil.

… a esto.

Colores de la fuente de la Consola PowerShell después de la personalización del perfil.

Usa Get-PSReadLineOption CmdLet para ver los Argumentos de Color válidos y los valores actuales de los Argumentos (colores).

Get-PSReadLineOption CmdLet y esquema de colores actuales

Ejemplo 2 – Perfil tanto para la Consola de Windows PowerShell como para el ISE como Hosts (Usuario actual – Todos los Hosts)

Nombre del perfil: profile.ps1
Ubicación del perfil: $Home\DocumentsWindowsPowerShell\517>Utilizado para: Cuando se quiere personalizar tanto la consola de Windows PowerShell como el ISE simultáneamente o ejecutar funciones avanzadas propias o CmdLets tanto en la consola de PowerShell como en el ISE.

En este ejemplo, cargo mis propios módulos de PowerShell para algunos CmdLets que he escrito y que forman parte del proyecto PowerShell Efficiency Booster. Este proyecto es una biblioteca de mis propios CmdLets organizados en varios módulos y os recomiendo encarecidamente que os descarguéis el archivo zip de los archivos del proyecto y probéis en vuestro propio entorno y podáis seguirme en los artículos de este blog.

Aquí tenéis los comandos para importar los módulos y el contenido del archivo de perfil.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profile.ps1 profile file code

Podemos comprobar rápidamente que los módulos importados se cargan realmente cuando abrimos la consola de PowerShell con el siguiente comando:

Get-Module -ListAvailable
Los Módulos Importados en el archivo de Perfil se cargan en el entorno de la Consola PowerShell

Para entender mejor la interrelación de Perfiles, Módulos y CmdLets de PowerShell lee el siguiente subtítulo de este post Cómo organizar tus propios CmdLets de PowerShell en Módulos de PowerShell y qué perfil usar para organizar esa estructura y cómo enlazamos Perfil, Módulo y CmdLet de PowerShell.

Ejemplo 3 – Perfil para ISE como Host (Usuario actual – Host actual)

Nombre del perfil: Microsoft.PowerShellISE_profile.ps1
Localización del perfil: $Home\Documents\WindowsPowerShell\
Usado para: En este ejemplo, he importado el módulo que contiene CmdLets que serán los Add-ons para Window PowerShell ISE.

Aquí está el comando que hay que copiar en el archivo de perfil.

Import-Module 09addons
Código del archivo de perfil Microsoft.PowerShellISE_profile.ps1

Como resultado, tendremos dos Add-ons en Windows PowerShell ISE. Por favor, lee estos dos artículos para saber más sobre cómo codificarlos.

  • Cómo escribir funciones avanzadas o CmdLets con PowerShell (rápido)
  • Cómo escribir funciones de PowerShell o CmdLet’s de ayuda (rápido)
Adiciones de Windows PowerShell ISE-ons

Podemos comprobar rápidamente que los módulos importados están realmente cargados cuando abrimos la consola de PowerShell utilizando el siguiente comando:

Get-Module -ListAvailable
El módulo importado en el archivo Profile se carga en el entorno PowerShell ISE

NOTA: Windows PowerShell ISE importa cuatro modelos de dos archivos profile ( profile.ps1 y Microsoft.PowerShellISE_profile.ps1 ).

Ejemplo 4 – Perfil tanto para la consola de Windows PowerShell como para ISE como hosts (Todos los usuarios – Todos los hosts)

Nombre del perfil: profile.ps1
Locación del perfil: $PSHOME\
Utilizado para: En este ejemplo, sólo he cambiado el título de la consola de PowerShell de la ventana y el ISE tanto para el usuario actual como para el administrador.

Aquí está el código en el archivo de perfil:

$NTIdentity = ::GetCurrent()$NTPrincipal = new-object Security.Principal.WindowsPrincipal $NTIdentity$IsAdmin = $NTPrincipal.IsInRole(::Administrator)$hostversion="v$($Host.Version.Major).$($Host.Version.Minor)"$hostname = $host.NameIF ($IsAdmin){ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion - Running as ADMINISTRATOR" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion - Running as ADMINISTRATOR" }}Else{ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion" }}

Puede ver que tanto los títulos de la consola de PowerShell como del ISE tienen un texto personalizado, el nombre del host y la versión de PowerShell en el título.

Texto personalizado para el título de la consola
Texto personalizado para el título de la consola cuando se ejecuta como administrador
Texto personalizado para el Título de ISE de Windows PowerShell

Comandos PowerShell útiles para saber sobre los perfiles

Aquí tienes algunos comandos PowerShell útiles que te ayudarán a obtener información sobre los perfiles.

Como resultado de la ejecución de cualquiera de los comandos de perfil, obtendrá la ubicación del archivo de perfil.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Comandos de perfil

IMPORTANTE: Cuando desee encontrar la ubicación del archivo de perfil para Windows PowerShell ISE como anfitrión, debe abrir Windows PowerShell ISE y ejecutar comandos de perfil desde la consola de Windows PowerShell ISE

Utilice Test-Path CmdLet para comprobar si el archivo de perfil existe en el sistema o no. Si obtiene True como resultado el perfil existe y false significa que el archivo de perfil no existe. Utilice los comandos de la Tabla 1 – Tipos de perfiles, comandos, hosts, nombres de archivos, ubicaciones de archivos de PowerShell para buscar otros tipos de perfiles, ya sea que existan o no.

Test-Path $PROFILE

Esta línea de código creará un archivo de perfil. Utilice los comandos de la Tabla 1 – Tipos de perfil PowerShell, comandos, hosts, nombres de archivo, ubicaciones de archivo para crear otros tipos de perfil.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Si desea leer el contenido del archivo de perfil, ya sea en el Bloc de notas o en Window PowerShell ISE que utilizar estos dos comandos.

ise $PROFILEnotepad $PROFILE

Personalmente prefiero Windows PowerShell ISE ya que es un entorno más cómodo para escribir código PowerShell.

Usa esta línea de código para obtener las ubicaciones de los perfiles para todos los tipos de perfiles.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Localizaciones de archivos de perfil

Comprueba estas dos variables para obtener la ubicación de la instalación de PowerShell y el directorio de inicio respectivamente.

$pshome$home 

Cómo elegir qué archivo de perfil utilizar

Si utiliza varias aplicaciones de host como la consola de Windows PowerShell y el ISE, ponga toda la personalización en el perfil $PROFILE.CurrentUserAllHosts para el usuario actual conectado. Por ejemplo, he creado mis propios CmdLets organizados en Módulos así que pongo los comandos para cargar estos módulos en este perfil ya que quiero que los módulos se carguen tanto cuando abrimos la Consola de PowerShell como el ISE. Mira el ejemplo 2 para ilustrarlo.

Si quieres hacer una personalización específica a la aplicación host pon todo el código de personalización en un perfil específico para esa aplicación host. Por ejemplo, cambio el color de fondo de las fuentes de la consola de PowerShell para que sean más visibles o he cargado módulos que son complementos para ISE. He mostrado que en el ejemplo 1 para la consola de PowerShell y el ejemplo 3 para PowerShell ISE.

Si usted necesita para personalizar PowerShell para muchos usuarios y usted es un administrador que seguir estos consejos:

  • Almacenar la personalización más común en el $PROFILE.AllUsersAllHosts perfil ya que este es el más amplio alcance
  • Si desea personalizar Windows PowerShell para todos los usuarios, pero específico para una aplicación de host. Por ejemplo, una personalización diferente para la Consola de Windows PowerShell y otra personalización para Windows PowerShell ISE entonces pon el código en los perfiles $PROFILE.AllUsersCurrentHost
  • Escribe el código para usuarios particulares en los perfiles específicos de usuario. Básicamente, eso significa usar el perfil $PROFILE.CurrentUserAllHosts o $PROFILE.CurrentUserCurrentHost.

Cómo ejecutar la consola o ISE sin perfiles cargados

Abrir el diálogo de ejecución Win + R y abrir PowerShell con la opción -NoProfile.

PowerShell.exe -NoProfile

Advertencia: Tiempo de carga de PowerShell

Con un perfil más grande y complejo, puede comenzar a tener un efecto en la rapidez con que se abre PowerShell. Para solucionar si su perfil es o no responsable de los pobres tiempos de carga de PowerShell abra el diálogo de ejecución Win + R y abra PowerShell con la opción -NoProfile.

PowerShell.exe -NoProfile

Perfiles y sesiones remotas

Los perfiles de PowerShell no se ejecutan automáticamente en las sesiones remotas, por lo que los comandos que los perfiles añaden no están presentes en la sesión remota. Además, la variable automática $PROFILE no se rellena en las sesiones remotas.

Para ejecutar un perfil en una sesión, utilice el comando Invoke-Command CmdLet.

Por ejemplo, el siguiente comando ejecuta el perfil «Current user, Current Host» del equipo local en la sesión en $s.

Invoke-Command -Session $s -FilePath $PROFILE

Cómo organizar tus propios CmdLets de PowerShell en Módulos y Perfiles de PowerShell

Para que entiendas la relación entre Perfil de PowerShell, Módulo y CmdLet he creado el Proyecto de PowerShell Efficiency Booster con un montón de mis propios CmdLets organizados en un montón de Módulos que se cargan en cada Sesión de PowerShell con el perfil de PowerShell cada vez que abro la Consola de Windows PowerShell o ISE.

Por favor, no dudes en descargar el archivo zip que contiene el código del proyecto para que puedas seguirlo fácilmente. En el archivo ReadMe.txt hay una explicación de los pasos de instalación y personalización así que por favor lee las instrucciones en ese archivo. Incluso puedes leer las instrucciones de instalación y personalización leyendo el siguiente artículo Cómo instalar y configurar PowerShell: CmdLets, Módulos, Perfiles.

Utilizaré la analogía de la librería, las estanterías y los libros para explicar el vínculo entre Perfil de Powershell, Módulo y CmdLet.

Por ejemplo, imagina que quieres aprender más sobre PowerShell Scripting y quieres comprar algunos libros sobre el tema en la librería.

Entras en la librería y ves muchas estanterías con diferentes etiquetas de departamentos de libros como Arte, Negocios, Informática, Literatura, Viajes, etc. Por supuesto, usted camina a los estantes etiquetados Computadoras y allí encuentra el libro que explica PowerShell Scripting que desea comprar.

Volvamos ahora al mundo de PowerShell y vinculemos la historia de la analogía con PowerShell:

  • El CmdLet que usamos entregado con PowerShell o algunos de nuestros propios CmdLet escritos es el libro.
  • El código de ese CmdLet es el contenido del libro.
  • Módulo PowerShell es la estantería de la librería de algún departamento de la librería como por ejemplo la estantería del departamento de la librería de Informática donde se pone nuestro libro.
  • Finalmente, Perfil PowerShell es la propia librería.

Así que cada vez que abrimos la Consola de Windows PowerShell o ISE abrimos nuestra sesión y con esa sesión se han cargado los archivos de perfil y la personalización para configurar nuestro entorno PowerShell de la manera que queremos.

En el caso de Módulos y CmdLets. El archivo Profile importará los módulos y el Module cargará cada script CmdLet que pertenezca a ese Module.

Dado que me gusta utilizar mis propios CmdLets tanto en la consola de Windows PowerShell como en las aplicaciones host de ISE prefiero crear un $profile.CurrentUserAllHosts que no es otra cosa que el archivo Profile.ps1 creado en:

  • $Home\ Documents\WindowsPowerShell\ para la versión 5.1 de PowerShell y anteriores
  • $Home\ Documents\PowerShell\ para la versión 6.0 de PowerShell.

Cómo enlazamos el perfil de PowerShell, el módulo, Y CmdLet

Aquí tienes una breve descripción de esa estructura realizada en PowerShell

  • Crear un perfil PowerShell
  • Crear una estructura de carpetas y archivos de Módulos
  • Personalizar el perfil para importar los módulos necesarios
  • Crear el script de CmdLet PowerShell
  • Escribir el propio código de la función CmdLet
  • Personalizar el archivo Module para importar el script de CmdLet

Ilustraré este proceso con los ejemplos de Efficiency Booster PowerShell Project de Profile, Módulos, y CmdLets para que sea más fácil para cualquiera entender todo el proceso. Así que de nuevo animo a todo el mundo a instalar el archivo zip proporcionado.

Sigue estos pasos para crear un Perfil PowerShell, Módulo, CmdLet y enlazarlos juntos:

Paso 1: Abre la Consola de Windows PowerShell

Paso 2: Primero, comprobaremos si el Perfil existe o no en nuestra instalación PowerShell. Escriba el siguiente comando en el PowerShell de Windows, y presione ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Paso 3: Si el resultado del comando anterior es falso, el perfil no existe así que vaya al paso 4. Si el resultado es verdadero, el archivo de perfil existe así que ir al paso 5

Paso 4: Como el Perfil no existe crearemos uno con el siguiente comando que escribiremos y pulsaremos ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Paso 5: El perfil ha sido creado y podemos abrir el archivo de Perfil en PowerShell ISE con el siguiente comando, y pulsar ENTER.

ise $PROFILE.CurrentUserAllHosts

Paso 6: El archivo de Perfil ha sido abierto en PowerShell ISE.

Paso 7: Ahora necesitamos crear una estructura de carpetas de Módulos y los archivos necesarios.

Paso 8: En la carpeta donde hemos creado nuestro archivo de Perfil crear una carpeta de Módulos con el nombre exacto Módulos. Aquí guardaremos la estructura de carpetas de todos nuestros Módulos.

Carpeta Módulos

Paso 9: En la carpeta Módulos crea las carpetas de cada Módulo que quieras tener. Por ejemplo, yo he creado los siguientes módulos en Efficiency Booster PowerShell Project.

Módulos de Efficiency Booster PowerShell Project

Paso 10: En cada carpeta del Módulo creamos el archivo con extensión .psm1 y con el mismo nombre exacto de la carpeta del Módulo. Por ejemplo, en la carpeta 03common, creamos el archivo 03common.psm1

Archivo del módulo PowerShell psm1

Paso 11: Opcionalmente podemos crear un archivo de manifiesto (.psd1) para cada módulo que describirá aún más esa carpeta.

Paso 12: En la misma carpeta del módulo, creamos el archivo con extensión .ps1 (archivo de script de PowerShell regular) donde escribiremos el código de nuestro propio CmdLet. Por ejemplo, podemos crear el archivo GetCPUInfo.ps1 donde escribiremos el código para nuestro propio CmdLet Get-CPUInfo.

Archivo de script Get-CPUInfo CmdLet

Paso 13: Ahora estamos listos para escribir nuestro propio código CmdLet y guionizarlo. Siéntase libre de mirar en el ejemplo Get-CPUInfo y otros CmdLets del Proyecto PowerShell de Efficiency Booster. En futuros posts, escribiré más detalles sobre cada CmdLet del proyecto. Por ahora, descargue el código fuente del proyecto aquí.

Código fuente de Get-CPUInfo CmdLet

Paso 14: Enlazar un script CmdLet al Módulo PowerShell correcto. Abra el archivo .psm1 del Módulo y escriba esta línea de código:
. $psScriptRootNameOfCmdLetScriptFile.ps1
Por ejemplo, para Get-CPUInfo CmdLet escribimos esta línea de código en 03common.psm1 file:

. $psScriptRoot\GetCPUInfo.ps1 
El enlace entre el archivo de script CmdLet y el módulo

Paso 15: En el archivo de script Profile, importamos el Módulo que contiene nuestro archivo de script CmdLet por lo que escribimos este comando en el archivo profile.
Importar-Módulo NombreMódulo
Por ejemplo, nuestro CmdLet Get-CPUInfo forma parte del módulo 03common por lo que escribimos este código en el perfil:

Import-Module 03common
El enlace entre Perfil y Módulo

Paso 16: Repetimos los pasos 9 -15 para cada Módulo y CmdLet que queramos tener en nuestro perfil y que se cargue con cada sesión de PowerShell que iniciemos.

Paso 17: Comprobamos que se cargan todos los módulos importados cuando abrimos un determinado host. Podemos listar los módulos utilizando el siguiente comando:

Get-Module -ListAvailable
Módulos cargados en el entorno de la consola de PowerShell

Paso 18: Podemos probar que todos los CmdLets dentro de cada módulo se cargan en el entorno. Aquí está el comando de ejemplo útil:

Get-Command -Module 02utils
CmdLets cargados en entornos de consola PowerShell para el módulo 02utils

Artículos útiles de perfil PowerShell

Deja una respuesta

Tu dirección de correo electrónico no será publicada.