¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Windows PowerShell
  3. Las unidades de Windows PowerShell
Extrait - Windows PowerShell Administrar puestos cliente Windows (2a edición)
Extractos del libro
Windows PowerShell Administrar puestos cliente Windows (2a edición)
2 opiniones
Volver a la página de compra del libro

Las unidades de Windows PowerShell

Las unidades de Windows PowerShell y la navegación

En este capítulo veremos el conjunto de unidades de Windows PowerShell a los que se tiene acceso desde el intérprete de comandos. Sistema de archivos, registros o certificados son, por citar solamente algunos, almacenes de datos accesibles con Windows PowerShell. En cada uno de ellos es posible navegar y realizar acciones sobre los elementos que los componen.

1. ¿Qué es una unidad Windows PowerShell?

Una unidad Windows PowerShell es la ubicación de algún almacén de datos, como por ejemplo una unidad de sistema de archivos. Sin embargo, los proveedores de Windows PowerShell crean por defecto varias unidades en los distintos almacenes de datos, y le ofrecen así la posibilidad de acceder a las unidades de sistema de archivos (C:), las unidades de registro (HKCU: y HKLM:), la unidad de certificados (Cert:) y otras. En todas estas unidades de Windows PowerShell, es posible ejecutar por línea de comandos el conjunto de acciones que se llevan a cabo habitualmente a través de la interfaz gráfica de Windows.

He aquí una tabla de las unidades de Windows PowerShell más importantes:

Nombre

Tipo

Ruta raíz

C

Sistema de archivos

C:\

Env

Variables de entorno

HKCU

Registro

HKEY_CURRENT_USER

HKLM

Registro

HKEY_LOCAL_MACHINE

Y… ¡puede haber otras! En efecto, los proveedores de Windows PowerShell pueden crear nuevas unidades hacia otros almacenes de datos. Es el caso, por ejemplo, de IIS (servidor web de Microsoft), que puede instalar en un puesto de trabajo. Tras importar el módulo correspondiente, se creará una nueva unidad Windows PowerShell que estará accesible (IIS:).

Como administrador de puestos de trabajo, resulta imprescindible saber realizar operaciones sobre estas unidades de Windows PowerShell....

El sistema de archivos

El sistema de archivos permite almacenar archivos, y por tanto datos. Estos archivos pueden estar organizados en una o varias carpetas, de manera jerárquica. 

Existen dos tipos de cmdlet: los cmdlets utilizados para navegar para situarse en una unidad o en una carpeta deseada, y aquellos que permiten manipular objetos (como, por ejemplo, renombrar una carpeta, copiar un archivo, etc.).

1. Cmdlets dedicados a la navegación

En esta sección, verá la gran mayoría de los cmdlets necesarios para navegar por las unidades de Windows PowerShell. Pues en lo sucesivo, con Windows PowerShell, ya no existen comandos específicos destinados a un único tipo de unidad. En efecto, con la consola de comandos de Windows, comandos tales como cd, copy o incluso delete funcionaban solamente con el sistema de archivos. El comando reg está dedicado, por su parte, únicamente al registro de Windows.

Con Windows PowerShell, cmdlets tales como Set-Location, Copy-Item o incluso Get-Content son válidos tanto en la unidad de Windows PowerShell de tipo sistema de archivos como en la del registro… ¡y en las demás unidades de Windows PowerShell que hemos indicado previamente!

a. Get-Location

Get-Location permite, simplemente, obtener la carpeta activa en la ejecución del comando:

PS C:\Windows\system32> Get-Location  
  
Path  
----  
C:\Windows\system32 

b. Set-Location

Todo administrador de sistemas conoce el comando cd (Change Directory) de la consola de comandos. En Windows PowerShell, si bien sigue funcionando cd, en realidad es porque existe un alias que apunta al cmdlet Set-Location.

Así, para situarse en una carpeta específica, escriba:

PS C:\Windows\system32> Set-Location D:\  
PS D:\> 

Si la ruta de acceso contiene espacios, hay que escribirla entre comillas (simples o dobles):

PS D:\> Set-Location 'C:\Program Files'  
PS C:\Program Files> 

También es posible utilizar rutas relativas: «.», «..», «\». Así, para acceder a una subcarpeta, escriba:

PS C:\Program Files> Set-Location '.\Common Files'  
PS C:\Program Files\Common Files> 

c. Get-ChildItem

El cmdlet Get-ChildItem permite enumerar el contenido de una carpeta, y le indica también los atributos de cada uno de sus elementos...

El registro de Windows (HKCU y HKLM)

Los cmdlets descritos anteriormente permiten navegar y también realizar acciones sobre los sistemas de archivos. Sin embargo, no se limitan solo a las unidades de sistemas de archivos. En efecto, es posible interactuar con el registro de Windows utilizando estos mismos cmdlets. 

Cualquier administrador de sistemas conoce el ejecutable regedit.exe (Registry Editor), que permite abrir la interfaz gráfica para navegar por el registro de Windows y realizar modificaciones (mantenimiento, comportamiento de aplicaciones, reparación del sistema, etc.).

He aquí algunos ejemplos de comandos que pueden ejecutarse en Windows PowerShell.

images/02EIT02.png

Editor del Registro de Windows

1. Moverse por el registro

Además de navegar por el sistema de archivos, es posible navegar por el registro mediante el comando Set-Location:

PS C:\Windows\system32> Set-Location HKCU:  
PS HKCU:\> 

Por último, Get-ChildItem permite enumerar el conjunto de claves del registro presentes en la raíz HKEY_CURRENT_USER, así como los valores (columna Property) incluidos en cada una de ellas:

PS HKCU:\> Get-ChildItem  
  
  
   Hive: HKEY_CURRENT_USER  
  
  
Name                           Property  
----                           --------  
AppEvents  
Console                        HistoryNoDup          : 0  
                              FullScreen            : 0  
                              ScrollScale           : 1  
                              ExtendedEditKeyCustom : 0  
                              CursorSize            : 25  
                             ...

Los certificados

Igual que con el sistema de archivos y el registro, la gestión de certificados puede llevarse a cabo a través de Windows PowerShell. Esto se ha mejorado enormemente desde Windows 8, con la creación de cmdlets suplementarios dedicados. Algunos cmdlets que se abordan aquí no están disponibles en Windows 7.

images/02EIT04.png

La consola MMC con el componente Certificados

1. Gestionar los certificados con Windows PowerShell

La gestión de certificados también puede hacerse a través de Windows PowerShell. Gracias al acceso a la unidad de certificados (Cert:), es posible interactuar directamente con los certificados existentes, agregar nuevos y también eliminarlos. 

El acceso a los certificados con Windows PowerShell se hace de la misma manera que con el registro:

PS C:\Windows\system32> Set-Location Cert:  
PS Cert:\> Get-ChildItem  
  
  
Location  : CurrentUser  
StoreNames: {TrustedPublisher, ClientAuthIssuer, Root, UserDS...}  
  
Location  : LocalMachine  
StoreNames: {TestSignRoot, ClientAuthIssuer, Remote Desktop, Root...} 

Como muestra el ejemplo de código anterior, es posible gestionar el conjunto de certificados correspondientes al puesto de trabajo (LocalMachine), y también los correspondientes al usuario autenticado en la máquina (CurrentUser). Los ejemplos y explicaciones que se proveen en esta sección corresponden a los certificados de equipo.

He aquí un resumen de los distintos almacenes de certificados:

PS Cert:\> Set-Location .\LocalMachine   
PS Cert:\LocalMachine> Get-ChildItem   
  
  
Name: TestSignRoot  
  
Name: ClientAuthIssuer  
  
Name: Remote Desktop  
  
Name: Root  
  
Name: TrustedDevices  
  
Name: CA 
  
Name: TrustedAppRoot 
 
Name: eSIM Certification Authorities  
 
Name: AuthRoot  
  
Name: Windows Live ID Token Issuer  
  
Name: TrustedPublisher  
  
Name: FlightRoot  
  
Name: TrustedPeople  
  
Name: My  
  
Name: SmartCardRoot  
  
Name: Trust  
  
Name: Disallowed...

Web Services-Management

El almacén de datos WSMan contiene, por su parte, todos los parámetros vinculados con la gestión de Windows Remote Management (WinRM). Se trata de la implementación del protocolo de comunicación WS-Management.

La funcionalidad PowerShell Remoting, aparecida con Windows PowerShell versión 2.0, permite administrar una o varias máquinas remotas mediante WinRM.

Sin embargo, Windows PowerShell y su funcionalidad PowerShell Remoting no son los únicos que explotan WinRM para la administración remota de máquinas. Exchange Server, algunas herramientas de la gama System Center y muchas otras la utilizan; en ciertos casos se producen errores de conexión cuando el administrador desea ejecutar comandos PowerShell en una máquina remota.

Uno de los errores más frecuentes es que se ha superado el número de usuarios diferentes conectados a la máquina. En este caso concreto, he aquí el mensaje de error que se obtiene:

PS C:\Windows\system32> Enter-PSSession -ComputerName LAB-WS01  
enter-pssession: Error de conexión al servidor remoto LAB-WS01.  
Mensaje de error: El servicio WS-Management no puede procesar  
la solicitud. Se superó el número máximo de usuarios que  
ejecutan operaciones remotas para este complemento.  
Vuelva a intentar la solicitud más tarde o aumente  
la cuota...

Internet Information Services (IIS)

IIS es un servidor web desarrollado por Microsoft. Está disponible en Windows como una característica para instalar: abra el Panel de control, seleccione Programas y características (categoría Programas) y a continuación, en el menú de la izquierda, seleccione Activar o desactivar las características de Windows. La característica que se ha de seleccionar se llama Internet Information Services.

images/02EIT05.png

Agregar el componente IIS en las características de Windows

Una vez instalado el componente, tiene acceso al Administrador de IIS escribiendo inetmgr.exe, bien utilizando la búsqueda de Windows (combinación de teclas [Windows] S) o a través de la ventana Ejecutar (combinación de teclas [Windows] R). Este administrador es la herramienta que permite administrar y configurar los diferentes sitios web alojados en su puesto.

images/02EIT06.png

El Administrador de IIS

Veamos cómo gestionar este servicio con Windows PowerShell. Desde la administración de sitios web hasta la configuración de los parámetros, el conjunto está accesible a través de una unidad Windows PowerShell. En primer lugar, hay que importar el módulo WebAdministration para tener acceso al lector de IIS, así como a todos los cmdlets que permiten administrar el servidor web. Para ello, hay que utilizar el cmdlet Import-Module:

PS C:\Windows\system32> Import-Module WebAdministration 

Para saber si el módulo se ha cargado correctamente, puede utilizar el cmdlet Get-Module. Este comando devuelve como resultado los módulos cargados en Windows PowerShell.

PS C:\Windows\system32> Get-Module   
  
ModuleType Version    Name                                ExportedCommands   
---------- -------    ----                                ----------------  
Binary     1.0.0.0    CimCmdlets                          {Export-BinaryMiLog... 
Script     3.0        Dism                                {Add-AppxProvisione... ...