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, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅ врСдноститС ΡˆΡ‚ΠΎ сС Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π²ΠΎ ΠΊΠ°Π΄Ρ€Π°Π²ΠΈ Π·Π°Π³Ρ€Π°Π΄ΠΈ. Π—Π° овој ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° користимС само ΠΎΠ΄Π½Π°ΠΏΡ€Π΅Π΄ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ врСдности Π²ΠΎ ΠΊΠ°Π΄Ρ€Π°Π²ΠΈ Π·Π°Π³Ρ€Π°Π΄ΠΈ.

МоТСмС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ° Π΄Π°Π»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π²ΠΎ описот ΠΏΠΎΠ΄ΠΎΠ»Ρƒ Π²ΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π—Π°Π΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ. Π’ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ ΠΏΠΎΠ³ΠΎΡ€Π΅, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ After Π΅ ΠΈΠ·Π±ΠΎΡ€Π΅Π½ бидСјќи Required Π΅ поставСн Π½Π° Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎ. Π‘Π»Π΅Π΄Π½ΠΎ Π³ΠΎ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Position спроти ΠΊΠΎΠ΅ Π²Π΅Π»ΠΈ Π˜ΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΎ. Ова Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° Π΄ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС пристапи само ΠΏΠΎ ΠΈΠΌΠ΅, односно:

Get-EventLog -LogName Application -After 2020.04.26

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ LogName Π³ΠΎ имашС Π½Π°Π²Π΅Π΄Π΅Π½ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ 0 намСсто Named, Ρ‚ΠΎΠ° Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° пристапимС Π΄ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Π±Π΅Π· ΠΈΠΌΠ΅, Π½ΠΎ со Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ќС Π³ΠΎ Π½Π°Π²Π΅Π΄Π΅ΠΌΠ΅ Π²ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°Ρ‚Π° Π½ΠΈΠ·Π°:

Get-EventLog Application -After 2020.04.26

Π”Π° Π³ΠΎ прСтпоставимС овој рСдослСд:

Get-EventLog -Newest 5 Application

алијас

Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° користимС ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΠ΄ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°, PowerShell ΠΈΠΌΠ° псСвдоними (Алијас).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ алијас Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Set-Location Π΅ cd.

Π’ΠΎΠ° Π΅, намСсто Π΄Π° ја ΠΏΠΎΠ²ΠΈΠΊΠ°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

Set-Location β€œD:”

ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° користимС

cd β€œD:”

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

Π—Π° Π΄Π° ја Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ²ΠΈΡ†ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС Get-History

Π˜Π·Π²Ρ€ΡˆΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ΄ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Повикај-Π˜ΡΡ‚ΠΎΡ€ΠΈΡ˜Π° 1; ΠŸΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅-Π˜ΡΡ‚ΠΎΡ€ΠΈΡ˜Π° 2

Π˜ΡΡ‡ΠΈΡΡ‚ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π° Clear-History

Гасоводот

Гасовод Π²ΠΎ powershell Π΅ ΠΊΠΎΠ³Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ ΠΏΡ€Π²Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° сС прСнСсува Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π°. Π•Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° гасоводот:

Get-Verb | Measure-Object

Но, Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π΄Π° Π³ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅ гасоводот, Π΄Π° Π·Π΅ΠΌΠ΅ΠΌΠ΅ поСдноставСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Има Ρ‚ΠΈΠΌ

Get-Verb "get"

Ако Π³ΠΎ Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌΠ΅ Get-Help Get-Verb -Full помош, ќС Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Verb ΠΏΡ€ΠΈΡ„Π°ΡœΠ° Π²Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π½Π° Π»ΠΈΠ½ΠΈΡ˜Π°Ρ‚Π° ΠΈ ByValue Π΅ напишан Π²ΠΎ Π·Π°Π³Ρ€Π°Π΄ΠΈ.

PowerShell Π·Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈΡ†ΠΈ

Ова Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Get-Galol "get" Π²ΠΎ "get" | Π—Π΅ΠΌΠΈ-Π“Π»Π°Π³.
Односно, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΈΠ·Ρ€Π°Π· Π΅ Π½ΠΈΠ·Π° ΠΈ сС прСнСсува Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Verb ΠΎΠ΄ Π½Π°Ρ€Π΅Π΄Π±Π°Ρ‚Π° Get-Verb ΠΏΡ€Π΅ΠΊΡƒ Π²Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π½Π° пиплајн ΠΏΠΎ врСдност.
Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, Π²Π»Π΅Π·ΠΎΡ‚ Π½Π° Ρ†Π΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ByPropertyName. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, ќС ΠΏΠΎΠΌΠΈΠ½Π΅ΠΌΠ΅ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ ΡˆΡ‚ΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΡ˜ΡΡ‚Π²ΠΎ со слично ΠΈΠΌΠ΅ Π“Π»Π°Π³ΠΎΠ».

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

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π΅ сС силно напишани ΠΈ сС Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ со симбол $ Π½Π°ΠΏΡ€Π΅Π΄

$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

Јамки

Бинтакса Π½Π° јамка:

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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€