PowerShell para principiantes

Cuando trabajamos con PowerShell, lo primero que encontramos son los comandos (Cmdlets).
La llamada de comando se ve así:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Ayuda

Se accede a la ayuda en PowerShell mediante el comando Get-Help. Se puede especificar uno de los parámetros: ejemplo, detallado, completo, en línea, showWindow.

Get-Help Get-Service -full devolverá la descripción completa de la operación del comando Get-Service
Get-Help Get-S* mostrará todos los comandos y funciones disponibles a partir de Get-S*

También hay documentación detallada en el sitio web oficial de Microsoft.

Aquí hay un ejemplo de ayuda para el comando Get-Evenlog

PowerShell para principiantes

Si los parámetros están encerrados entre corchetes [], entonces son opcionales.
Es decir, en este ejemplo, se requiere el nombre del registro en sí y el nombre del parámetro No. Si el tipo de parámetro y su nombre están entre corchetes, este parámetro es opcional.

Si observa el parámetro EntryType, puede ver los valores que están encerrados entre llaves. Para este parámetro, solo podemos usar valores predefinidos entre llaves.

La información sobre si el parámetro es obligatorio se puede ver en la descripción a continuación en el campo Obligatorio. En el ejemplo anterior, el atributo After es opcional porque Required se establece en false. A continuación, vemos el campo Posición opuesto que dice Nombrado. Esto significa que puede hacer referencia al parámetro solo por su nombre, es decir:

Get-EventLog -LogName Application -After 2020.04.26

Dado que el parámetro LogName tenía el número 0 en lugar de Named, esto significa que podemos referirnos al parámetro sin nombre, pero especificándolo en la secuencia deseada:

Get-EventLog Application -After 2020.04.26

Supongamos este orden:

Get-EventLog -Newest 5 Application

alias

Para que podamos usar los comandos habituales desde la consola en PowerShell, existen los alias (Alias).

Un alias de ejemplo para el comando Set-Location es cd.

Es decir, en lugar de llamar al comando

Set-Location “D:”

nosotros podemos usar

cd “D:”

Historia

Para ver el historial de llamadas de comando, puede usar Get-History

Ejecutar comando desde el historial Invocar-Historial 1; Historial de invocaciones 2

Borrar historial

Tubería

Una canalización en powershell es cuando el resultado de la primera función se pasa a la segunda. Aquí hay un ejemplo usando la canalización:

Get-Verb | Measure-Object

Pero para comprender mejor la tubería, tomemos un ejemplo más simple. tengo un equipo

Get-Verb "get"

Si llama a la ayuda Get-Help Get-Verb -Full, veremos que el parámetro Verb toma la entrada de línea de tubería y ByValue está escrito entre paréntesis.

PowerShell para principiantes

Esto significa que podemos reescribir Get-Verb "get" a "get" | ObtenerVerbo.
Es decir, el resultado de la primera expresión es una cadena y se pasa al parámetro Verb del comando Get-Verb a través de la entrada de línea por valor.
También la entrada de tubería puede ser ByPropertyName. En este caso, pasaremos un objeto que tiene una propiedad con un nombre similar Verbo.

Variables

Las variables no están fuertemente tipadas y se especifican con $ delante

$example = 4

El símbolo > significa poner los datos en
Por ejemplo, $ejemplo > Archivo.txt
Con esta expresión, pondremos los datos de la variable $example en un archivo
Igual que Set-Content -Value $example -Path File.txt

Matrices

Inicialización de matriz:

$ArrayExample = @(“First”, “Second”)

Inicialización de matriz vacía:

$ArrayExample = @()

Obtener valor por índice:

$ArrayExample[0]

Obtener toda la matriz:

$ArrayExample

Agregando un elemento:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

Ordenar por:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Pero la matriz en sí permanece sin cambios con esta clasificación. Y si queremos que la matriz tenga datos ordenados, entonces debemos asignar los valores ordenados:

$ArrayExample = $ArrayExample | Sort

No hay forma de eliminar un elemento de una matriz en PowerShell, pero puede hacerlo así:

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

Eliminando una matriz:

$ArrayExample = $null

bucles

Sintaxis de bucle:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

Salga del bucle de descanso.

Omita el elemento continuar.

Declaraciones condicionales

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

Función

Definición de función:

function Example () {
  echo &args
}

Lanzamiento de la función:

Example “First argument” “Second argument”

Definición de argumentos en una función:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

Lanzamiento de la función:

Example -first “First argument” -second “Second argument”

Excepción

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

Fuente: habr.com

Añadir un comentario