PowerShell Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ

ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с PowerShell, ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ срСщамС, са ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ (Cmdlets).
Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

ПомогнС

ΠŸΠΎΠΌΠΎΡ‰Ρ‚Π° Π² PowerShell Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Get-Help. Π•Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС посочСн: ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½, пълСн, ΠΎΠ½Π»Π°ΠΉΠ½, showWindow.

Get-Help Get-Service -full Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ описаниС Π½Π° опСрацията Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Get-Service
Get-Help Get-S* Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‰ΠΈ с Get-S*

Има ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° докумСнтация Π½Π° официалния уСбсайт Π½Π° Microsoft.

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Π° ΠΏΠΎΠΌΠΎΡ‰ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Get-Evenlog

PowerShell Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ

Ако ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ са ΠΎΠ³Ρ€Π°Π΄Π΅Π½ΠΈ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби [], Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π΅ Π½Π΅ са Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ.
ВоСст Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сС изисква ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° самия ΠΆΡƒΡ€Π½Π°Π» ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° НС. Ако Ρ‚ΠΈΠΏΡŠΡ‚ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΌΡƒ са ΠΎΠ³Ρ€Π°Π΄Π΅Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Π² скоби, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½.

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° EntryType, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ стойноститС, ΠΊΠΎΠΈΡ‚ΠΎ са Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ във Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΈ скоби. Π—Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ само ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ стойности във Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΈ скоби.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π΄Π°Π»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² описаниСто ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Required. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΡŠΡ‚ After Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Required Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° false. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Position отсрСща, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠ°Π·Π²Π° Named. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ към ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° само ΠΏΠΎ ΠΈΠΌΠ΅, тоСст:

Get-EventLog -LogName Application -After 2020.04.26

Въй ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ LogName имашС Π½ΠΎΠΌΠ΅Ρ€ 0 вмСсто Named, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°ΠΌΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π±Π΅Π· ΠΈΠΌΠ΅, Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ Π³ΠΎ посочим Π² ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° послСдоватСлност:

Get-EventLog Application -After 2020.04.26

Π”Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π΄:

Get-EventLog -Newest 5 Application

ПсСвдоним

Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π² PowerShell, ΠΈΠΌΠ° псСвдоними (Alias).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ псСвдоним Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Set-Location Π΅ cd.

ВоСст, вмСсто Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

Set-Location β€œD:”

ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅

cd β€œD:”

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ хронологията Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ‚Π΅ повиквания, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Get-History

ИзпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ хронологията Invoke-History 1; ИзвикванС Π½Π° Π˜ΡΡ‚ΠΎΡ€ΠΈΡ 2

Чиста история

Π’Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π² powershell Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΏΡŠΡ€Π²Π°Ρ‚Π° функция сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π°. Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°:

Get-Verb | Measure-Object

Но Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΠΎ-прост ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Имам Π΅ΠΊΠΈΠΏ

Get-Verb "get"

Ако ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ Get-Help Get-Verb -Full help, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Verb ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½Π° информация ΠΈ ByValue Π΅ написан Π² скоби.

PowerShell Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ

Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅ΠΌ Get-Verb "get" Π½Π° "get" | GetVerb.
ВоСст Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ ΠΈΠ·Ρ€Π°Π· Π΅ Π½ΠΈΠ· ΠΈ Ρ‚ΠΎΠΉ сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Verb Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Get-Verb Ρ‡Ρ€Π΅Π· въвСТданС Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΏΠΎ стойност.
Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ByPropertyName. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‰Π΅ ΠΏΡ€Π΅Π΄Π°Π΄Π΅ΠΌ ΠΎΠ±Π΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° свойство с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠΌΠ΅ Verb.

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π΅ са строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ са посочСни с $ ΠΎΡ‚ΠΏΡ€Π΅Π΄

$example = 4

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ > ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° въвСТданС Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅
НапримСр $example > File.txt
Π‘ Ρ‚ΠΎΠ·ΠΈ ΠΈΠ·Ρ€Π°Π· Ρ‰Π΅ поставим Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° $example във Ρ„Π°ΠΉΠ»
Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Set-Content -Value $example -Path File.txt

ΠœΠ°ΡΠΈΠ²ΠΈΡ‚Π΅

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° масива:

$ArrayExample = @(β€œFirst”, β€œSecond”)

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° ΠΏΡ€Π°Π·Π΅Π½ масив:

$ArrayExample = @()

ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° стойност ΠΏΠΎ индСкс:

$ArrayExample[0]

Π’Π·Π΅ΠΌΠ΅Ρ‚Π΅ цСлия масив:

$ArrayExample

ДобавянС Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚:

$ArrayExample += β€œThird”

$ArrayExample += @(β€œFourth”, β€œFifth”)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Но самият масив остава Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ с Ρ‚ΠΎΠ²Π° сортиранС. И Π°ΠΊΠΎ искамС ΠΌΠ°ΡΠΈΠ²ΡŠΡ‚ Π΄Π° ΠΈΠΌΠ° сортирани Π΄Π°Π½Π½ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° присвоим сортиранитС стойности:

$ArrayExample = $ArrayExample | Sort

Няма Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ масив Π² PowerShell, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

$ArrayExample = $ArrayExample | where { $_ -ne β€œFirst” }

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

ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° масив:

$ArrayExample = $null

Loops

Бинтаксис Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π°:

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

Π˜Π·Π»Π΅Π·Ρ‚Π΅ ΠΎΡ‚ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‰ΠΈΡ Ρ†ΠΈΠΊΡŠΠ».

ΠŸΡ€ΠΎΠΏΡƒΡΠ½Π΅Ρ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Π½Π΅.

Условни изявлСния

if () {} elseif () {} else

switch($someIntValue){
  1 { β€œOption 1” }
  2 { β€œOption 2” }
  default { β€œNot set” }
}

функция

ДСфиниция Π½Π° функцията:

function Example () {
  echo &args
}

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° функция:

Example β€œFirst argument” β€œSecond argument”

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ във функция:

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

function Example ($first, $second) {}

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° функция:

Example -first β€œFirst argument” -second β€œSecond argument”

ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€