PowerShell por komencantoj

Laborante kun PowerShell, la unua afero, kiun ni renkontas, estas komandoj (Cmdlets).
La komandvoko aspektas jene:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

helpi

Helpo en PowerShell estas alirita per la komando Get-Help. Unu el la parametroj povas esti specifita: ekzemplo, detala, plena, interreta, showWindow.

Get-Help Get-Service -full resendos la plenan priskribon de la operacio de la komando Get-Service
Get-Help Get-S* montros ĉiujn disponeblajn komandojn kaj funkciojn komencante per Get-S*

Ankaŭ estas detala dokumentado en la oficiala retejo de Microsoft.

Jen ekzempla helpo por la komando Get-Evenlog

PowerShell por komencantoj

Se parametroj estas enfermitaj en kvadrataj krampoj [], tiam ili estas laŭvolaj.
Tio estas, en ĉi tiu ekzemplo, la nomo de la protokolo mem estas postulata, kaj la nomo de la parametro Ne. Se la parametrotipo kaj ĝia nomo estas enmetitaj inter krampoj, tiam ĉi tiu parametro estas laŭvola.

Se vi rigardas la parametron EntryType, vi povas vidi la valorojn, kiuj estas enfermitaj en krampoj. Por ĉi tiu parametro, ni povas uzi nur antaŭdifinitajn valorojn en buklaj krampoj.

Informoj pri ĉu la parametro estas bezonata videblas en la suba priskribo en la Bezonata kampo. En la supra ekzemplo, la post-atributo estas laŭvola ĉar Bezonata estas agordita al falsa. Poste, ni vidas la kampon de pozicio kontraŭe, kiu diras Nomite. Ĉi tio signifas, ke vi povas rilati al la parametro nur per nomo, tio estas:

Get-EventLog -LogName Application -After 2020.04.26

Ĉar la parametro LogName havis la numeron 0 anstataŭ Named, tio signifas, ke ni povas rilati al la parametro sen nomo, sed specifante ĝin en la dezirata sinsekvo:

Get-EventLog Application -After 2020.04.26

Ni supozu ĉi tiun ordon:

Get-EventLog -Newest 5 Application

alias

Por ke ni povu uzi la kutimajn komandojn de la konzolo en PowerShell, ekzistas kaŝnomoj (Alias).

Ekzempla kaŝnomo por la komando Aro-Loko estas cd.

Tio estas, anstataŭ voki la komandon

Set-Location “D:”

ni povas uzi

cd “D:”

historio

Por vidi la historion de komandvokoj, vi povas uzi Get-History

Efektivigu komandon el historio Invoke-History 1; Alvoku Historion 2

Klara-Historio

Pipeline

Dukto en powershell estas kiam la rezulto de la unua funkcio estas pasita al la dua. Jen ekzemplo uzante la dukton:

Get-Verb | Measure-Object

Sed por pli bone kompreni la dukto, ni prenu pli simplan ekzemplon. Havas teamon

Get-Verb "get"

Se vi nomas la Get-Help Get-Help Get-Verb -Full helpo, tiam ni vidos, ke la Verb-parametro prenas pipline-enigon kaj ByValue estas skribita inter krampoj.

PowerShell por komencantoj

Ĉi tio signifas, ke ni povas reverki Get-Verb "get" al "get" | GetVerb.
Tio estas, la rezulto de la unua esprimo estas ĉeno kaj ĝi estas pasita al la Verb-parametro de la komando Get-Verb per pipline-enigo laŭ valoro.
Ankaŭ pipline-enigo povas esti ByPropertyName. En ĉi tiu kazo, ni transdonos objekton, kiu havas econ kun simila nomo Verbo.

variabloj

Variabloj ne estas forte tajpitaj kaj estas specifitaj kun $ antaŭe

$example = 4

La simbolo > signifas enmeti la datumojn
Ekzemple, $ekzemplo > Dosiero.txt
Kun ĉi tiu esprimo, ni metos la datumojn de la $ekzempla variablo en dosieron
Same kiel Aro-Enhavo -Valo $ekzemplo -Voja Dosiero.txt

Arrays

Inicialigo de tabelo:

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

Malplena tabelkomencigo:

$ArrayExample = @()

Akirante valoron per indekso:

$ArrayExample[0]

Akiru la tutan tabelon:

$ArrayExample

Aldonante elementon:

$ArrayExample += “Third”

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

Ordigado:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Sed la tabelo mem restas senŝanĝa kun ĉi tiu ordigo. Kaj se ni volas, ke la tabelo havu ordigitajn datumojn, tiam ni devas asigni la ordigitajn valorojn:

$ArrayExample = $ArrayExample | Sort

Ne estas maniero forigi elementon de tabelo en PowerShell, sed vi povas fari ĝin tiel:

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

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

Forigante tabelon:

$ArrayExample = $null

Loops

Buklo-sintakso:

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){}

Eliru el la rompo-buklo.

Preterpasu la daŭran elementon.

Kondiĉaj Deklaroj

if () {} elseif () {} else

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

funkcio

Difino de funkcio:

function Example () {
  echo &args
}

Funkcia lanĉo:

Example “First argument” “Second argument”

Difinante argumentojn en funkcio:

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

function Example ($first, $second) {}

Funkcia lanĉo:

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

escepto

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

fonto: www.habr.com

Aldoni komenton