Página principal » cómo » 5 Cmdlets para que comience con PowerShell

    5 Cmdlets para que comience con PowerShell

    PowerShell se está convirtiendo rápidamente en el lenguaje de scripting y CLI preferido de los usuarios avanzados, así como en los profesionales de TI. Vale la pena aprender algunos comandos para comenzar, así que tenemos 5 cmdlets útiles para que aprendas hoy.

    Get-Command

    Get-Command es uno de los cmdlets más útiles de PowerShell, ya que te ayudará a familiarizarte con PowerShell al permitirte buscar ciertos cmdlets. El uso de Get-Command por sí solo no es muy útil ya que simplemente va a escupir todos los comandos que tiene PowerShell.

    Pero a partir de esto, podemos ver que los objetos que las salidas de PowerShell tienen un nombre y una propiedad ModuleName. Usando esta información, podemos realizar una búsqueda más precisa, buscando cmdlets que contengan ciertos términos. Por ejemplo, si quisiera encontrar todos los cmdlets que contienen la palabra "IP", podría hacer esto:

    Get-Command -Nombre * IP *

    Como puede ver, aún obtenemos algunos resultados, nuestra siguiente opción es buscar dentro de un módulo específico. En nuestro caso elegiré el módulo NetTCPIP..

    Get-Command -Module NetTCPIP -Name * IP *

    Consigue ayuda

    Una vez que haya encontrado el cmdlet que está buscando con Get-Command, querrá saber la sintaxis y cómo puede usar ese cmdlet específico. Aquí es donde entra en juego Get-Help. Si alguna vez usaste la línea de comandos en Windows, probablemente hiciste algo como esto:

    ipconfig /?

    Bueno, eso no funciona en PowerShell, esto se debe a que en PowerShell se usa un espacio para separar un comando de sus parámetros. Entonces, en lugar de eso, usamos Get-Help y pasamos un nombre de cmdlets a Get-Help como parámetro.

    Get-Help Get-Process

    Get-Member

    Get-Member nos permite obtener información sobre los objetos que devuelve un cmdlets. El problema con get-member es que se basa en la función de canalización de PowerShell. Para demostrarlo, podemos usar el cmdlet Get-Process..

    Como puede ver, el resultado de PowerShell nos muestra algunas de las propiedades, que puede ver en la parte superior de cada columna. El primer problema es que, si bien esas son las propiedades que podría estar buscando la mayor parte del tiempo, todavía hay más. El segundo problema es que no muestra ningún método al que podamos invocar el objeto. Para ver los métodos y las propiedades, podemos canalizar nuestra salida a Get-Member, así:

    Proceso de obtención | Get-Member

    Si bien puede que no signifique nada para usted en este momento, tarde o temprano tendrá que usar Get-Member, y cuanto antes aprenda a usarlo, mejor. Como ejemplo, utilizando la información de la salida, podríamos hacer algo como:

    Inicio del proceso notepad.exe
    $ NotepadProc = Get-Process-Name notepad
    $ NotepadProc.WaitForExit ()
    Proceso de inicio calc.exe

    Esa secuencia de comandos iniciará el bloc de notas, luego asignará la salida de "Get-Process-Name notepad" a la variable $ NotepadProc, luego llamaremos al método WaitForExit en $ NotepadProc que hace que la secuencia de comandos se detenga hasta que cierre el bloc de notas, una vez que haya cerrado el bloc de notas entonces la calculadora lanzará.

    $ _ (Objeto de tubería actual)

    Si bien no es exactamente un cmdlet, es una de las variables especiales más utilizadas en PowerShell. El nombre oficial de $ _ es "el objeto de canalización actual". Se utiliza en bloques de script, filtros, la cláusula de proceso de las funciones, where-object, foreach-object y switches. Sin embargo, es más fácil de explicar con un ejemplo, que nos lleva a nuestro siguiente y último cmdlet, Where-Object.

    Donde-objeto

    Where-Object hace exactamente lo que suena, selecciona un objeto en función de si cumple con ciertos criterios. Esto reunirá a $ _, y las propiedades que podemos ver usando Get-Member. Para demostrar esto, canalizaremos la salida de Get-Process al cmdlet Where-Object.

    Proceso de obtención | Donde-Objeto $ _. Nombre -eq "iexplore"

    Entonces, ¿qué está pasando aquí te preguntas? Bueno, lo primero que estamos haciendo es obtener una lista de procesos en nuestra computadora y pasar la salida (usando el carácter) a nuestro cmdlet Where-Object, que toma un bloque de script como parámetro. El bloque de secuencia de comandos (definido por las llaves) indica a los cmdlets Where-Object que solo seleccionen objetos cuyo parámetro de nombre sea igual a "iexplore", por lo que solo obtenemos una lista de las instancias de IE que se están ejecutando. Eso es todo lo que hay que hacer, divertirse.!