Cmdlets Powershell que mejorarán tus habilidades administrativas de Windows

Powershell es en partes iguales herramienta de línea de comandos y lenguaje de scripting. Le da la capacidad de automatizar su computadora a través de los mismos comandos que usa para administrarla.

Powershell es en partes iguales herramienta de línea de comandos y lenguaje de scripting.  Le da la capacidad de automatizar su computadora a través de los mismos comandos que usa para administrarla.
Anuncio

Powershell es la manera perfecta para que un nuevo codificador comience a funcionar en Windows. Powershell es en partes iguales herramienta de línea de comandos y lenguaje de scripting. Le da la capacidad de automatizar su computadora a través de los mismos comandos que usa para administrarla. Símbolo del sistema frente a Windows PowerShell: ¿Cuál es la diferencia? Símbolo del sistema frente a Windows PowerShell: ¿Cuál es la diferencia? Los usuarios de Windows pueden funcionar sin usar el símbolo del sistema o PowerShell. Pero con Windows 10 y nuevas características a la vuelta de la esquina, tal vez ya es hora de que aprendamos. Lee mas . Si tiene un sistema Windows moderno, ya tiene Powershell. La mayoría de sus usos están centrados en Windows, pero puede instalar Powershell en una máquina Mac o Linux Cómo instalar y usar PowerShell en Linux Cómo instalar y usar PowerShell en Linux En 2016, Microsoft abrió el código de PowerShell y debutó una iteración multiplataforma . En este artículo, voy a mostrar cómo instalar, ejecutar y usar PowerShell en Linux. Lea más también.

Trabajando con Powershell

Hay dos formas de usar Powershell. Existe la ventana de línea de comandos básica, que se utiliza para ejecutar comandos o invocar scripts escritos previamente. Luego está el ISE, que combina la ventana CLI con un entorno de desarrollo básico. Al usar esto, puedes escribir y probar tus scripts.

El ISE tiene una lista de comandos que se puede buscar, y puede usar su ventana de terminal sin un archivo abierto. La lista de comandos le permite construir su comando e insertarlo. Si está realizando un desarrollo más avanzado, instale el Código Visual Studio de Microsoft. El código incluye soporte para el control de la versión de Git. 10 Consejos de productividad esenciales para Visual Studio. Código 10. Sugerencias esenciales de productividad para el código de Visual Studio. El código de Visual Studio saca del agua a otros editores de texto de programación. Es gratis, de código abierto, a la velocidad del rayo y está repleto de funciones de productividad. Leer más y otros idiomas.

línea de comando de powershell

Powershell es único en el sentido de que está construido completamente con comandos, Microsoft los llama Cmdlets. Estos comandos son los mismos si está trabajando a través de la línea de comando o escribiendo scripts complejos. A medida que utiliza estos comandos, puede pensar en cómo encadenarlos para crear sus primeros scripts.

Lo Básico: Get-Command, Get-Help, Get-Member

Todos los comandos de Powershell toman la forma de Verb-Noun. Los verbos generalmente son: Obtener, Establecer y Nuevo .

Get-Command le permite ver todos los comandos disponibles. Cuando ejecuta Get-Command, ve que hay toneladas de comandos que comienzan con estos.

Profundizando más allá de solo los nombres de los cmdlets, comienzas a ver que todos tienen una estructura similar. Usted los invocará por su nombre, tal como lo hizo con Get-Command. El uso de parámetros cambia la información que obtienes. Sin embargo, si solo ha usado el comando con las opciones predeterminadas, ¿cómo puede descubrir cómo usar los parámetros avanzados?

powershell get-help

El uso del cmdlet Get-Help con Get-Command muestra más información sobre el cmdlet. Usamos el cmdlet con la siguiente sintaxis:

Get-Help Get-Command 

Luego verá la información básica sobre los parámetros. Si desea ver los detalles del parámetro y algunos ejemplos de uso, agregue el parámetro -Full.

Si solo quiere ver los ejemplos, puede ejecutar:

 Get-Help Get-Command -Examples 

Este cmdlet devuelve solo los ejemplos del archivo de ayuda. Estos ejemplos son bastante útiles porque incluyen descripciones. Este texto de ayuda explica qué hacen el cmdlet y los parámetros cuando se ejecutan.

ventana de ayuda

Si desea abrir el archivo de ayuda en una ventana separada, puede usar -ShowWindow . Entonces si corres:

 Get-Help Get-Command -ShowWindow 

Powershell saca una ventana con el archivo de ayuda completo. No necesita usar el parámetro Full aquí, ya que la ventana extrae el artículo completo.

A medida que avanza con Powershell, encontrará que usa Get-Member más a menudo. Es una manera fácil de ver qué campos están disponibles a partir de los datos devueltos, así como otros métodos que puede ejecutar. A menudo, los cmdlets tendrán un parámetro -Property para permitirte llamarlos.

Trabajar con archivos: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Ahora que tiene una idea de cómo funcionan los cmdlets y cómo obtener ayuda, hagamos cambios. Puede obtener el contenido de cualquier carpeta utilizando el comando Get-ChildItem . Por ejemplo, puede obtener los archivos de una unidad completa usando la letra de la unidad. Entrar:

 Get-ChildItem E:\ 

¿Cuál es la abreviatura de:

 Get-ChildItem -Path E:\ 

Cuando ejecuta este comando, obtiene una lista de archivos con su Última Hora de Escritura, tamaño debajo de la propiedad Longitud, Nombre y Modo. El modo es los atributos de un archivo o carpeta AttributeMagic Free: modificar las propiedades del archivo en Windows AttributeMagic Free: modificar las propiedades del archivo en Windows Leer más. Las posibles entradas son:

  • Solo lectura
  • Oculto
  • Sistema
  • Directorio
  • Archivo
  • Dispositivo
  • Normal
  • Temporal
  • SparseFile
  • ReparsePoint
  • Comprimido
  • Desconectado
  • NotContentIndexed
  • Encriptado

Si desea obtener el contenido de todos los subdirectorios en una ruta, desea usar el parámetro -Recurse . Entonces, ejecuta:

 Get-ChildItem -Path E:\ -Recurse 

Sus archivos aparecen como listas separadas para cada carpeta en la ruta.

powershell get-childitem

Para limitar los datos devueltos, puede usar algunos parámetros diferentes: -File, -Hidden y -ReadOnly . Si está buscando filtrar los nombres del archivo, puede usar comodines en el parámetro Ruta. Para devolver todos los archivos .doc en un directorio, ingrese:

 Get-ChildItem -Path E:\*.doc 

Vuelva a agregar -curse si también deseaba todo de las subcarpetas.

Si desea eliminar un archivo, use:

 Remove-Item -Path E:\OldFile.txt 

Para omitir la confirmación de cada archivo, agregue el parámetro -Confirmar $ falso (Powershell tiene dos constantes para los valores booleanos: $ true y $ false). Para forzar la eliminación de archivos de solo lectura u ocultos, use el parámetro -Fuerza .

Mover archivos es igual de fácil. Para mover todo desde su unidad Flash a la unidad local en una carpeta, use:

 Move-Item -Path E:\* -Destination C:\FlashDriveArchive 

También puede nombrar un solo archivo en -Path para mover solo ese archivo. Para copiar el archivo en lugar de moverlo, usa la misma sintaxis con el cmdlet Copy-Item .

Monitoreo y trabajo con procesos y servicios

Todos los usuarios de Windows conocen el Administrador de tareas 5 Alternativas potentes al Administrador de tareas de Windows 5 Alternativas potentes al Administrador de tareas de Windows Asesino de tareas sería un nombre mejor para el Administrador de tareas nativo de Windows, ya que solo lo traemos para eliminar procesos que no responden. Los administradores de tareas alternativos le permiten administrar realmente sus procesos. Lee mas . Sin embargo, hay una manera más rápida de ver los procesos actualmente en ejecución de Powershell, Get-Process . Si quiere saber qué significan todas las entradas en esta tabla, dirija el comando a Get-Member . Ingrese el cmdlet:

 Get-Process | Get-Member 

Get-member genera una lista de métodos y propiedades asociados con Get-Process. La información en la parte superior es lo que le interesa. Verá que los distintos tipos de memoria tienen alias.

proceso de obtención de powershell

También podemos ver en este resultado que podemos obtener la propiedad del Producto para obtener un nombre más amigable para los procesos. Cambiemos el resultado, para que tenga mejor información para trabajar con nosotros:

 Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending 

(Hay más información sobre Select-Object y Sort-Object en la siguiente sección).

Ahora que tiene el ID de su comando Get-Process, puede detenerlo usando el cmdlet Stop-Process. Entonces, si encuentra que un proceso de Chrome está masticando todos sus recursos, encuentre la ID en el comando anterior. Entonces corre:

 Stop-Process -ID 45960 

Reemplace 49560 con la ID de su cerdo de recursos.

Usando la ruta del archivo, puede iniciar un proceso usando Powershell. Para iniciar Chrome, ejecute el siguiente comando:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" 

( Debe tener las comillas en la ruta del archivo debido a los espacios). El parámetro -ArgumentList le permite pasar opciones de línea de comando a la aplicación. En el caso de Chrome, puede forzarlo a que se inicie en Modo de incógnito con el indicador -incognito . El cmdlet completo es:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito" 

servicio de obtención de powershell

Puede hacer la mayoría de estas cosas con los servicios Cómo controlar los servicios en ejecución con el comando SC [Windows] Cómo controlar los servicios en ejecución con el comando SC [Windows] Una de las cosas que me encuentro haciendo mucho más a menudo desde que me sumergí en TI está monitoreando y verificando el estado de los servicios que se ejecutan en las computadoras que se están ejecutando en toda la compañía. Hay ... Leer más. Get-Service le muestra una lista de todos los servicios que se ejecutan en su computadora. Lo mismo con los servicios de Inicio y Detención, puede usar el Servicio de inicio y el Servicio de paro .

Trabajar con datos: Sort-Object, Select-Object, Where-Object

Cuando trabaja con los datos de un cmdlet, puede que no siempre sea el orden que desea. En esos casos, quiere usar Sort-Object . Puede llamar a Sort-Object en una variable que ha creado, pero principalmente se usa para canalizar otro cmdlet. Como en el ejemplo anterior, canalizamos la salida de un objeto a otro y lo ordenamos. Vamos a crear una matriz de tres números aleatorios y canalizarlo a Sort-Object.

Cualquier cosa entre paréntesis se ejecuta primero. Crea una matriz simple con:

 $(Get-Random), $(Get-Random), $(Get-Random) 

Asegúrese de notar las comas que separan los valores. Entonces, para ver los números aleatorios ordenados, ejecuta:

 $(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object 

El cmdlet muestra los números del más pequeño al más grande, si desea invertirlo, agregue -Descendiendo .

objeto de clasificación powershell

Cuando canaliza cmdlets a Get-Member, hay más propiedades que la salida predeterminada. Selecciona propiedades específicas usando Select-Object .

Al igual que Sort-Object, usa Select-Object a través de un cmdlet canalizado. Por ejemplo, para generar una tabla de servicios y su estado, use:

 Get-Service | Select-Object DisplayName, Status 

Si bien la salida de todos estos datos es agradable, ¿qué pasa si solo quieres ver datos específicos? Get-ChildItem tiene algunos filtros incorporados, pero la mayoría de los comandos no. En esos casos, usa Where-Object .

powershell donde-objeto

Volviendo a los servicios nuevamente, esta vez solo obtendrás servicios en ejecución. Ingrese el cmdlet:

 Get-Service | Where-Object Status -eq "Running" 

Ese -eq en la comparación es Powershell para = . En Powershell, realiza comparaciones con combinaciones de letras:

  • eq: igual
  • ne: no igual
  • lt: menos de
  • gt: mayor que
  • ge: mayor que o igual a
  • le: menor que o igual a
  • como: usar como en comparaciones de comodines

Ayuda de formateo: Format-Table y Format-List.

Para estos diversos cmdlets, la mayor parte de la salida estaba en formatos de tabla. Esto muestra los datos en filas y columnas con encabezados. Para mostrar las entradas enumeradas con sus propiedades individualmente, canalice el cmdlet a Format-List .

lista de formatos powershell

A veces tiene una salida demasiado amplia para la ventana de Powershell. Cuando eso sucede, Powershell lo fuerza a una salida de lista. Para asegurarse de mantenerlo en el formato de tabla, canalice su salida a Format-Table .

Desde la línea de comandos hasta la secuencia de comandos: próximos pasos

Una vez que se sienta cómodo, las secuencias de comandos son una cuestión de ingresar los cmdlets Impulse su productividad con las secuencias de comandos de Windows PowerShell Impulse su productividad con las secuencias de comandos de Windows PowerShell ¿Qué pasaría si pudiera llevar la productividad de Linux a Windows? La mayoría de las distribuciones de Linux vienen empaquetadas con el poderoso shell Bash. PowerShell es un terminal igualmente poderoso para Windows. Lea más en un archivo de texto y guárdelo. Si estás nervioso por probar secuencias de comandos, no lo seas. Microsoft tiene una enorme cantidad de documentación en cada cmdlet. Esto va más allá de la ya extensa documentación de ayuda, así que asegúrese de visitar Technet.

Si está aprendiendo Powershell, háganos saber en los comentarios lo que más le entusiasma hacer. Si tiene un poco más de experiencia, nos encantaría escuchar sobre temas más avanzados que le gustaría ver cubiertos.

In this article