Windows PowerShell
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΈΠ΄Π°Π΅Ρ Windows PowerShell β ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ PowerShell Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Server Manager) Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π±ΡΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΡΠΊ (Start) ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Administrative Tools) ΠΈ ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Server Manager).
- Π Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ·Π΅Π» ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Features)
- ΠΡΠΎΠ»ΠΈΡΡΠ°ΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Windows PowerShell. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΠ°Π»Π΅Π΅ (Next) ΠΈ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ (Install).
ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° PowerShell ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ ΠΏΠ° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ² PowerShell, Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΌΠ΅Π½Ρ ΠΡΡΠΊ (Start).
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ PowerShell ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» (powershell.exe) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ %SystemRoot%\System32\WindowsPowerShell\ΠΠ΅ΡΡΠΈΡ, Π³Π΄Π΅ ΠΠ΅ΡΡΠΈΡ β Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ PowerShell, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, v.1.0 ΠΈΠ»ΠΈ v.1.1.
ΠΠ°ΠΏΡΡΡΠΈΠ² PowerShell, Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠΌΡ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈ ΠΎΠ½Π° Π·Π°ΠΏΡΡΡΠΈΡΡΡ, ΠΊΠ°ΠΊ Π»ΡΠ±Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠΎΠΌΠ°Π½Π΄Ρ cmdlet ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ°Π·Π²Π°Π½ΠΈΡ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΠΏΠ°Ρ Β«Π³Π»Π°Π³ΠΎΠ»-ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅Β». ΠΠ»Π°Π³ΠΎΠ» Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π° ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° get-variable Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ Windows PowerShell.
ΠΠ±ΡΡΠ½ΠΎ Π² ΠΈΠΌΠ΅Π½Π°Ρ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³Π»Π°Π³ΠΎΠ»Ρ:
- Get ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ ΠΈΠ»ΠΈ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ².
- Set ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
- Enable ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
- Disable ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
- New Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°.
- Remove Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄, Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ PowerShell ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΡΠ°Π²ΠΊΡ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π²Π²Π΅Π΄ΠΈΡΠ΅ help ΠΈ ΠΈΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Π£ cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄ Π΅ΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° cmdlet-ΠΊΠΎΠΌΠ°Π½Π΄. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ², Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ PowerShell
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
new-item -path alias: ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ -value: ΠΠΎΠ»Π½ΡΠΉ ΠΡΡΡ ΠΠΎΠΌΠ°Π½Π΄Ρ
new-item -path alias: ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ -value: ΠΠΎΠ»Π½ΡΠΉ ΠΡΡΡ ΠΠΎΠΌΠ°Π½Π΄Ρ |
ΠΠ΄Π΅ΡΡ ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ β ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°, Π° ΠΠΎΠ»Π½ΡΠΉΠΡΡΡΠΠΎΠΌΠ°Π½Π΄Ρ β ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
new-item -path alias:sm -value:c:\windows\system32\compmgmtlauncher.exe
new-item -path alias:sm -value:c:\windows\system32\compmgmtlauncher.exe |
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ sm Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Windows PowerShell, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ sm ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠ»ΡΠΆΠ± Powershell Service ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ Π²Β Powershell Π΅ΡΡΡ Π²ΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅. Π§ΡΠΎ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π² PS Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
Get-Command -Noun Service
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ:
- Get-Service — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ»ΡΠΆΠ± Π² Powershell.
- New-Service — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- Restart-Service — ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΠ»ΡΠΆΠ±Ρ.
- Resume-Service — Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- Start-Service — Π·Π°ΠΏΡΡΠΊ ΡΠ»ΡΠΆΠ±Ρ Π² Powershell.
- Stop-Service — ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
- Suspend-Service — ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°Π±ΠΎΡΡ (ΠΏΠ°ΡΠ·Π°).
Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· WMI, ΠΊΠΎΡΠΎΡΠΎΠ΅Β ΡΠΎΠΆΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ.
Β
Π£Π·Π½Π°ΡΡ ΡΡΠ°ΡΡΡ Π²ΡΠ΅Ρ ΡΠ»ΡΠΆΠ± ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
Get-Service
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π² PS ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π‘Π²ΠΎΠΉΡΡΠ²Π° — ΡΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. Π§ΡΠΎ Π±Ρ ΡΠ·Π½Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΅ΡΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Get-Service | Get-Member -MemberType Properties
Π§Π°ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ:
Get-Service | SELECT *
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π°, ΡΡΠ°ΡΡΡ ΠΈ ΡΠΈΠΏ Π·Π°ΠΏΡΡΠΊΠ°:
Get-Service | Ft Name, Status, StartType
ΠΠ»ΠΈ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ:
Get-Service "WinRM" | Ft Name, Status, StartType
Π£ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΅ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅. Π’Π°ΠΊ ΠΌΡ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΠΎΠ±Π°:
Π ΠΈΠΌΠ΅Π½Π°Ρ Β ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠΊΠΈ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ Π·Π½Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΠΊ * Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ:
Get-Service -DisplayName "Win*" | Ft Name, DisplayName, Status, StartType
ΠΠ΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌ ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΡΠ΄ΡΡΒ ΠΎΡΠΈΠ±ΠΊΠΈ:
- Cannot find any service with service name
- Cannot find any service with display name
- ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠ»ΡΠΆΠ±Ρ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΄Π²Π° ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΠΊΠΈ:
- Include — Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ°ΡΠΊΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ.
- Exclude — ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅.
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ:
Get-Service -Name "Win*" -Include "*RM" -Exclude "*mgmt","*Http*","*Defend" | Ft Name, Status, StartType
Π£ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΡΠΎΠ²:
- Running — Π·Π°ΠΏΡΡΠ΅Π½.
- Stopped — ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
- Paused — ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ (ΠΏΠ°ΡΠ·Π°).
ΠΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
Get-Service | where -Property Status -eq Stopped
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎΒ Π΅ΡΡΡ 3 ΡΠΈΠΏΠ° Π·Π°ΠΏΡΡΠΊΠ°:
- Automatic — Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°ΠΏΡΡΠΊ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
- AutomaticDelayedStart — Π·Π°ΠΏΡΡΠΊ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
- Manual — ΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΡΡΠΊ.
- Disabled — ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΠ‘. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π³Π΄Π΅ ΡΡΠ°ΡΡΡ Π½Π΅ ΡΠ°Π²Π΅Π½ Running ΠΈ ΡΠΈΠΏ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°Π²Π΅Π½ Automatic:
Get-Service | where -FilterScript {$_.Status -ne 'Running' -and $_.StartType -eq 'Automatic'} | ft 'Name','StartType','Status'
Π‘Π»ΡΠΆΠ±Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π΅ΡΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
- DependentServices — ΠΊΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- RequiredServices — ΠΎΡ ΠΊΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΡΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ.
Get-Service -DisplayName 'Windows Remote Management (WS-Management)' -RequiredServices -DependentServices
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΠ΅Β Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°Β DependentServices ΠΈΒ ServicesDependedOn (RequiredServices). ΠΠ½ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅.
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ — ΡΡΠΎ:
- CanPauseAndContinue — ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ.
- CanShutdown — ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π±ΡΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½.
- CanStop — ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² GUI. Π ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π»ΠΈΠ°Ρ gsv (ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΈΠΌΡ Get-Service):
gsv -ServiceName 'Winrm' | SELECT CanPauseAndContinue,CanShutdown,CanStop | fl
ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° PS, Π³Π΄Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ComuterName, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² PowershellΒ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅.Β
ΠΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ:
gsv -ComputerName 'AD1','localhost' | where Status -eq 'Stopped' | Select MachineName,Name,Status,StartType
Β
Β
Π§ΡΠΎΠ±Ρ Π²Β PowershellΒ Π·Π°ΠΏΡΡΡΠΈΡΡΒ ΡΠ»ΡΠΆΠ±Ρ ΠΈΒ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΒ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ. ΠΡΠΈΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ:
Stop-Service -Name 'WinRM'
Start-Service -DisplayName 'Π‘Π»ΡΠΆΠ±Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows (WS-Management)'
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΠΊ Π² ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
gsv 'WinR*' | Stop-Service | Start-Service
Β ΠΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅Β ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°Ρ PS, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ,Β ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ΅ΡΠ²ΡΠΉ — ΡΡΠΎ WhatIf, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°, Π½ΠΎ Π½Π΅ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ². ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Confirm, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΌΠ΅ΡΡΠ΅ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
Stop-Service -DisplayName 'Windows Remote Management (WS-Management)' -Confirm
Π Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠ°ΡΡΡΠΎΠ² Π²ΡΡΠ΅. ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ:
Stop-Service 'WinR*' -Include '*M'
Start-Service 'WinR*' -Include '*M'
ΠΡΠ»ΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠΎ ΠΌΡ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΠΌ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Force:
Stop-Service 'WinRM' -Force
ΠΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΒ ΠΎΡΠΈΠ±ΠΊΠ°:
- Cannot stop service ‘Remote Procedure Call (RPC) (RpcSs)’ because it has dependent services. It can only be stopped if the Force flag is set.
- ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ «Π£Π΄Π°Π»Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡ (RPC) (RpcSs)».
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΈ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ (ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ Spooler) ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΈΡ , Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΠ» ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ:
$sub_services = Get-Service 'Spooler'
$sub_services.RequiredServices | Start-Service
$sub_services.Name | Start-Service
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
Restart-Service 'WinRM'
Π£Π΄Π°Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°ΠΌΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π°, Π½ΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
Invoke-Command -ComputerName 'AD1','localhost' -ScriptBlock {Start-Service 'WinRM'}
Β
ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ (Pause) ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²ΡΡ. Π§ΡΠΎ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
Get-Service | where CanPauseAndContinue | select -Property Name,CanPauseAndContinue,DisplayName
Β
ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈ, Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΏΠ°ΡΠ·Ρ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Winmgmt:
Get-Service -Name 'Winmgmt' | Suspend-Service | Resume-Service
ΠΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
- Service ‘Windows Remote Management (WS-Management)’ cannot be suspended because the service does not support beingsuspended or resumed.Β
- ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ «Spooler», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
Π ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Include ΠΈ Exclude, Ρ ΠΌΠ°ΡΠΊΠ°ΠΌΠΈ.Β
ΠΠ° ΡΠΊΡΠΈΠΏΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π΅ΡΠ»ΠΈ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ Π΅Π΅ Π½Π΅Ρ, ΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ:
# ΠΠ°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠ΅ΠΉ
#$srv = 'Winmgm*'
$srv_suspend_on = (Get-Service $srv).CanPauseAndContinue
if ($srv_suspend_on){Suspend-Service $srv}
else {Stop-Service $srv}
Β
ΠΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠΌ Π½ΠΈΠΆΠ΅ Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠΈΠΏ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ:
Set-Service 'WinRM' -StartupType Automatic
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π΅Π»ΡΠ·ΡΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠΊΠΈ *.Β
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Microsoft Π³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ ΠΏΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ:
- Automatic
- AutomaticDelayedStart
- Disabled
- Manual
ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ½Π°ΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΠ·-Π·Π° Π±Π°Π³ΠΎΠ²Β Windows Server 2019,ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·-Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (Π² GUI Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ), Π½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΎ Π² PS. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ WMI Π²ΡΠ΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ. Π Π΅Π°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΊΠΈΠ΅:
- Automatic
- Boot
- Disabled
- Manual
- System
Π§Π΅ΡΠ΅Π· ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ:
Set-Service 'WinRM' -Status Stopped
ΠΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°:
Set-Service 'WinRM' -Description 'ΡΡΠΎ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Ρ PS'
ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ:
Set-Service WinRM -ComputerName 'AD1' -StartupType Automatic
Β
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° — ΡΡΠΎ ΠΈΠΌΡ ΠΈ ΠΏΡΡΡ Π΄ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
New-Service -Name 'TestService' -BinaryPathName 'C:\test.exe'
Π PS 5.1 Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΎΠ½Π° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² Π²Π΅ΡΡΠΈΠΈ 6.1, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½Π°ΡΠ΅. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ WMI. Π£ΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΎ Π±Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π½Π΅ Π»Π΅Π·ΡΡ Π² WMI.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΡΠ΅Π· PS:
- DisplayName — ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ.
- CredentialΒ — ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π·Π°ΠΏΡΡΠΊ.
- DependsOn — ΠΎΡ ΠΊΠΎΠ³ΠΎΒ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ.
$credential = Get-Credential
New-Service -Name 'TestService1' -BinaryPathName 'C:\test.exe' -DisplayName 'Testing Services In Powershell' -Credential $credential -DependsOn WinRM
ΠΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $credential Ρ Π½Π°Ρ Π·Π°ΠΏΡΠΎΡΡΡΡΡ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°ΡΠΎΠ»Ρ). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΡΠ΅ΠΊΡΡΠΈΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠΌ.Β Π― ΡΠΎΠ·Π΄Π°Π²Π°Π» ΡΠ΅ΡΠ²ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π²Π²Π΅Π» FQDN Π²ΠΈΠ΄ [email protected] Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΎΡΠΈΠ±ΠΊΡ:
- Service ‘Testing Services In Powershell (TestService1)’ cannot be created due to the following error: The account name is invalid or does not exist, or the password is invalid for the account name specified
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΠ΅:
- Description — ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
- StartupType — ΡΠΈΠΏ Π·Π°ΠΏΡΡΠΊΠ°.
New-Service 'InstallService' -BinaryPathName 'C:\test.exe' -Description 'Descr' -StartupType Automatic
Β
ΠΠ° ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ Π² WMI ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠ»Π°ΡΡ win32_service. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ WMI Π² Powershell ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ.
Π§ΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Get-Service Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
Get-WmiObject -Class 'Win32_Service' | ft
Β
Π ΠΊΠ»Π°ΡΡΠ΅ WMI ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Properties
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² WMI ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ 0. Π’Π°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ WinRM ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ:
$srv = Get-WmiObject -Class Win32_Service | Where -Property Name -eq 'WinRM'
$srv.ProcessId
Get-Process -Id $srv.ProcessId
Π ΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π² Powershell ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.Β
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ WMI ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π° ΡΠ»ΡΠΆΠ±Π° ΠΈ Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ComputerName ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ²:
Get-WmiObject -ComputerName 'AD1','localhost' -Class Win32_Service | ft Name,StartName,Description -AutoSize
Β
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² WMI ΡΡΡΠ΅ΡΡΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊ:
Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Method
Π£Π΄Π°Π»ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΡΠ΅ΡΠ΅Π· New-Service:
Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Method
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΠ²ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ:
# ΠΠΎΠ³ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$user = 'ServiceUser'
# ΠΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$password = 'Pass0000'
# ΠΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΠ°
$srv_name = 'ServiceName'
$srv = Get-WmiObject -Class win32_service | where -Property Name -eq $srv_name
$srv.Change($null,$null,$null,$null,$null,$null,$null,$null,$null,$user,$password)
$null ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Ρ Π²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π£Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½ΡΡΡΡΡ Ρ $null ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
$srv = get-wmiobject win32_service | where Name -eq Winrm
$srv.GetMethodParameters("change")
…Π’Π΅Π³ΠΈ: #powershell
Π’ΠΎΠΏ 7 Powershell ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² / Netwrix corporate blog / Habr
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π²ΡΠ΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ PowerShell, Π½ΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π½Π΅ Π²ΡΠ΅ΠΌ Π΄ΠΎΠ²Π΅Π»ΠΎΡΡ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ Π² Π΄Π΅Π±ΡΠΈ PowerShell, ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠΎΡΡΠ°, Π²ΡΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ 4sysops.com. Π Π½Π΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎ 7 ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ PowerShell. ΠΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ β Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.GET-HELP
Π‘Π°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ PowerShell β Π²ΡΠ·ΠΎΠ² ΡΠΏΡΠ°Π²ΠΊΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Get-Help ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ PowerShell ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°. ΠΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π±ΡΠ°ΡΡ Get-Help Services, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ:
PS C:\> Get-Help Service
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΡΠ°Π²ΠΊΡ ΠΎ Π½Π΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
PS C:\> Get-Help -Name Get-Service
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ΅ Get-Service (Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π½ΠΈΠΆΠ΅).
GET-CONTENT
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² β Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΡΡΠΈΡΡ PowerShell. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ PowerShell ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ. ΠΠ°ΠΆΠ΅ Π½Π΅ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-Content.
ΠΡΠΈΠΌΠ΅Ρ.
PS C:\> Get-Content C:\scripts\Computers.txt
mytestpc1
techibee.com
dummynotresolvinghost.com
PS C:\>
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ΅? ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Get-Help:
PS C:\> Get-Help Get-Content -Detailed
GET-SERVICE
ΠΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Π΅, ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΡΠ»ΡΠΆΠ± ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΠΆΠ±Π°Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΡΠΈΠΌΠ΅Ρ:
PS C:\> Get-Service wwansvc, spooler
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
Stopped wwansvc WWAN AutoConfig
PS C:\>
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°ΠΏΡΠΎΡΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄Π²ΡΡ ΡΠ»ΡΠΆΠ±Π°Ρ wwansvc ΠΈ spooler
ΠΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ ΡΠ»ΡΠΆΠ±Ρ, Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΡΠ»ΡΠΆΠ±Π° spooler Π·Π°ΠΏΡΡΠ΅Π½Π°, Π° wwansvc ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°
STOP-SERVICE Π START-SERVICE
ΠΠ°ΠΏΡΡΠΊ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»ΡΠΆΠ± β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Windows. Π PowerShell ΠΈΠΌΠ΅ΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ MMC. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ/Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΊΠ°ΠΊ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ , ΡΠ°ΠΊ ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ .
ΠΡΠΈΠΌΠ΅ΡΡ:
ΠΠ°ΠΏΡΡΠΊ/ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ spooler):
PS C:\> Stop-Service -Name Spooler
PS C:\> Start-Service -Name Spooler
ΠΠ°ΠΏΡΡΠΊ/ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (spooler):
PS C:\> $ServiceObj = Get-Service -ComputerName MyPC1 -Name spooler
PS C:\> Stop-Service -InputObj $ServiceObj
PS C:\> Start-Service -InputObj $ServiceObj
GET-PROCESS
ΠΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡ Π² ΠΊΡΡΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ . ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΠΌΡ ΠΈ ID ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²Π΅ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠ°ΠΌΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅ΡΡ:
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ , Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅:
PS C:\> Get-Process
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ
PS C:\> Get-Process | Format-List * -Force
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ
, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅:
PS C:\> Get-Process -ComputerName MYPC1 | Format-List * -Force
MYPC1 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΠΈΠΌΡ ΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ .
STOP-PROCESS
ΠΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠ½ Π±Π΅ΡΠ΅Ρ ΠΈΠΌΡ ΠΈΠ»ΠΈ ID ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ.
ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ID 22608 Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅:
PS C:\> Stop-Process -Id 22608
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Excel Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅:
PS C:\> Stop-Process -name excel
Π‘ΠΎΠ²Π΅Ρ: Π₯ΠΎΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Stop-Process ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -ComputerName, ΠΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΠΎΠ²Π΅Ρ:
PS C:\> $Obj = Get-Process -Name excel -ComputerName MYPC1
PS C:\> Stop-Process -InputObject $Obj
Upd:
Π ΠΏΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Ρ ΠΏΠΎΡΡΠ°Π»Π° 4sysops.com
Top 7 PowerShell commands for beginners
P.S. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ Π½Π° Π₯Π°Π±ΡΠ΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅ Ρ PowerShell
ΠΡΠ΄ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ
ΠΡΠ΄ΠΈΡ Active Directory (Π§Π°ΡΡΡ 1 ΠΈ 2)
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Active Directory
ΠΡΠ΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΡΠ½ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² AD
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PowerShell?
ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ½Π° Π΄Π°Π΅Ρ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅ Π·Π½Π°ΡΡ ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ PowerShell. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PowerShell, ΠΈ ΡΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ PowerShell
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°. ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, PowerShell ΡΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ .NET ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
Π’Π°ΠΊΠΆΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅, ΠΊΠ°ΠΊ PowerShell ISE, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° PowerShell ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΅ΡΠ΅ Π² 2006 Π³ΠΎΠ΄Ρ Π΄Π»Ρ Windows XP, Server 2003 ΠΈ Vista. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° 4.0. ΠΡΠΏΡΡΠ΅Π½Π° Π² 2013 Π³ΠΎΠ΄Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Windows 8.1.
ΠΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ PowerShell?
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π» Π²ΡΡΠ΅, Microsoft ΡΠΎΠ·Π΄Π°Π»Π° ΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅. ΠΠΎΠΏΡΡΡΠΈΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ USB ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΡΠ°ΠΊ Π²ΠΎΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell. ΠΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠΊΠ° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ΅Π½Ρ Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell. Π’Π°ΠΊΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±ΡΡΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄.
Π ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΠΈ, ΡΠΎ PowerShell ΡΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Active Directory. Π’Π°ΠΊΠΆΠ΅, ΡΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ 100 ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠΈΡΡ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ.
ΠΠ°ΠΏΡΡΠΊ PowerShell Π½Π° Windows 7
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ PowerShell Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΠΎΠΈΡΠΊΠ΅, Π³Π΄Π΅ ΠΡΡΠΊ, Π²Π²Π΅ΡΡΠΈ Β«powershellΒ».
ΠΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π°ΠΉΡΠΈ Π² ΠΌΠ΅Π½Ρ ΠΡΡΠΊ, Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈ ΠΏΠ°ΠΏΠΊΠ° Windows PowerShell.
ΠΠ°ΠΏΡΡΠΊ PowerShell Π½Π° Windows 8.1
ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ PowerShell Π² Windows 8.1 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΠΎΠΈΡΠΊΠ΅ Π²Π²Π΅ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«powershellΒ», ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΠΈΡΠΊ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Win+Q.
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΊΡΡΡΠΈΡ β ΡΠ΅ΡΠ΅Π· ΠΎΠΊΠ½ΠΎ Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΒ». ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Win+R, ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ powershell.
ΠΠ°ΠΏΡΡΠΊ PowerShell Π½Π° Windows 10
Π’ΡΡ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ Π² Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ Windows. ΠΠΎΠΈΡΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ powershell. Π ΡΠΏΠΎΡΠΎΠ± Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΒ», ΠΊΠ°ΠΊ Π² Windows 8.1.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΡΡΠΈ
ΠΠ°Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ IT-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈ Π½Π΅ Π·ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ, Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°Ρ.
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π»ΠΈ Π΄Π°Π½Π½Π°Ρ ΡΠ»ΡΠΆΠ±Π° Π½Π° Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΠΉΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΈΠ½ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ PowerShell, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠΎΠ±Π΅ΡΠ΅ΠΌ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π΅Π΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
Π’Π°ΠΊΠΆΠ΅, ΠΎ Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π΅ ΠΌΠ°Π»ΠΎ ΠΊΠ½ΠΈΠ³, Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ΄ Π»ΠΈ ΠΎΠΏΠΈΡΡΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Π°Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»Π° Π΄Π°Π½Π½Π°Ρ ΡΠ΅ΠΌΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π΅ Π½Π°ΡΠ°ΡΡ Π΅Π΅ ΠΈΠ·ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠ°ΠΊ Π² ΡΠΊΡΠΈΠΏΡΠ΅ PowerShell ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π² ΡΠΊΡΠΈΠΏΡΠ΅ PowerShell ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π½ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ PowerShell.
Π’Π°ΠΊ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $PSScriptRoot Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ ΡΠΊΡΠΈΠΏΡ, Π° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $PSCommandPath β ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΡΠΈΠΏΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ:
β³PSScriptRoot is $PSScriptRootβ³
β³PSCommandPath is $PSCommandPathβ³
Β
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $MyInvocation. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ MyCommand, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ:
$MyInvocation.MyCommand | fl *
Β
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $PSScriptRoot, $PSCommandPath ΠΈ $MyInvocation ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΠΎ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, $MyInvocation.MyCommand.Path ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΈ ΠΈΠΌΡ ΡΠΊΡΠΈΠΏΡΠ°, $MyInvocation.MyCommand.Name β ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. ΠΡ Π° ΡΠ΅ΠΊΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$MyInvocation.MyCommand.Path | Split-Path -Parent
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΠΊΡΠΈΠΏΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ:
Full name is $($MyInvocation.MyCommand.Path)
Name is $($MyInvocation.MyCommand.Name)
Current directory is $($MyInvocation.MyCommand.Path | Split-Path -Parent)
Β
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $MyInvocation ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ. ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° ΡΠΊΡΠΈΠΏΡΠ°, ΠΏΠ΅ΡΠ²ΡΠΉ:
$MyInvocation | fl *
.\script2.ps1
ΠΈ Π²ΡΠΎΡΠΎΠΉ:
$MyInvocation | fl *
Π’.Π΅. Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $MyInvocation, Π·Π°ΡΠ΅ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΒ $MyInvocation. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² $MyInvocation Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ScriptName, PSScriptRoot ΠΈ PSCommandPath, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° ΡΠ΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Β
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ about_Automatic_Variables.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Powershell ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠ° Π»ΡΠ±ΠΎΠΉ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π³Π΄Π΅ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΊΠΎΠ΄ Π΄Π²Π°ΠΆΠ΄Ρ ΠΈ Π² ΡΡΠΎΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Powershell. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ. ΠΡΠΎΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ, Ρ ΠΎΡΡ ΠΎΠ½Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΌΡ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΠΎ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ 50 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² Π·Π° 14 ΡΠ°ΡΠΎΠ² ΠΆΡΡΠ½Π°Π»Π° ApplicationΒ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Get-EventLog -LogName Application -Newest 50 | where TimeWritten -ge (Get-Date).AddHours(-14)
ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ, Π½ΠΎ Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΅Π΅ Π½Π°Π΄ΠΎΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ. ΠΠ»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
function Get-DayLog {
Get-EventLog -LogName Application -Newest 50 | where TimeWritten -ge (Get-Date).AddHours(-14)
}
ΠΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΡΠ΅Ρ Π²Π΅ΡΠ΅ΠΉ:
- function — ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΒ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΒ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅;
- ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ — Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΅Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠΌΡ Get-DayLog;
- ΡΠΊΠΎΠ±ΠΊΠΈ — ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ:
Get-DayLog
Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 14 ΡΠ°ΡΠΎΠ² ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π·Π° 50 Π΄Π½Π΅ΠΉ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Β
ΠΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ»Π°Π½Π°, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½ΡΡΠΎ Π² Powershell, ΡΠΎ Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ «Get-DayLog» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ «daylog». Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉΒ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ.Β
Π€ΡΠ½ΠΊΡΠΈΠΈ Π² Powershell Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΡ. ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡΠΎ Π³Π»Π°Π³ΠΎΠ»Ρ ΡΠΈΠΏΠ°:
- Get — ΠΏΠΎΠ»ΡΡΠΈΡΡ;
- Set — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ;
- Install — ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ;
- New — ΡΠΎΠ·Π΄Π°ΡΡ.
ΠΡΠΎΡΠΎΠ΅ ΠΈΠΌΡ — ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ΅ DayLog(Π΄Π½Π΅Π²Π½ΠΎΠΉ Π»ΠΎΠ³). Π£ Microsoft Π΅ΡΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π³Π»Π°Π³ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΈ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ (ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ) Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΎΠΉΡΠΈ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΡ.
Β
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ Π»ΠΎΠ³ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΈ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. Π ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. Π§ΡΠΎ Π±Ρ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ:
function Get-DayLog ($param1,$param2) {
Get-EventLog -LogName Application -Newest $param1 | where TimeWritten -ge (Get-Date).AddHours($param2)
}
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈ ΠΏΠΈΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.Β
Π’Π΅ΠΏΠ΅ΡΡ, Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
Get-DayLog -param1 50 -param2 -14
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ $param1 ΠΈ $param2. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π»ΠΎΠ³ΠΎΠ².
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ 50 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ Π½Π°ΠΌ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·. ΠΡΠ»ΠΈ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ. Π§ΡΠΎ Π±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ» $param1 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 50. ΠΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅:
function Get-DayLog ($param1=50,$param2) {
Get-EventLog -LogName Application -Newest $param1 | where TimeWritten -ge (Get-Date).AddHours($param2)
}
Get-DayLog -param2 -7
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ΅Π³Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ»ΡΡ param2, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ. Π§ΡΠΎ Π±Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
function Get-DayLog ($param2,$param1=50) {
Get-EventLog -LogName Application -Newest $param1 | where TimeWritten -ge (Get-Date).AddHours($param2)
}
Get-DayLog -7 1
Get-DayLog -7
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠ»ΡΡΠΈ param1 ΠΈ param2 Π²Π°ΠΆΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $result ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Get-DayLog, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
$result = Get-DayLog -7 1
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΡΠ΅ΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
function Get-DayLog ($param2,$param1=50) {
$events = Get-EventLog -LogName Application -Newest $param1 | where TimeWritten -ge (Get-Date).AddHours($param2)
}
$result = Get-DayLog -7
$result
$events
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $result, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° Ρ ΡΠ°Π½ΠΈΡ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $events. ΠΡΠ·ΡΠ²Π°Ρ $events ΠΌΡ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ «ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ».
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠ°ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π΅Π΅ ΡΠ°ΡΡΠΈ. ΠΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΡΠΎ ΠΆΠ΅. ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² Π½Π΅ΠΉ ΠΆΠ΅. ΠΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ return:
function Get-DayLog ($param2,$param1=50) {
$events = Get-EventLog -LogName Application -Newest $param1 | where TimeWritten -ge (Get-Date).AddHours($param2)
return $events
}
$result = Get-DayLog -7
$result
Π― Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· return, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΠΏΠ° Write-OutputΒ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ return ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ Π΅Π³ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΈ Π½Π°Π»ΠΎΠ³:
function Get-Salary ($Zarplata) {
$nalog = $Zarplata * 0.13
$zarplata_bez_nds = $Zarplata - $nalog
return $nalog,$zarplata_bez_nds
}
Get-Salary -Zarplata 100000
Π― Π²Π΅ΡΠ½ΡΠ» ΠΎΠ±Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² ΠΈΡ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΡΡΠΈΠ²Ρ Π² PowershellΒ ΡΡΠΎ Π½Π°Π±ΠΎΡ Π½Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΒ ΠΎ Π½ΠΈΡ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π½Π°Π΄ΠΏΠΈΡΡ ΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ΅,Β ΠΈ Π½Π°Π»ΠΎΠ³Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ:
$result = Get-Salary -Zarplata 100000
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
$result.GetType()
Write-Host "ΡΡΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ°" $result[1]
Write-Host "ΡΡΠΎ Π½Π°Π»ΠΎΠ³" $result[0]
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅:
function Get-Salary ($Zarplata) {
$nalog = $Zarplata * 0.13
$zarplata_bez_nds = $Zarplata - $nalog
return @{"ΠΠ°Π»ΠΎΠ³"=$nalog;"ΠΠ°ΡΠΏΠ»Π°ΡΠ°"=$zarplata_bez_nds;}
}
Get-Salary -Zarplata 100000
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π² Powershell Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ . ΠΠ°Π»Π΅Π΅ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ Π½ΠΈΠΌΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ.
ΠΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ:
$Zarplata = 100000
function Get-Salary {
$nalog = $Zarplata * $nalog
$zarplata_bez_nds = $Zarplata - $nalog
return @{"ΠΠ°Π»ΠΎΠ³"=$nalog;"ΠΠ°ΡΠΏΠ»Π°ΡΠ°"=$zarplata_bez_nds;}
}
$nalog = 0.20
Get-Salary
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°Π² Π΅ΠΉ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
$Zarplata = 100000
function Get-Salary {
$Zarplata = 200000
$nalog = $Zarplata * $nalog
$zarplata_bez_nds = $Zarplata - $nalog
return @{"ΠΠ°Π»ΠΎΠ³"=$nalog;"ΠΠ°ΡΠΏΠ»Π°ΡΠ°"=$zarplata_bez_nds;}
}
$nalog = 0.20
Get-Salary
$Zarplata
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π½Π΅ Π½Π΅Π΅ ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎ Π±Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²Π½Π΅ Π½Π΅Π΅.
Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ. ΠΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΎΠΉ $global:
$Zarplata = 100000
function Get-Salary {
#ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
$global:Zarplata = 200000
$nalog = $Zarplata * $nalog
$zarplata_bez_nds = $Zarplata - $nalog
return @{"ΠΠ°Π»ΠΎΠ³"=$nalog;"ΠΠ°ΡΠΏΠ»Π°ΡΠ°"=$zarplata_bez_nds;}
}
$nalog = 0.20
Get-Salary
$Zarplata
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $zarplata ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. ΠΠ°Ρ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΈ ΠΎΠ± ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Β
Π‘ΡΡΠΎΠ³ΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
Powershell Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ»ΠΎ 3, Π° Π½Π΅ «111»:
3 * "1"
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡ ΡΠΈΠΏΡ:
function Get-Size ([int]$Num){
$size = 18 * $Num
return $size
}
Get-Size 5
Get-Size "str"
Π’ΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΌΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ·Π±Π΅ΠΆΠ°Π² Π½Π΅Π²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈ ΡΠ°ΠΊΡΡ ΡΡΡΠΎΠΊΡ «1», ΡΠΎ Ρ Π½Π°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΈΡΠ»ΠΎ.
Π’Π°ΠΊΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² PowershellΒ Β Π²ΡΠ΅Π³ΠΎ 13:
- [string] — ΡΡΡΠΎΠΊΠ°;
- [char] — 16-Π±ΠΈΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Unicode;
- [byte] — 8 Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»;
- [int] — ΡΠ΅Π»ΠΎΠ΅ 32 Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ;
- [long] — ΡΠ΅Π»ΠΎΠ΅ 64 Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ;
- [bool] — Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True/False;
- [decimal] — 128 Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ;
- [single] — 32 Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ;
- [double] — 64 Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ;
- [DateTime] — ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ;
- [xml] — ΠΎΠ±ΡΠ΅ΠΊΡ xml;
- [array] — ΠΌΠ°ΡΡΠΈΠ²;
- [hashtable] — Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π°Π»Π΅Π΅.
$args
Π ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π±Π΅Π· ΠΈΠΌΠ΅Π½:
function Get-Args {
Write-Host "ΠΡΠΈΠΌΠ΅Ρ Ρ arg: " + $args[0] -BackgroundColor Red -ForegroundColor Black
Write-Host "ΠΡΠΈΠΌΠ΅Ρ Ρ arg: " + $args[1] -BackgroundColor Black -ForegroundColor Red
}
Get-Args "ΠΠ΅ΡΠ²ΡΠΉ" "ΠΡΠΎΡΠΎΠΉ"
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ $args ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ. Π― Π½Π΅ ΡΡΠ°Π²Π»Ρ Π·Π°ΠΏΡΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π±Ρ ΠΌΠ°ΡΡΠΈΠ² Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Mandatory
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΠ½ΡΡΡ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°:
function Get-ItemCreationTime ($item){
Get-Item -Path $item | select LastWriteTime
}
Get-ItemCreationTime "C:\Windows\explorer.exe"
Get-ItemCreationTime
ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅Π» ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π·Π½Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $item ΡΠ°Π²Π½Π° $null (Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ/Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌΡΒ Π·Π½Π°ΡΠ΅Π½ΠΈΡ). ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , Ρ Π½Π°Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π±Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π΅ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Get-ItemCreationTime, Π° Π½Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Get-Item.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄ΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π§ΡΠΎ Π±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ:
function Get-ItemCreationTime ([parameter(Mandatory=$true)]$item){
Get-Item -Path $item | select LastWriteTime
}
Get-ItemCreationTime "C:\Windows\explorer.exe"
Get-ItemCreationTime
ΠΡΡΠΈΠ±ΡΡ Mandatory ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ Π΅ΡΠ΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Param()
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Param(). ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ ΡΠ°ΠΊ:
function Get-ItemCreationTime {
param (
[parameter(Mandatory=$true)]$item
)
Get-Item -Path $item | select LastWriteTime
}
Get-ItemCreationTime "C:\Windows\explorer.exe"
Get-ItemCreationTime
Microsoft Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π’Π°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΡΠΈΠΏΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ Param:
function Get-PlusPlus {
param (
[parameter(Mandatory=$true, Position=0)]
[int]
$item1,
[parameter(Position=1)]
[int]
$item2,
[parameter(Position=2)]
[string]
$item3
)
$summ = $item1 + $item2
Write-Output $item3 $summ
}
Get-PlusPlus 2 5 "Summ"
Position Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ param() Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ»ΡΡΠΈ ΡΠΈΠΏΠ° -Confirm ΠΈ -Verbose.Β
CmdletBinding()
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ². Microsoft ΠΏΠΈΡΠ΅Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CmdletBinding ΠΈΠ»ΠΈ Parameter ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Powershell, Π½ΠΎ ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΎΠΏΡΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±Π° Π°ΡΡΠΈΠ±ΡΡΠ°.
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊ Ρ 1 ΠΏΠΎ 13 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ValidateLength(1,13). Position=1 Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎΠ± ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
function Get-LenStr {
[CmdletBinding()]
param (
[parameter(Mandatory=$true,
Position=1
)]
[ValidateLength(1,13)]
[string]
$len1,
[parameter(Mandatory=$true,
Position=0
)]
[string]
$len2
)
Write-Host $len2 $len1
}
Get-LenStr "ΠΡΠΎ ΡΡΡΠΎΠΊΠ° 1" "ΠΡΠΎ ΡΡΡΠΎΠΊΠ° 2"
Π’Π°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±Π»ΠΎΠΊ parameter:
- HelpMessage = «Π’Π΅ΠΊΡΡ»Β — ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ ΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· Get-Help;
- ParameterSetName=»Computer» — ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ;
ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΠΈΠΏΠ° [ValidateLength]:
- [Alias(‘t’)] — ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π°Π»ΠΈΠ°Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² Π²ΠΈΠ΄Π΅ Π±ΡΠΊΠ²Ρ t;
- [PSDefaultValue(Test=’Test’)] — ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Test;
- [string[]] — ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ
- [AllowNull()] — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Π±ΡΡΡ $null
- [AllowEmptyString()] — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Π±ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ
- [AllowEmptyCollection()] — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ ΠΏΡΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ
- [ValidateCount(1,5)] — ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
- [ValidatePattern(«[0-9]»)] — ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π±Π»ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Β ΡΠ°ΠΉΡΠ΅ Microsoft.
Β
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΡ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Powershell, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»ΡΡ ComputerName, ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠΎ Π΅ΡΡΡ Π½Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. Π― ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Ρ ΡΡΠΎΡ ΡΠΈΠΏ ΡΡΡΠΎΠ³ΠΈΠΌ, Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, Ρ ΠΎΡΡ ΠΈ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
function Get-ServiceStopped ([array]$Computers){
$services = Get-Service -ComputerName $Computers | where Status -eq Stopped
return $services
}
Get-ServiceStopped '127.0.0.1','localhost'
ΠΠ°ΡΡΠΈΠ²Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ.
function Get-ServiceStopped ([array]$Computers){
$services = Get-Service -ComputerName $Computers[0,-2] | where Status -eq $Computers[-1]
return $services
}
Get-ServiceStopped '127.0.0.1','localhost','Stopped'
Π₯ΡΡ ΡΠ°Π±Π»ΠΈΡΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΒ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ, Π° ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ². ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½:
function Get-ServiceStopped ([hashtable]$Params){
$services = Get-Service @Params | where Status -eq Stopped
$services = Start-Service $services
return $services
}
Get-ServiceStopped @{Name='WinRM';ComputerName=@('127.0.0.1','localhost')}
ΠΠ½Π°ΠΊ @ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΈΠΌΠ΅Π½Π° Β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ.
Β
ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. ΠΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
IF
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΡΠ°Π·Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ° ΠΌΠ΅Π½ΡΡΠ΅ 76 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ, Π² ΡΠ»ΡΡΠ°Π΅Β Π΅ΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π²Π΅ΡΠ½Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
function Get-SiteResponse {
# ΠΠ°ΡΠ°Π»ΠΎ ΠΎΡΡΡΠ΅ΡΠ°
$start_time = Get-Date
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
$request = Invoke-WebRequest -Uri "https://fixmypc.ru"
# Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
$end_time = Get-Date
# ΠΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
$result = $end_time - $start_time
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
if ($result.Milliseconds -lt 76) {
return "Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ° Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ " + $result.Milliseconds}
else{
return "Π‘Π°ΠΉΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π΄ΠΎΠ»Π³ΠΎ " + $result.Milliseconds }
}
Get-SiteResponse
Switch
ΠΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΎ Powershell SwitchΒ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ . ΠΡΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎ, ΡΠΎ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ ΡΠΎ Switch, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
function Get-SiteResponse {
# ΠΠ°ΡΠ°Π»ΠΎ ΠΎΡΡΡΠ΅ΡΠ°
$start_time = Get-Date
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
$request = Invoke-WebRequest -Uri "https://fixmypc.ru"
# Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
$end_time = Get-Date
# ΠΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
$result = $end_time - $start_time
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
switch($result.Milliseconds) {
{$PSItem -le 76} {
return "Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ° Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ " + $result.Milliseconds}
default {
return "Π‘Π°ΠΉΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π΄ΠΎΠ»Π³ΠΎ " + $result.Milliseconds }
}
}
Get-SiteResponse
ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Switch ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Switch. Π ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π° ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ°Π· ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Switch, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ return Π²Π½ΡΡΡΠΈ Π½Π΅Π΅:
function Install-SQLUpdates {
# Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ
return "Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° SQL ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ"
}
function Install-ADUpdates {
# Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ
return "Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ AD ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ"
}
function Install-FileServerUpdates {
# Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ
return "Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ"
}
function Make-Switch ($computer) {
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°
$result = switch($computer){
{$computer -like "SQL*"} {Install-SqlUpdates}
{$computer -like "AD*"} {Install-ADUpdates}
{$computer -like "FileServer*"} {Install-FileServerUpdates}
default {"Π’Π°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π½Π΅Ρ"}
}
return $result
}
Make-Switch "AD1"
Π‘ΠΎ switch ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π±ΡΠ»Π΅Π²ΡΒ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ»ΡΡ -On ΡΠ΅ΡΠ²ΠΈΡ Π²ΠΊΠ»ΡΡΠΈΡΡΡ, Π° Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ Π²ΡΠΊΠ»ΡΡΠΈΡΡΡ:
function Switch-ServiceTest ([switch]$on) {
if ($on) {Write-Output "Π‘Π΅ΡΠ²ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½"}
else {"Π‘Π΅ΡΠ²ΠΈΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½"}
}
Switch-ServiceTest -On
Switch-ServiceTest
Β
ΠΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Powershell, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Get-Process -Name *TestProc* | Stop-Process
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉΒ Π²ΡΡΠ΅, ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
function Get-SomeNum {
# ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΡΠ»Π°
$num = Get-Random -Minimum 5 -Maximum 10
return $num
}
function Plus-SomeNum ($num) {
Write-Host "ΠΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° " $num
$num += $num
return $num
}
Get-SomeNum
Plus-SomeNum 5
Get-SomeNum | Plus-SomeNum
ΠΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ:
Get-Help Stop-Process -Parameter Name
Π’Π°ΠΊΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π²ΡΠ΅Π³ΠΎ Π΄Π²Π°:
- ValueFromPipelineByPropertyName — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ;
- ValueFromPipeline — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΒ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ .
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ,Β Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Process. ΠΠ°Ρ ΡΠΊΡΠΈΠΏΡ Π² ΠΈΡΠΎΠ³Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
function Get-SomeNum {
$num = Get-Random -Minimum 5 -Maximum 10
return $num
}
function Plus-SomeNum {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeline=$True)]
[int]
$num
)
process {
Write-Host "ΠΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° " $num
$num += $num
return $num
}
}
1..5 | Plus-SomeNum
Get-SomeNum | Plus-SomeNum
[cmdletbinding()] — Π°ΡΡΠΈΠ±ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π»ΠΈ Π±Π»ΠΎΠΊ Process ΡΡΠ½ΠΊΡΠΈΡ Π±Ρ Π²Π΅ΡΠ½ΡΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° 1..5:
ΠΡΠ»ΠΈ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ,Β ΡΠΎ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΒ ValueFromPipelineByPropertyName. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΈΡΠΊΠ»ΡΡΠΈΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»
function Get-SomeNum {
$num = Get-Random -Minimum 5 -Maximum 10
$object = [pscustomobject]@{num=$num}
return $object
}
function Plus-SomeNum {
[cmdletbinding()]
Param (
[parameter(ValueFromPipelineByPropertyName=$True)]
[int]
$num
)
process {
Write-Host "ΠΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° " $num
$num += $num
return $num
}
}
Get-SomeNum | Plus-SomeNum
[pscustomobject]@{num=5} | Plus-SomeNum
[pscustomobject]@{bad=5} | Plus-SomeNum
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΎΡΡΒ ValueFromPipelineByPropertyName ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ «bad» ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ:
- ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π²Π²ΠΎΠ΄Π° ΠΊ Π»ΡΠ±ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°
- The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take pipeline input.
ΠΡΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· pscustomobject.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π΄Π²Π° Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[parameter(ValueFromPipelineByPropertyName,ValueFromPipeline)]
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π»ΠΈΠ±ΠΎ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠΡΠΎ Π½Π΅ ΡΠΏΠ°ΡΠ΅Ρ Π²Π°Ρ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ:
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ, Π³Π΄Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Get-SomeNum Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ²ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
function Get-SomeNum {
$number1 = Get-Random -Minimum 5 -Maximum 10
$number2 = Get-Random -Minimum 1 -Maximum 5
$object = [pscustomobject]@{num1=$number1;num2=$number2}
return $object
}
function Plus-SomeNum {
[cmdletbinding()]
Param (
[parameter(ValueFromPipelineByPropertyName=$true,
ValueFromPipeline=$true,
Mandatory=$true)]
[int]
$num1,
[parameter(ValueFromPipelineByPropertyName=$true,
ValueFromPipeline=$true,
Mandatory=$true)]
[int]
$num2
)
begin {$num1 += $num1
$num2 = $num2 * $num2}
process {
return @{"Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ"=$num1; "Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ"=$num2}
}
}
Get-SomeNum | Plus-SomeNum
Β
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ. Π§ΡΠΎ Π±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ. Π― Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΡΡΠΎΡ Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
function Get-SomeNum {
<#
.SYNOPSIS
(ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅) ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
.DESCRIPTION
(ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅) ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΎΡ 1 Π΄ΠΎ 3
.EXAMPLE
(ΠΏΡΠΈΠΌΠ΅Ρ) Get-Random
.EXAMPLE
(Π²ΡΠΎΡΠΎΠΉ)
.PARAMETER num
(ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°) ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½ΠΈ Π½Π° ΡΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ
.PARAMETER num2
(ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ)
#>
[CmdletBinding()]
param (
[int]
$num
)
$num = Get-Random -min 1 -Max 3
return $num
}
Get-SomeNum
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ΄Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Examples, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
Β
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΅Π³ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΠΌΠΏΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ²
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ Π΅Π³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠΎ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ «.ps1». ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΊ:
Import-Module C:\funct.ps1 -Force
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΈΠ½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ (ΡΠ΅ΡΡΠΈΠΈ).
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , Π½ΠΎ Ρ ΡΡΠΈΡΠ°Ρ ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Powershell:
$env:PSModulePath
ΠΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΡΠ΅ΠΉ, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
C:\Users\%username%\Documents\WindowsPowerShell\Modules
Π ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Modules Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π€Π°ΠΉΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅Β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ «.psm1» ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ.
Π ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
C:\Users\%username%\Documents\WindowsPowerShell\Modules\Test\Test.psm1
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ ΠΎΠΊΠ½Π° Powershell ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π·Π°Π½ΠΎΠ²ΠΎ. ΠΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠΎ ΠΎΠ½ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Get-Module -ListAvailable -Name "*Π§Π°ΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΏΠΊΠΈ*"
Β
…Π’Π΅Π³ΠΈ: #powershell
Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ. ΠΡΡΡ Windows Management Instrumentation (WMI), ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² VBScript. ΠΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠΈΠΏΠ° PSExec ΠΎΡ Β Sysinternals. ΠΠ°ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ PowerShell ΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ComputerName Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ .
Π ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎ, Π½ΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Β Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ βΒ ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΠ°ΡΡΡΡ. ΠΠΎ Π²ΡΠΎΡΡΡ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎ ΡΠ°Π·Π½ΠΎΠΌΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΡ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΡΠΎΠ² Π½Π° Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ΅, ΡΡΠΎΒ Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎΒ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
PowerShell Remoting ΡΠ΅ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΒ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ½Β ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Microsoft ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Β Web Services for Management (WS-Management), Π° Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»ΡΠΆΠ±ΡΒ Windows Remote Management (WinRM). Π‘Π²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ HTTPΒ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ HTTPS.Β ΠΠ΅ΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ ΡΠΈΡΡΡΠ΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ SSL).Β ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡΒ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ NTLM ΠΈ Kerberos.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠΈΠ»ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, PS Remoting ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ PS RemotingΒ Π½ΡΠΆΠ΅Π½ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΠΎΡΡ Π½Π° Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ΅.
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell Remoting.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Β«ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡΒ»
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ ΠΈ Π² Π½Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ SRV4 ΠΈ ΡΠ΅ΡΡΠ°ΡΡΡΠ΅ΠΌ Π½Π° Π½Π΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ°ΡΠΈ:
Enter-PSSession -ComputerName SRV4
Restart-Service -Name spooler
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ:
Get-ServiceΒ -Name spooler
Exit-PSSession
Β
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π½Π°Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠΎ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠΌ Invoke-Command. ΠΠΎΡ ΡΠ°ΠΊ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
Invoke-Command -ScriptBlock {Restart-Service spooler} -ComputerName SRV4
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ Π½Π° SRV4, Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ -ScriptBlock, ΠΈ Π·Π°ΠΊΡΠΎΠ΅Ρ ΡΠ΅ΡΡΠΈΡ. Π ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -AsJob.
Β
CΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅Β Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ PowerShell Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠΌ Receive-Job.
Β
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅Β ΠΏΠ°ΡΡ-ΡΡΠΎΠΉΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π° ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΡΠΊΡΠΈΠΏΡ, ΡΒ Invoke-Command Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ βFilePath, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ βScriptBlock Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠΎΠ·Π΄Π°Π» ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΠ»ΡΠΆΠ± ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» Π΅Π³ΠΎ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ SRV4:
Invoke-Command -FilePath .\script.ps1 -ComputerName SRV4
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Β«ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ»
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ . ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Invoke-Command. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ:
Invoke-Command -ScriptBlock {Restart-Service spooler} -ComputerName SRV4,SRV5
ΠΠΎΠΌΠ΅ΡΡΠΈΡΡΒ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ:
$servers = @(β³SRV1β³,β³SRV2β³,β³SRV3β³)
Invoke-Command -ScriptBlock {Restart-Service spooler} -ComputerName $servers
ΠΠ»ΠΈ Π²Π·ΡΡΡ ΠΈΠ·Β ΡΠ°ΠΉΠ»Π°:
Invoke-Command -ScriptBlock {Restart-Service spooler} -ComputerName`
(Get-Content .\servers.txt)
Β
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:Β Ρ Invoke-Command Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ThrottleLimit,Β ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΒ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°Π²Π΅Π½ 32.Β ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½ΠΎ ΡΡΡΠΈΡΠ΅, ΡΡΠΎΒ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Β ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π°Β ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈ ΠΏΠ°ΠΌΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΒ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ.
Π‘Π΅ΡΡΠΈΠΈ
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Invoke-Command ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ΅ΡΡΠΈΡ, Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅Β ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ ΠΎΠ΄Π½Ρ ΡΠ΅ΡΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΒ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ SRV4Β Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ SRV4 ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $session, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π½Π°ΡΡ Π·Π°Π΄Π°ΡΡ (ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π΄Π°Π»ΡΠ½ΡΠΉ spooler):
$session = New-PSSession -ComputerName SRV4 -Name SRV4
Invoke-Command -ScriptBlock {Get-Service spooler | Stop-Service}`
-Session $session
Π‘Π΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½Π° Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ° ΠΌΡΒ Π½Π΅Β Π²ΡΠΉΠ΄Π΅ΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΒ PowerShell. Π’Π°ΠΊΠΆΠ΅Β ΡΠ΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡΡΡΡΒ β Disconnect-PSSession ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡΒ β Remove-PSSession.
Β
Π ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΡ ΡΡ Π² PowerShell 3.0. ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΠ΅ΡΡΠΈΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅ΡΡΠΈΡ ΡΠ΄Π°Π»ΡΠ»Π°ΡΡ, ΡΠΎΒ Π² PS 3.0 ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈΒ ΡΠ΅ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ disconnected. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π°Π½Ρ Π½Π° ΡΡΠΎΠΌ ΠΆΠ΅ (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ) ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈΒ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΡΠΌΠΎ Π² ΡΡΠΎΠΉ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠ°ΡΡΡΠ΅ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ SRV4 ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ°ΡΠΈ,Β ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π·:
Invoke-Command -ScriptBlock {Start-Service spooler}`
-ComputerName SRV4 -Disconnected
Β
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΠΉ β Π·Π°ΠΏΡΡΠΊ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ Π·Π°Π΄Π°Ρ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡ c ΠΈΠΌΠ΅Π½Π΅ΠΌ LongJob Π½Π° SRV4 ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ Π² Π½Π΅ΠΉ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ Π² 1 ΠΌΠΈΠ½ΡΡΡ:
$session = New-PSSession -ComputerName SRV4 -Name LongJob
Invoke-Command -Session $session -ScriptBlock`
{Get-Service | foreach {$_;sleep 60} } -AsJob
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° ΠΈ Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡ:
Receive-Job -Name Job2
Disconnect-PSSession $session
Β
ΠΠ΄Π΅ΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ΅ΡΡΠΈΠΈ LongJob ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Receive-PSSessionΒ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ:
Connect-PSSession -Name LongJob -ComputerName SRV4
Receive-PSSession -Name LongJob
Β
ΠΠ»ΠΈ Π΅ΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ, Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Connect-PSSession:
$session = Get-PSSession -Name LongJob -ComputerName SRV4Β Β
$job = Receive-PSSession $session -OutTarget Job
Receive-Job $job
Β
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΡΠ°Π»ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Receive-Job Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -Keep.
ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Implicit remoting). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ,Β Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°Β Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ°Π½ΡΠΈΡ, Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π° SRV4 ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π² ΡΡΡ ΡΠ΅ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Active Directory:
$session = New-PSSession -ComputerName SRV4
Invoke-Command {Import-Module ActiveDirectory} -Session $session
ΠΠ°ΡΠ΅ΠΌ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Active Directory ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ RemoteAD:
Export-PSSession -Session $session -CommandName *-AD* -OutputModule RemoteAD`
-AllowClobber
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ WindowsPowerShell\Modules\RemoteADΒ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ PowerShell. ΠΠ°Π³ΡΡΠΆΠ΅Π½Ρ Π±ΡΠ΄ΡΡΒ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ *-AD*. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΌΠΈΒ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»ΡΠΆΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΡΠ»ΡΠΊΠΎΠΌ, Π°Β ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Π°.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ, ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
Β
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΒ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅Π°Π½Ρ (Π² PS 3.0 ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡ ΡΠ°Π³ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ):
Import-Module RemoteAD
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β ΠΌΡ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π°, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠΎΡ ΡΠ΅Π°Π½Ρ β ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠ²Π½ΠΎ, ΠΏΠΎΠΏΡΡΠ°Π²ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΒ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ:
New-ADUser -Name BillGates -Company Microsoft
Get-ADUser BillGates
ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π°Β Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² XML ΠΈΒ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎ ΡΠ΅ΡΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π³Π΄Π΅Β Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ PowerShell.
Π£Π΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅Π°Π½Ρ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π·Π°ΠΊΡΠΎΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ RemoteAD.
Β
ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅Β ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΒ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°ΠΌΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈΒ Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.Β ΠΡΠΈ ΡΡΠΎΠΌΒ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ, ΡΡΠΎΒ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎΒ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½ΡΒ PowerShell Remoting ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Windows. ΠΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΡ ΠΎ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΡΠΌΠ΅ΡΡ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΡΠ±ΠΎΠΌΡ Windows-Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ.