4. Gestión de archivos en PowerShell para administradores de sistemas

Los sistemas de archivos permiten organizar los datos en los dispositivos de almacenamiento siguiendo una serie de normas y restricciones. Un sistema de archivos se implanta después de crear una partición en un dispositivo de almacenamiento (disco duro, USB, CD/DVD, etc.).

La unidad principal de los sistemas de archivos es el archivo, en general, los sistemas operativos distinguen entre estos tipos de archivos:

  • Normales: los archivos pueden contener cualquier tipo de información.
  • Directorios: son archivos que contienen información sobre la organización y estructura de otros archivos.
  • Especiales: estos archivos permiten comunicarse con dispositivos de E/S.

Los archivos tienes propiedades:

  • Nombre: sirve para identificar un archivo.
  • Extensión: la extensión sirve para saber el tipo de programa que lo ejecuta o interpreta.
  • Tipo de archivo: pueden dividirse en normales, directorios o especiales.
  • Ubicación: lugar del sistema de archivos donde se encuentra un archivo.
  • Tamaño: cantidad de bytes que ocupa un fichero en el sistema de archivos.
  • Fecha de creación, modificación y último acceso: para cada archivo indica la fecha en que ha sido creado, modificado y la última vez que se accedió a él.
  • Atributos: son propiedades que permiten asignar características especiales a los archivos.
  • Permisos: se utilizan para permitir o restringir el acceso a los archivos a determinados usuarios o grupos. Los permisos pueden ser para: leer, modificar, eliminar, renombrar, etc.

A continuación se verán las operaciones que se pueden realizar con archivos y directorios.

Archivos

Las operaciones que se pueden realizar con archivos son:

  • Información sobre archivos

  • Crear archivos

  • Almacenar contenido en un archivo

  • Agregar contenido a un fichero

  • Vaciar el contenido de un fichero

  • Ver el contenido de un fichero

  • Importar el contenido de un fichero

  • Importar el contenido de un fichero XML

  • Exportar el contenido a un fichero

  • Exportar el contenido a un fichero XML

  • Copiar archivos

  • Eliminar ficheros

  • Mover archivos

  • Renombrar

  • Imprimir

  • Comprimir

  • Descomprimir

  • Asignar permisos a archivos

Directorios

Las operaciones que se pueden realizar con directorios son:

  • Crear un una carpeta

  • Cambiar de directorio

  • Listar el contenido de un directorio

  • Copiar carpetas

  • Borrar carpetas

  • Mover carpetas

  • Renombrar carpetas

  • Comprimir

  • Descomprimir

  • Permisos

  • Compartir

Ver la temperatura de los equipos que hay en la red local utilizando credenciales almacenados en un fichero

 

Realizar consultas WMI relacionadas con el hardware a las direcciones IP de un rango utilizando credenciales almacenados en un fichero

Realizar una consulta WMI a las direcciones IP de un rango utilizando credenciales almacenados en un fichero

Utilizar credenciales almacenados

Reading in an XML File

If the Export-Clixml cmdlet enables you to save data as an XML file, then what do you suppose the Import-Clixml cmdlet lets you do? OK, so maybe it wasn’t all that tough after all. At any rate, you’re right: Import-Clixml will import an XML file that was saved using Export-Clixml and then rebuilds the Windows PowerShell object for you. For example, suppose you use the Get-ChildItem cmdlet to retrieve a collection of files found in the folder C:\Scripts; you then use the Export-Clixml cmdlet to save that information as an XML file:

 
Any time you feel like it you can retrieve that data using Import-Clixml; simply call the cmdlet followed by the name of the file to import. For example, this command retrieves the data and stores it in a variable named $A:

 
So what will $A be equal to? It will be equal to the collection of files that were in C:\Scripts at the time you originally ran Get-ChildItem. Take a look at our Windows PowerShell session:
Windows PowerShell

The best part is that $A is not simply a collection of string data, but an actual Windows PowerShell object. How do we know that? Try piping $A through the Sort-Object cmdlet and see what happens: