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

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с PowerShell ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, с ΠΊΠΎΠ΅Ρ‚ΠΎ сС сблъсквамС, са ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ (Cmdlet).
Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

Π“Π»Π°Π³ΠΎΠ»-ИмС -ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€1 ВипБтойност1 -ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€2 ВипБтойност2[]

ΠŸΠΎΠΌΠΎΡ‰

Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ Π² PowerShell сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π° Get-Help. МоТС Π΄Π° сС посочи Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅: example, detailed, full, online, showWindow.

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

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π° официалния сайт Π½Π° Microsoft ΠΈΠΌΠ° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° докумСнтация.

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

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

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

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

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

Get-EventLog -LogName Application -After 2020.04.26

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

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; Invoke-History 2

Π˜Π·Ρ‡ΠΈΡΡ‚ΠΈ историята Clear-History

Pipeline

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

Get-Verb | Measure-Object

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

Get-Verb "get"

Ако ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Get-Help Get-Verb -Full, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Verb ΠΏΡ€ΠΈΠ΅ΠΌΠ° pipline Π²Ρ…ΠΎΠ΄ ΠΈ Π² скобитС Π΅ написано ByValue.

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

Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅ΠΌ Get-Verb 'get' Π½Π° 'get' | Get-Verb.
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ изразяванС Π΅ Π½ΠΈΠ· ΠΈ Ρ‚ΠΎΠΉ сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Verb Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Get-Verb Ρ‡Ρ€Π΅Π· pipline Π²Ρ…ΠΎΠ΄ ΠΏΠΎ стойност.
Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, pipline Π²Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС 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

Π¦ΠΈΠΊΠ»ΠΈ

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

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

ИзлизанС ΠΎΡ‚ Ρ†ΠΈΠΊΡŠΠ»Π° break.

ΠŸΡ€ΠΎΠΏΡƒΡΠΊ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ continue.

Условни ΠΈΠ·Ρ€Π°Π·ΠΈ

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

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster