Cmdlets de PowerShell que mejorarán tus habilidades de administrador de Windows

Cmdlets de PowerShell que mejorarán tus habilidades de administrador de Windows / Programación

Powershell es la manera perfecta para que un nuevo codificador se inicie en Windows. Powershell es una herramienta de línea de comandos de partes iguales y lenguaje de scripting. Le brinda la capacidad de automatizar su computadora a través de los mismos comandos que usa para administrarlo 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 arreglárselas sin usar el símbolo del sistema o PowerShell. Pero con Windows 10 y las nuevas funciones a la vuelta de la esquina, quizás sea hora de que aprendamos. Lee mas . Si tiene un sistema moderno de Windows, 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, PowerShell de fuente abierta de Microsoft y debutó una iteración multiplataforma . En este artículo, le mostraré cómo instalar, ejecutar y usar PowerShell en Linux. Leer 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. Usando esto, puedes escribir y probar tus scripts.

El ISE tiene una lista de comandos de búsqueda, y puede usar su ventana de terminal sin un archivo abierto. La lista de comandos le permite construir su comando e insertarlo. Si está haciendo un desarrollo más avanzado, instale el Código Visual Studio de Microsoft. El código incluye el soporte para el control de versiones de Git. 10 Consejos de productividad esenciales para Visual Studio Code 10 Consejos de productividad esenciales para Visual Studio Code Visual Studio Code hace que otros editores de texto de programación salgan del agua. Es gratis, de código abierto, a la velocidad de la luz y repleto de características de productividad. Leer más y otros idiomas.

Powershell es único ya que está construido completamente de comandos, Microsoft los llama Cmdlets. Estos comandos son los mismos si está trabajando a través de la línea de comandos o escribiendo guiones complejos. Así que a medida que usa estos comandos, puede pensar en cómo unirlos 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 suelen ser: Obtener, establecer y nuevo.

Get-Command le permite ver cada comando disponible. Cuando ejecutas Get-Command, ves que hay toneladas de comandos que comienzan con estos.

Cavando más allá de los nombres de los cmdlets, empiezas a ver que todos tienen una estructura similar. Los invocas por su nombre, tal como hiciste con Get-Command. Usar parámetros cambia la información que obtienes. Sin embargo, si solo ha usado el comando con las opciones predeterminadas, ¿cómo averigua cómo usar parámetros avanzados??

Utilizando la Consigue ayuda cmdlet con Get-Command muestra más información sobre el cmdlet. Usamos el cmdlet con la siguiente sintaxis:

Get-Help Get-Command

A continuación, 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 quieres ver los ejemplos, puedes ejecutar:

Get-Help Get-Command -Ejemplos

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

Si desea abrir el archivo de ayuda en una ventana separada, puede usar -Mostrar ventana. Así que si corres:

Obtener-Ayuda Get-Command -ShowWindow

Powershell abre una ventana con el archivo de ayuda completo. No es necesario usar el parámetro Completo aquí, ya que la ventana muestra el artículo completo.

A medida que vaya avanzando con Powershell, descubrirá que utiliza Get-Member con más frecuencia. Es una forma 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 una -Propiedad parámetro para permitirle llamar a los.

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 usando el Get-ChildItem mando. Por ejemplo, puede obtener los archivos de una unidad completa utilizando la letra de unidad. Entrar:

Get-ChildItem E: \

Que es corto para:

Get-ChildItem -Path E: \

Cuando ejecuta este comando, obtiene una lista de archivos con su Tiempo de última escritura, tamaño bajo 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
  • Cifrado

Si desea obtener el contenido de todos los subdirectorios en una ruta, desea utilizar el -Recuento parámetro. Entonces corre:

Get-ChildItem -Path E: \ -Recurse

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

Para limitar los datos devueltos, puede utilizar algunos parámetros diferentes: -Expediente, -Oculto, y -Solo lectura. Si desea 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

De nuevo agregar -recuento si querías todo de las subcarpetas también.

Si desea eliminar un archivo use:

Quitar elemento -Página E: \ OldFile.txt

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

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

Mover elemento -Pista E: \ * -Destino C: \ FlashDriveArchive

También puede nombrar un solo archivo en -Path para mover solo ese archivo. Para copiar el archivo en lugar de moverlo, use la misma sintaxis con la Copiar el artículo cmdlet.

Seguimiento y trabajo con procesos y servicios.

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

Proceso de obtención | Get-Member

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

También podemos ver en esta salida que podemos obtener el Producto Propiedad para obtener un nombre más amigable para los procesos. Cambiemos la salida, para que tenga mejor información con la que podamos trabajar:

Proceso de obtención | Producto de objeto selecto, NPM, CPU, Nombre, ID | Ordenar objeto-CPU - Descendente

(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 con 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:

Proceso de parada -ID 45960

Reemplazar 49560 con la identificación de su recurso de cerdo.

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

Inicio-Proceso-Ruta de acceso "C: \ Archivos de programa (x86) GoogleChromeApplicationchrome.exe"

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

Inicio-Proceso-Ruta de acceso "C: \ Archivos de programa (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"

Puede hacer la mayoría de estas mismas 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 hago 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 ejecutan en toda la compañía. Hay… Leer más . Obtener servicio le muestra una lista de todos los servicios que se ejecutan en su computadora. Lo mismo con los servicios de arranque y parada, puede usar Empieza el servicio y Parada de servicio.

Trabajar con datos: Ordenar-Objeto, Seleccionar-Objeto, Dónde-Objeto

Cuando trabaja con los datos de un cmdlet, es posible que no siempre sea el orden que desea. En esos casos, desea utilizar el Ordenar-Objeto. Puede llamar a Sort-Object en una variable que haya 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 canalizarla a Sort-Object.

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

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

Asegúrese de notar las comas que separan los valores. Así que para ver los números aleatorios ordenados correr:

$ (Get-Random), $ (Get-Random), $ (Get-Random) | Ordenar-Objeto

El cmdlet genera los números de menor a mayor, si desea revertirlo, agregue -Descendiendo.

Cuando canaliza los cmdlets a Get-Member, hay más propiedades que la salida predeterminada. Selecciona propiedades específicas utilizando Seleccionar objeto.

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

Obtener servicio | Seleccionar Nombre del Objeto, Estado

Si bien la salida de todos estos datos es buena, ¿qué sucede si solo desea ver datos específicos? Get-ChildItem tiene algunos filtros incorporados, pero la mayoría de los comandos no. En esos casos, usas Donde-objeto.

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

Obtener servicio | Donde-Estado del objeto -eq "Corriendo"

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

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

Ayuda de formato: Formato de tabla y Formato de lista.

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 Lista de formatos.

A veces tienes una salida que se vuelve demasiado ancha para la ventana de Powershell. Cuando eso sucede, Powershell lo fuerza en una salida de lista. Para asegurarse de que lo mantiene en el formato de tabla, canalice su salida a Formato de tabla.

De la línea de comandos a las secuencias de comandos: próximos pasos

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

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

Explorar más sobre: ​​PowerShell, Scripting.