ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ powershell: PowerShell — ΠΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | powershell Tutorial
ΠΠ°ΠΊ Π²Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π² PowerShell?
ΠΠ°ΠΊ Π²Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π² PowerShell (1.0 ΠΈΠ»ΠΈ 2.0)?
835
Π°Π²ΡΠΎΡ: Peter Mortensen
7 ΠΎΡΠ²Π΅ΡΠΎΠ²
Π² PowerShell V1 Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ #
ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ.
# This is a comment in Powershell
Π PowerShell V2 <# #>
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π±Π»ΠΎΠΊΠ° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΏΡΠ°Π²ΠΊΠΈ.
#REQUIRES -Version 2.0
<#
.SYNOPSIS
A brief description of the function or script. This keyword can be used
only once in each topic.
.DESCRIPTION
A detailed description of the function or script. This keyword can be
used only once in each topic.
.NOTES
File Name : xxxx.ps1
Author : J.P. Blanc ([email protected])
Prerequisite : PowerShell V2 over Vista and upper.
Copyright 2011 - Jean Paul Blanc/Silogix
.LINK
Script posted over:
http://silogix.fr
.EXAMPLE
Example 1
.EXAMPLE
Example 2
#>
Function blabla
{}
Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ .SYNOPSIS
ΠΈ .*
ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ about_comment_based_help.
ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Get-Help
ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Function
ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠΈ {}
Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
94
Π°Π²ΡΠΎΡ: adamleerich
ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Ρ
ΡΡ-ΡΠΈΠΌΠ²ΠΎΠ», Π²ΡΠ΅ ΡΠΏΡΠ°Π²Π° ΠΎΡ #
Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½:
# Comment Here
Π² PowerShell 2.0 ΠΈ Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ²:
<#
Multi
Line
#>
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Get-Content -Path <# configuration file #> C:\config.ini
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ PowerShell ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΡΠ°Π²ΠΊΠΎΠΉ Space + TAB
ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π·Π΄Π΅ΡΡ
# Single line comment in Powershell
<#
--------------------------------------
Multi-line comment in PowerShell V2+
--------------------------------------
#>
Π² PowerShell ISE Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ Ctrl+J ΠΎΡΠΊΡΡΡΡ ΠΠ°ΡΠ°ΡΡ ΠΡΡΠ΅ΠΊΠ°ΡΡ menΓΌ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±Π»ΠΎΠΊ:
8
Π°Π²ΡΠΎΡ: Martin Brandl
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ:
(Some basic code) # Use "#" after a line and use:
<#
for more lines
...
...
...
..
.
#>
3
Π°Π²ΡΠΎΡ: Mister X CT
PowerShell. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ / Π₯Π°Π±Ρ
ΠΡΠΈΠ²Π΅Ρ! ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΡΠ°ΡΠΊΠ°ΡΡ ΠΊΡΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. ΠΠ° Π₯Π°Π±ΡΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΎΡ Mroff, Π½ΠΎ Π±ΡΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠΉΡΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π»ΡΡΠ΅, Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΠΏΠΎΠΈΡΠΊ Π²ΡΠ΄Π°Π²Π°Π» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡ ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ. Π£ΠΏΠΎΡΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΎ, ΠΈ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ, Π³Π΄Π΅ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ Π²Π½ΠΎΡΠΈΡΡ Π² ΡΠ²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅Π³.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² PowerShell. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
Function TestPath ([String]$Path)
{
Return(Test-Path $Path)
}
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π·Π°Π΄Π°Π»ΠΈ ΠΈΠΌΡ TestPath, Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΡΠΊΠΎΡΠΌΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ $Path, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π΅ΡΠ½ΡΠ»ΠΈ Return() Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΠΊΠ°ΠΊ Π±ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ? ΠΡΡ ΠΎΠ΄ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ β ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π°Π²Π°ΡΡ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ΄Ρ ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ:
Function TestPath
{
PARAM (
[PARAMETER(Mandatory=$True,Position=0,HelpMessage = "ΠΡΡΡ Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°",ParameterSetName='Path')]$Path
)
Return(Test-Path $Path)
}
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ, Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΆΠΈΠ·Π½Ρ:
Mandatory β ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ True ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ False Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ;
HelpMessage β Π‘ΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ;
ParameterSetName β ΠΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ;
Position β ΠΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ;
ΠΡΠΎΠ΄Π΅ Π±Ρ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ Π΅Π³ΠΎ ΡΠ·Π½Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
((Get-Command TestPath).ParameterSets.Parameters | Where-Object Name -eq Path).HelpMessage
PowerShell ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π°ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ: ΠΡΡΡ Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°.
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ PowerShell, ΡΠΎ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Get-Help ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΠΈΠΌ Π·Π°Π΄Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Get-Help Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅:
Function WriteToLog {
<#
.SYNOPSIS
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ Π² ΡΠ°ΠΉΠ» Π»ΠΎΠ³Π°.
.DESCRIPTION
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² Π»ΠΎΠ³ ΡΠ°ΠΉΠ» ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ PowerShell
.EXAMPLE
#WriteToLog -Str "ΠΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π² ΡΠ°ΠΉΠ» C:\Log\log.txt" -FileName 'C:\Log\log.txt' -Color Red
.EXAMPLE
#WriteToLog -Str "ΠΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (White) ΠΈ Π² ΡΠ°ΠΉΠ» C:\Log\log.txt" -FileName 'C:\Log\log.txt'
.PARAMETER Str
Π‘ΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΡΡΠΈ (ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ)
.PARAMETER FileName
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π»ΠΎΠ³Π° (ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ)
.PARAMETER Color
Π¦Π²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ PowerShell (ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° Π±Π΅Π»ΡΠΉ (White))
#>
param (
[PARAMETER(Mandatory=$True,Position=0)][String]$Str,
[PARAMETER(Mandatory=$True,Position=1)][String]$FileName,
[PARAMETER(Mandatory=$False,Position=2)][String]$Color='White'
)
Write-Host $Str -ForegroundColor $Color
If ((Test-Path $FileName) -eq $True)
{
Add-Content -Path $FileName -Value $Str
}
Else
{
Set-Content -Path $FileName -Value $Str
}
}
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Get-Help ‘WriteToLog’ -ShowWindow Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠΎ ΠΆΠ΅ ΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ:
<##> β Π Π΄Π°Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ PowerShell.
.SYNOPSIS β Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
.DESCRIPTION β Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
.EXAMPLE β Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
.PARAMETR ΠΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° β Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ²ΠΎΠΉ Π±Π»ΠΎΠΊ.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΌ. ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅Π³ #> ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ.
param () β Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $Color ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ’White’.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΡΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ / ΠΠ»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ RUVDS.com / Π₯Π°Π±Ρ
Π’Π΅ΠΊΡΡΠΎΠ²ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠΊΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° PowerShell β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ Π²ΠΈΠ΄Π΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠ΅Π΄Π° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ: ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅, Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±Π°Π·ΠΈΡΡΡΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ .NET. Π ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΈΠΊΠ»Π° ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ.
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅:
ΠΠ±ΡΠ΅ΠΊΡΡ Π² PowerShell
ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ
ForEach-Object, Group-Object ΠΈ Measure-Object
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² .NET ΠΈ COM (New-Object)
ΠΡΠ·ΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
Π’ΠΈΠΏ PSCustomObject
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡΡ Π² PowerShell
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ β ΡΡΠΎ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ (ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ Ρ.Π΄.) ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²). ΠΠ³ΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π² ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ .NET Core ΠΊΠ»Π°ΡΡΠ°Ρ . Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ COM, CIM (WMI) ΠΈ ADSI. Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π² PowerShell ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈΠ»ΠΈ pipeline). ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ β ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅: ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ: ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ° Π±Π°ΠΉΡΠΎΠ² (ΡΠ΅ΠΊΡΡΠ°), Π²ΡΡ Π½ΡΠΆΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ.
ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-Process, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ :
ΠΠ½ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ Π½Π΅ΠΊΠΈΠ΅ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ Π΄Π°ΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ . ΠΠ»Ρ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΏΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΠΈΡΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π² ΡΡΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-Member:
Get-Process | Get-Member
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΈΠΏ ΠΈ ΡΡΡΡΠΊΡΡΡΡ, Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠΏΠ°Π²ΡΠ΅Π³ΠΎ Π½Π° Π²Ρ ΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
Get-Process | Get-Member -MemberType Property
ΠΡΠΈ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²: ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π·Π°Π²ΠΈΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΏΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Responding.
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
PowerShell ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ:
Where-Object { Π±Π»ΠΎΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ }
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΈΡΡΠΈΠ½Π½ΠΎ ($true) ΠΏΠΎΠΏΠ°Π²ΡΠΈΠΉ Π½Π° Π²Ρ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Where-Object ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ Π΄Π°Π»ΡΡΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ $false) ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΠ»ΡΠΆΠ± Windows Server, Ρ.Π΅. ΡΠ°ΠΊΠΈΡ , Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Status ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«StoppedΒ»:
Get-Service | Where-Object {$_.Status -eq "Stopped"}
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠΎΠ½ΡΡΡ ΡΠΈΠΏ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ΡΡΡΠ΄Π½ΠΎ:
Get-Service | Where-Object {$_.Status -eq "Stopped"} | Get-Member
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΡΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. Π ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Sort-Object ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ²ΠΎΠΉΡΡΠ² (ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ), Π° ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠ²ΠΎΠ΄ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ cpu):
Get-Process | Sort-Object βProperty cpu
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -Property ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Sort-Object ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ β ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -Descending:
Get-Process | Sort-Object cpu -Descending
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ
ΠΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Select-Object ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² -First ΠΈΠ»ΠΈ -Last. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Π½Π° ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ 10 ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ , ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ WS):
Get-Process | Sort-Object WS -Descending | Select-Object -First 10
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅ Π½ΠΎΠ²ΡΠ΅:
Get-Process | Select-Object ProcessName, Id -First 1
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠΌ Get-Process. Π£Π±Π΅Π΄ΠΈΠΌΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Get-Member:
Get-Process | Select-Object ProcessName, Id -First 1 | Get-Member
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Select-Object Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (-First 1), Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π°ΠΌΠΈ ΠΏΠΎΠ»Ρ: ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠΌ Get-Process ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Select-Object ΠΎΡΠ½ΠΎΠ²Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ PowerShell:
$obj = Get-Process | Select-Object ProcessName, Id -First 1
$obj.GetType()
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Select-Object ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ β Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°:
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}}
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}} | Get-Member
ForEach-Object, Group-Object ΠΈ Measure-Object
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ ΡΡΠ΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ :
ForEach-Object ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ PowerShell Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅:
ForEach-Object { Π±Π»ΠΎΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ }
Group-Object Π³ΡΡΠΏΠΏΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Group-Object PropertyName
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -NoElement, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π³ΡΡΠΏΠΏΠ°Ρ .
Measure-Object Π°Π³ΡΠ΅Π³ΠΈΡΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅ (Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ ΡΠ°ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Begin, Process ΠΈ End.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² .NET ΠΈ COM (New-Object)
ΠΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ .NET Core ΠΈ COM, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° System.Diagnostics.EventLog ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΆΡΡΠ½Π°Π»Π°ΠΌΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Windows PowerShell. Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° New-Object Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -TypeName:
New-Object -TypeName System.Diagnostics.EventLog
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΆΡΡΠ½Π°Π» ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΡ . Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ·Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° -ArgumentList. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΆΡΡΠ½Π°Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΡΠΎΠΊΡ Β«ApplicationΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $AppLog. Π₯ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ .NET Core ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ System: PowerShell ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠ΅Ρ Π² Π½Π΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Diagnostics.EventLog Π²ΠΌΠ΅ΡΡΠΎ System.Diagnostics.EventLog Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ:
$AppLog | Get-Member -MemberType Method
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Clear() ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°:
$AppLog.Clear()
ΠΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ New-Object ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π‘ΠΠ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ β ΠΎΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ActiveX, ΡΠ°ΠΊΠΈΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Internet Explorer. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π‘ΠΠ-ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -ComObject Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ProgId Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ New-Object Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π°ΡΡ Π°ΠΈΡΠ½ΡΠΌ ΠΈ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, ΡΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ PowerShell ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² .NET ΠΈ COM ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ CIM (WMI) ΠΈ ADSI.
ΠΡΠ·ΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² .NET Core ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ: ΠΊ ΠΈΡ ΡΠΈΡΠ»Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ System.Environment ΠΈ System.Math. ΠΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π‘ΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· Π»ΠΈΡΠ΅ΡΠ°Π», Π·Π°ΠΊΠ»ΡΡΠΈΠ² ΠΈΠΌΡ ΡΠΈΠΏΠ° Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Get-Member, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠΈΠΏ System.RuntimeType Π²ΠΌΠ΅ΡΡΠΎ System.Environment:
[System.Environment] | Get-Member
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Get-Member Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -Static (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°):
[System.Environment] | Get-Member -Static
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΠΈΠ΄ΡΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ΄ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π»ΠΈΡΠ΅ΡΠ°Π»Π°:
[System.Environment]::OSVersion
ΠΠ»ΠΈ
$test=[System.Math]::Sqrt(25)
$test
$test.GetType()
Π’ΠΈΠΏ PSCustomObject
Π‘ΡΠ΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² PowerShell ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ PSCustomObject, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° New-Object ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ, Π½ΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
$object = New-Object βTypeName PSCustomObject -Property @{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'}
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
$object | Get-Member
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ PowerShell 3.0 Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
$object = [PSCustomObject]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
$object.Name
$object.'Name'
$value = 'Name'
$object.$value
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Ρ ΡΡΡΠ°Π±Π»ΠΈΡΡ:
$hash = @{'Name'='Ivan Danko'; 'City'='Moscow'; 'Country'='Russia'}
$hash.GetType()
$object = [pscustomobject]$hash
$object.GetType()
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ [ordered]:
$object = [PSCustomObject][ordered]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°: Π²ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Select-Object. ΠΡΡΠ°Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
$object | Add-Member βMemberType NoteProperty βName Age βValue 33
$object | Get-Member
ΠΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Add-Member ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ $object Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½ΠΎ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ «-MemberType ScriptMethod»:
$ScriptBlock = {
# ΠΊΠΎΠ΄
}
$object | Add-Member -Name "MyMethod" -MemberType ScriptMethod -Value $ScriptBlock
$object | Get-Member
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $ScriptBlock ΡΠΈΠΏΠ° ScriptBlock.
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄:
$object.psobject.properties.remove('Name')
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²
Π PowerShell 5.0 ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Class, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅Π»ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ :
class MyClass
{
# ΡΠ΅Π»ΠΎ ΠΊΠ»Π°ΡΡΠ°
}
ΠΡΠΎ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΠΈΠΏ .NET Core, Π² ΡΠ΅Π»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
}
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ New-Object, Π»ΠΈΠ±ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π» ΡΠΈΠΏΠ° [MyClass] ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ new (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ):
$object = New-Object -TypeName MyClass
ΠΈΠ»ΠΈ
$object = [MyClass]::new()
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
$object | Get-Member
ΠΠ΅ ΡΡΠΎΠΈΡ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΏΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ: Π½Π΅Π»ΡΠ·Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΈΠΌΡ ΡΠΈΠΏΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π» ΡΠΈΠΏΠ° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»Π°ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° (ΠΎΠ±ΡΠ΅ΠΊΡΡ), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
$object.Name = 'Ivan Danko'
$object.City = 'Moscow'
$object.Country = 'Russia'
$object
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π·Π°Π΄Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΡ ΡΠ²ΠΎΠΉΡΡΠ², Π½ΠΎ ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
class Example
{
[string]$Name = 'John Doe'
}
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° function. ΠΠ°ΠΊ ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
#ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°
Smile([bool]$param1)
{
If($param1) {
Write-Host ':)'
}
}
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΌΠ΅Π΅Ρ ΡΠ»ΡΠ±Π°ΡΡΡΡ:
$object = [MyClass]::new()
$object.Smile($true)
ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Ρ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ PowerShell ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ β ΡΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² .NET:
class MyClass2 : MyClass
{
#ΡΠ΅Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π±Π°Π·ΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ MyClass
}
[MyClass2]::new().Smile($true)
ΠΠ°ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² PowerShell ΡΡΡΠ΄Π½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ³Π»ΡΠ±ΠΈΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ : ΠΏΡΡΠ°Ρ ΡΡΠ°ΡΡΡ ΡΠΈΠΊΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ PowerShell ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠΎΡΠ»ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½ΠΈΠΆΠ΅.
Π§Π°ΡΡΡ 1: ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Windows PowerShell
Π§Π°ΡΡΡ 2: Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Windows PowerShell
Π§Π°ΡΡΡ 3: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ²
ΠΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ / ΠΠ»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ RUVDS.com / Π₯Π°Π±Ρ
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API), Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π°. Π PowerShell ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ .NET, COM, WMI (CIM) ΠΈ ADSI Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΌΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Ρ ΡΠΏΠΎΡΠΎΠΌ Π½Π° ΠΊΠ»Π°ΡΡΡ .NET Core, Π° ΡΠ΅ΠΉΡΠ°Ρ Ρ ΠΎΡΠΈΠΌ ΡΠ³Π»ΡΠ±ΠΈΡΡ ΡΠ΅ΠΌΡ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ PowerShell Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅:
Π Π°Π±ΠΎΡΠ° Ρ JSON, XML ΠΈ CSV
Π Π°Π±ΠΎΡΠ° Ρ WMI ΠΈ CIM
Π Π°Π±ΠΎΡΠ° Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ
Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ADSI
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π°
Π Π°Π±ΠΎΡΠ° Ρ JSON, XML ΠΈ CSV
Π ΡΡΠ΅Π½Π°ΡΠΈΡΡ PowerShell Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ JSON, XML ΠΈ CSV. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠ°ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΠ΄ΡΠΈ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ΡΡΠ²Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ: Π² PowerShell Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈΡΠΎΠΌ Π² ΠΎΠ±Π΅ ΡΡΠΎΡΠΎΠ½Ρ.
Π€ΠΎΡΠΌΠ°Ρ JSON ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠΎ ΡΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ JSON Π² ΠΎΠ±ΡΠ΅ΠΊΡ .NET ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ PowerShell Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ΄Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° JSON ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ:
$user = @"
{
"firstName": "Ivan",
"lastName": "Danko",
"address": {
"streetAddress": "Kremlin",
"city": "Moscow"
},
"phoneNumbers": [
"+7 495 1234567",
"+7 499 1234567"
]
}
"@ | ConvertFrom-Json
ΠΠ±ΡΠ°ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$file = Get-ChildItem C:\Windows\System32\notepad.exe
$file.VersionInfo | ConvertTo-Json
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π½Π΅ΡΡΡΠ΄Π½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΈΠΉ RESTful ΡΠ΅ΡΠ²ΠΈΡ. Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°ΠΌΠΈ ConvertFrom-Csv, ConvertTo-Csv ΠΈ ConvertTo-Xml ΡΡΡΠΎΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ ΠΈΠ·ΡΡΠΈΡΡ Π΅Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ XML ΠΈ CSV Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ², Π½ΠΎ Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, XML ΠΈΠ»ΠΈ CSV Π² ΠΎΠ±ΡΠ΅ΠΊΡ .NET Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π°Π»ΠΈΠ΄Π½Ρ.
Π Π°Π±ΠΎΡΠ° Ρ WMI ΠΈ CIM
Windows Management Instrumentation (WMI) β ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π² Microsoft ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ΄ Windows ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° WBEM (Web-Based Enterprise Management). Π Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠΈΡ ΠΈΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ WBEM Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Common Information Model (CIM), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° WMI Π² Windows ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°, Microsoft ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ β ΠΎΠ±ΡΠ΅ΠΊΡΡ CIM. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½ΠΈΠΌΠΈ Π² PowerShell 3.0 ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π΄Π»Ρ WMI. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ WMI, Π΅Π³ΠΎ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ.
Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ CIM (ΠΎΠ½Π° ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² WMI) Π΄Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. ΠΠ»Π°ΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Root, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠΌΠ΅ΡΡΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°: CIMv2, Default, Secutiry ΠΈ WMI. ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° (ΠΎΠ±ΡΠ΅ΠΊΡΠ°) ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΅ΠΌΡ ΡΠ΅ΡΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
[\\ComputerName\NameSpace][:ClassName][.KeyProperty1=Value1][,KeyProperty2=Value2]β¦]
Π³Π΄Π΅
ComputerName β ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°;
NameSpace β ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½;
ClassName β ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°;
KeyProperty1=Value1, KeyProperty2=Value2 β ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ PowerShell ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ WMI Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ. ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠ°Ρ (C++, Visual Basic, Java Script) Π»ΠΈΠ±ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ WMIC (WMI Command Line, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°) Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ. Π§Π΅ΡΠ΅Π· PowerShell ΠΎΠ±ΡΠ΅ΠΊΡΡ WMI Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡΠ΄ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ . ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌΡΡ ΠΊ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ WMI ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Get-WmiObject (ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ gwmi). Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»Π°ΡΡΠΎΠ² CIM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-CimClass.
Get-CimClass
Get-WmiObject -List
ΠΡ Π²ΡΠ²Π΅Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΈ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ:
Get-CimClass -ComputerName IP-Π°Π΄ΡΠ΅Ρ
Get-CimClass -ComputerName ΠΠΌΡ_ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°
ΠΈΠ»ΠΈ
Get-WmiObject -ComputerName IP-Π°Π΄ΡΠ΅Ρ -List
Get-WmiObject -ComputerName ΠΠΌΡ_ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° -List
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Get-CimClass ΠΈ Get-WmiObject ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ Root\CIMV2, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ»Ρ ΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -Namespace:
Get-CimClass -Namespace Root
Get-WmiObject -Namespace Root -List
ΠΠ½Π°Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π½Π΅ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Win32_Service, Ρ.Π΅. Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ»ΡΠΆΠ±Ρ:
Get-WmiObject Win32_Service
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Get-Member. Π ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° WMI ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Invoke-WmiMethod. Π’Π°ΠΊΠΆΠ΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ WMI ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Ρ.Π΄.
Get-WmiObject Win32_Service | Get-Member
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ²) CIM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-CimInstance. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ WMI, ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠ΅ CIM-ΠΎΠ±ΡΠ΅ΠΊΡΡ (resultant object ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ°) Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Invoke-CimMethod. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡ Win32_Service β Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ»ΡΠΆΠ±Ρ) ΠΈ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π΄Π»Ρ ΡΠ»ΡΠΆΠ±Ρ spooler Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅:
Get-CimInstance Win32_service -filter "Name='spooler'"
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
Get-CimInstance Win32_service -filter "Name='spooler'" | Get-Member
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ CIM Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ. ΠΠ½ΠΈ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊΠ°ΡΠ°ΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΈΠΊΠ»Π°, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΡΡ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ Π΄Π»Ρ WMI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² WMI Query Language (WQL), Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠΈΠΉ SQL. WQL-Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΡΡΠ°ΡΡΡΡΡΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ»ΡΠΆΠ± Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
select * from win32_service where startmode="Auto"
ΠΠ· PowerShell ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Get-WmiObject -Query 'select * from win32_service where startmode="Auto"'
Π Π°Π±ΠΎΡΠ° Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Windows Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Object Linking and Embedding ΠΈΠ»ΠΈ OLE). ΠΠΎΠ·ΠΆΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ OLE Automation, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. OLE ΠΈ OLE Automation Π±ΡΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Component Object Model (COM), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π½Π΅ΠΌΡ ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π΄Π΅Π²ΡΠ½ΠΎΡΡΡΡ Π³ΠΎΠ΄ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ OLE ΡΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠΌΠΈΠ½ β ActiveX. ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ .NET ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ActiveX ΡΡΠΈΡΠ°Π»Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ, Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ COM Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Windows β ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Microsoft ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΡΠ΅Π· Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ProgID β ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠΌ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°_ΡΠΈΠΏΠΎΠ².ΠΠ»Π°ΡΡ.ΠΠ΅ΡΡΠΈΡ
ΠΠ΅ΡΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ:
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°_ΡΠΈΠΏΠΎΠ².ΠΠ»Π°ΡΡ
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ProgID: InternetExplorer.Application (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Internet Explorer), Word.Application (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Microsoft Word), WScript.Shell (ΠΊΠ»Π°ΡΡ Shell ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows Script Host ΠΈΠ»ΠΈ WSH).
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° New-Object, Π° ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΡ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ Get-Member:
$myshell = New-Object -ComObject WScript.Shell
$myshell | Get-Member
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ»ΡΠΊ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ CreateShortcut():
$link = $myshell.CreateShortcut("$Home\Desktop\Home.lnk")
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ»ΡΠΊ β ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ COM:
$link | Get-Member
ΠΠ°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ:
$link.TargetPath = $Home
$link.Save()
Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠ»ΡΠΊ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ° Shell.Application. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Windows:
$myshell=New-Object -ComObject Shell.Application
ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ:
$myshell=New-Object -com Shell.Application
$myshell | Get-Member
Π£ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Shell.Application Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΠ½Π°ΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Explore():
$myshell.Explore("c:\")
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Help():
$myshell.Help()
ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ ΠΏΠΎΠΈΡΠΊΠ°: FindFiles(), FindComputer() ΠΈ FindPrinter().
$myshell.FindFiles()
$myshell.FindComputer()
$myshell.FindPrinter()
ΠΡΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° FileRun(), Π° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠΊΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π°ΡΡ/Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ SetTime(). ΠΡΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠΊΠ½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² cpl, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ:
$myshell.MinimizeAll()
$myshell.UndoMinimizeAll()
$myshell.TileHorizontally()
$myshell.TileVertically()
ΠΠ΅ΡΠΎΠ΄ Windows() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΎΡΠΊΡΡΡΡΡ Π² ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ ΠΈΠ»ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Internet Explorer ΠΎΠΊΠΎΠ½. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ:
$myshell.Windows() | Get-Member
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΠ. ΠΠΎΠ³Π΄Π°-ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π² Windows ΡΡΠΈΡΠ°Π»ΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² WSH, ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ: ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ WScript.Network ΠΈ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ Π½Π°ΠΌΠΈ WScript.Shell. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ»ΡΠΊΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅, Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ.
Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ADSI
ΠΠΎΠ΄ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ . ΠΠΎΠ΄ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠ°ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Ρ ΡΠ°Π½ΡΡΠΈΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠΈ. Π‘Π»ΡΠΆΠ±Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΡΠ΅ΡΠΈ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² β ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΡΡ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. Π Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΠΆΠ± ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ: Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ SAM (Security Account Manager) Π΄Π»Ρ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² Π΄ΠΎΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Active Directory ΠΈ Ρ.Π΄.
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Windows 2000 ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ Microsoft Π²Π½Π΅Π΄ΡΠΈΠ»Π° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ADSI (Active Directory Service Interface) Π΄Π»Ρ Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠ΅Π³ΠΎ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π΄ΠΎΡΡΡΠΏΠ°. Π§ΡΠΎΠ±Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ, ADSI ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ (binding string) ΠΈΠ»ΠΈ ADsPath. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ»ΡΠΆΠ±Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² (ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ADSI), Π° Π²ΡΠΎΡΠ°Ρ β ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ADSI:
LDAP:// ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° LDAP ΡΠ»ΡΠΆΠ±Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π² Ρ.Ρ. Π΄Π»Ρ Active Directory;
WinNT:// ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ².
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ADSI Π² PowerShell Π½Π΅Ρ. ΠΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² [ADSI] ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ivanov ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° test.ru Π½ΡΠΆΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
$user = [ADSI]"LDAP://CN=Ivanov,DC=TEST,DC=RU"
Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΊΡ):
$computer = [ADSI]"WinNT://."
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ivanov:
$user = $computer.Create("user","Ivanov")
$user.Put("Description","Π‘ΠΎΠ·Π΄Π°Π½ ΠΈΠ· PowerShell")
$user.SetInfo()
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌΡΡ ΠΊ Π½Π΅ΠΌΡ:
$user1 = [ADSI]"WinNT://./Ivanov,user"
$user1.Description
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π°
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½. Π Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π°, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°ΠΌΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠΌΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ. Π PowerShell Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠΈΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ Β«ΡΠΊΠ°ΡΠΌΠ»ΠΈΠ²Π°ΡΡΡΡΒ» ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Get-Help:
Format-Table ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎΠ»Π±ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ;
Format-List Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ;
Format-Custom ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ;
Format-Wide ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΠΎΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² Π½Π΅ Π²ΡΠ·Π²Π°Π½, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΏΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ°Π²ΠΈΠ»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XML Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .ps1xml, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ $PSHome. ΠΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
dir $pshome\*format*.ps1xm
Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΡΡΡΠ½ΡΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, Π»ΡΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ° Update-FormatData. ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, PowerShell ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ Π·Π°Π²Π΅ΡΡΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² PowerShell, Π° Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠΈΠΊΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ. Π Π½Π΅ΠΉ Π½Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π²Π΅ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ CIM ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΡ Ρ WMI. ΠΡΠΎΡΠ»ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½ΠΈΠΆΠ΅.
Π§Π°ΡΡΡ 1: ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Windows PowerShell
Π§Π°ΡΡΡ 2: ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Windows PowerShell
Π§Π°ΡΡΡ 3: ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ²
Π§Π°ΡΡΡ 4: Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ PowerShell ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ | Windows IT Pro/RE
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ PowerShell, β Π΅Π΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ β ΠΊΠΎΠΌΠ°Π½Π΄Π° Get-Help. ΠΠ»Ρ ΠΈΠ·ΡΡΠ°ΡΡΠΈΡ ΡΡΠ΅Π΄Ρ PowerShell ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π²Π΅ β ΠΊΠΎΠΌΠ°Π½Π΄Ρ Get-Command ΠΈ Get-Member). ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ PowerShell, Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Get-Help (ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² β help ΠΈ man).
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² Ρ ΠΎΠ΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ PowerShell, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Update-Help ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ PowerShell ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Microsoft ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΌΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΠΌΠ°Ρ , ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Update-Help Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Microsoft ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°: Π²Π΅Π΄Ρ Π½Π° Π²Π°ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π»ΠΈΡΡ ΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΊΠ°Π·Π°Π»Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell Get-Help
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΌΠΎΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ Π²Π°ΠΌΠΈ ΠΎΡ PowerShell, β ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ΅. ΠΠ·ΡΠ² Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ PowerShell, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΆΠ΅ ΠΏΠΎΠΌΠΎΡΡ Π±ΡΠ΄ΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². Π ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ». ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
# ΠΡΠ±ΠΎΠΉ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π‘ΡΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
#>ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
Π ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌ Π·Π°ΠΌΡΡΠ»ΠΎΠΌ? Π ΡΡΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² Π½Π°ΡΠ°Π»ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠΌΠΎΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Get-Help.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅Π³Π°ΠΌΠΈ. Π― ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΈ:. SYNOPSIS,. DESCRIPTION ΠΈ. EXAMPLE. Π’Π΅Π³. SYNOPSIS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π°ΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. Π’Π΅Π³. DESCRIPTION Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π° ΡΠ΅Π³. EXAMPLE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ½ΡΠ», ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡ. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°ΠΌ Π²ΡΠ΅Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈΠΌΡ 'sa'.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Π³ΠΈ, ΠΊΠ°ΠΊ. PARAMETER Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅,. INPUTS Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ, ΠΈΠ»ΠΈ. OUTPUTS Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ,. NOTES Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ,. LINK Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ Ρ.Π΄.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell get-Help Set-Database
ΠΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΠ΅ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ Π·Π°Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π― ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΈ ΠΌΠ½Π΅ ΡΠ°ΠΌΠΎΠΌΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄.
ΠΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ PowerShell ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ ΠΈ Π΄ΡΡΠ·ΡΡΠΌΠΈ
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ PowerShell / Π₯Π°Π±Ρ
Π ΡΠΎΠΌ, ΡΡΠΎ Microsoft Π² Π½Π΅Π΄Π°Π²Π½Π΅ΠΌ ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°Π·ΡΠΎΠ΄ΠΈΠ»Π°ΡΡ ΡΠ²Π΅ΠΆΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PowerShell, Ρ ΡΠ·Π½Π°Π» Π΅ΡΠ΅ Ρ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄. Π Π²ΠΎΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π° Π·Π²Π΅ΡΡ ΡΠ°ΠΊΠΎΠΉ, Π½ΠΈΠΊΠ°ΠΊ ΡΡΠΊΠΈ Π½Π΅ Π΄ΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ. ΠΠΎ Π²ΠΎΡ Π½Π° Π΄Π½ΡΡ Π½Π° ΡΠ²Π΅ΠΆΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ Window Server 2008 Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΡΡΡ ΡΡΡΠΊΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈ Π»ΡΠ±ΠΎΠΏΡΡΡΡΠ²ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π²Π·ΡΠ»ΠΎ Π²Π΅ΡΡ . ΠΡΠΊΡΡΠ», ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π½Π°Π±ΠΈΡΡ ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΈΠΏΠ° Β«helpΒ», «?» ΠΈ Ρ.ΠΏ. β Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ (Π² ΠΆΠ°ΡΠ³ΠΎΠ½Π΅ PowerShella, ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ² β cmdlets), ΠΎΠΊΠ°Π·Π°Π²ΡΠΈΠΉΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠΌ. ΠΡΠΈΡΠ΅ΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²ΡΠΎΠ΄Π΅ ForEach, Where, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΠ³Π°ΡΡ. ΠΠΎΠ»Π΅Π· Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ Π±ΡΠ» ΠΏΡΠΈΡΡΠ½ΠΎ ΡΠ΄ΠΈΠ²Π»Π΅Π½ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°ΠΌ ΠΊΠ½ΠΈΠ³-ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ² ΠΏΠΎ ΡΠ°Π±ΠΆΡ (ΡΠΈΡΠ°Π» Windows PowerShell RU) β ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π±Π»ΠΎΠ³Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ:
blogs.technet.com/abeshkov/archive/2008/12/24/3172943.aspx
ΠΡΠ°ΠΊ, ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ PowerShell Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΎΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ:
β PowerShell Π½ΠΈΡΠ΅ΠΌ Π½Π΅ Ρ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ cmd.exe
β ΠΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠΎΠ²). ΠΠΎΡΠ°Π΄ΠΎΠ²Π°Π»ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡΠΈ Π½Π° Π²Π΅ΡΠΊΡ ΡΠ΅Π΅ΡΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HKLM, ΠΊΠ°ΠΊ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ Π΄ΠΈΡΠΊ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cd HKLM: ΠΈ ΠΏΠΎΠ±ΡΠΎΠ΄ΠΈΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ Π²ΡΠ΅ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ls ΠΈ cd, ΡΠΈΡΠ°Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅Π΅ΡΡΡΠ° ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΡΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ.
β ΠΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π²ΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅). ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΠ°ΠΉΠ»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΡ ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
β ΠΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ PowerShella Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π° β ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡ ΠΈΠΌΡ Π»ΡΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΠΊΠΎΠΌ $ ΠΈΠ»ΠΈ $_ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΎ, ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΊ ΡΡΠΈΠΌ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ, Π·Π°ΡΠΎ Π² ΠΊΠΎΠ΄Π΅ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ + ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ.
β ΠΠΏΠ΅ΡΠ°ΡΠ»ΠΈΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠ°/ΡΠΊΡΠΏΠΎΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΡ CSV, XML (ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠ½ΡΠ», ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ .NET), Π° ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (Π² ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ΄ Π² Π΄Π΅ΡΡΡΠΎΠΊ ΡΡΡΠΎΡΠ΅ΠΊ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ°ΡΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Ρ Π² XSLX-ΡΠΎΡΠΌΠ°ΡΠ΅).
β ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ CLS-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ .NET-ΠΊΠΎΠ΄Π° Ρ PowerShell ΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΌΠ°Π½Π½ΠΎΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. (Π‘ ΡΡΠΈΠΌ Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΡΡ, ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ²Π»Π΅Π½Π½Π°Ρ ΠΌΠΎΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΡΡΡΠΈΡΡ .NET-ΠΊΠΎΠ΄, Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π΄ΡΠ΅Ρ).Π ΠΎΠ±ΡΠ΅ΠΌ, Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΠΎΠ΅ ΠΈ ΠΌΠ½Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΎΡΠ·ΡΠ²Ρ ΡΠ΅Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΏΠ»ΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ.
Π‘Π±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Powershell / Π₯Π°Π±Ρ
Π‘Π±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Powershell.
ΠΡΠΎΡ ΠΏΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΡΠ°Π±ΠΎΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° Powershell. ΠΠ°Π»Π΅Π΅ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² windows ΡΡΠ΅Π΄Π΅. ΠΡΠ°ΠΊ:
ΠΡΠ»Π° Ρ ΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΠ° ΡΠΎΠ±ΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΡΠ°Π½ΡΠΈΡΠΌ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅ ΡΡΠ°Π½ΡΠΈΠΈ Π² AD ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΎΠΆΠ΅, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΡ. ΠΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ ΡΡΠ°Π½ΡΠΈΠΈ, Π·Π½Π°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ, Π²Π·ΡΠ² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π Π°Π· ΡΠ°ΠΊ, ΡΠΎ ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ, Ρ ΡΡΠ°ΡΠ°ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ. ΠΠΠ₯Π Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊ ΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅.
1. ΠΡΠΆΠ΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ°Π½ΡΠΈΠΉ. ΠΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈΠ· AD ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
Get-ADComputer -filter * -SearchBase Β«OU=Computers,ou=some-OU,dc=some-dc,dc=ruΒ»
ΠΠ½Π° Π²ΡΠ΄Π°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ Ρ.ΠΏ. ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π±ΡΠ»ΠΈ Π²ΡΠ΅ ΠΈ Ρ Π²ΡΠ±ΡΠ°Π» ΠΈΠ· Π½ΠΈΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½Ρ (Diasabled). Π‘ΡΠ°Π²ΠΈΠΌ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ
Where-Object {$_.enabled -eq $true}
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ enable ΡΠ°Π²Π½ΠΎ true, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ. ΠΠ°Π»Π΅Π΅, ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ Ρ Π²ΡΠ±Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΠΌΡ (Name), ΠΏΠΎΡΡΠ°Π²ΠΈΠ² Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ
Select-Object -Property Name
Π‘ΠΏΠΈΡΠΎΠΊ Π΅ΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ² $enablePCs. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ
$enablePCs = Get-ADComputer -filter * -SearchBase Β«OU=Computers,ou=ru-moscow,ou=cee,dc=alico,dc=corpΒ» | Where-Object {$_.enabled -eq $true} | Select-Object -Property Name
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°Π±ΡΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ $enablePCs, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ².
ΠΠ°Π»Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Ρ ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ Π½Π΅Ρ. Π§Π°ΡΡΠΈ ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ² Π΄Π°Π²Π½ΠΎ Π½Π΅Ρ, ΡΠ°ΡΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π°. ΠΠ½Π°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Π»Π΅Π΅. Π― ΠΏΠΎΡΠ΅Π» ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΡΠΈ: ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ°Π½ΡΠΈΠΈ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π² ip Π°Π΄ΡΠ΅Ρ, Π·Π½Π°ΡΠΈΡ, ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°Π½ΡΠΈΠΈ ΡΠΆΠ΅ Π½Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π΅ΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΅ ΠΏΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΈΠ½Π³ΡΠ΅ΡΡΡ, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ°Π½ΡΠΈΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π°. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ
ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ ΡΠΎ ΡΡΠ΅Π½ΠΎΠΉΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Ρ ΠΎΡΡΠ°ΠΌ. ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΌΠ΅ΡΠΎΠ΄ resolve Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ [System.net.dns]. ΠΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ°:$dnsresult = [System.Net.Dns]::resolve(«$computername»)
ΠΡΠΎ $computername Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π΄Π°Π»Π΅Π΅. ΠΠΎΡΠ»Π΅, Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ip Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
$ipaddress = $dnsresult.AddressList
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π°Π΄ΡΠ΅Ρ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ [system.net.networkinformation.ping] ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊ Π½Π΅ΠΉ ΠΌΠ΅ΡΠΎΠ΄ send. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
$pingfunc = (New-Object system.net.networkinformation.ping).send(«$ipaddress»)
ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΈ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΡΠ°ΡΡΡ success, ΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΡΠ°Π½ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π°, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊ Π½Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ. Π’ΡΡ ΡΠΆΠ΅ Π½Π° ΡΠ²ΠΎΠΉ Π²ΠΊΡΡ, Π»ΡΠ±ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π²Π°ΡΠΈΡ Π°Π΄ΠΌΠΈΠ½ΡΠΊΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ», Π½Π° ΠΊΠ°ΠΊΠΈΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Chrome:
$chrome = dir «\\$ipaddress\C$\Program Files (x86)\Google\Chrome\Application\chrome.exe»
if ($chrome -ne $null) {write-host Β«Host $computername is reacheble, use Chrome, and have ip $ipaddressΒ»
$sumchrome++}
else {write-host «$computername is reacheble, do not use Chrome, and have ip $ipaddress»
$pcwithoutchrome++}ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ $sumchrome ΠΈ $pcwithoutchrome Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΡΠ°Π½ΡΠΈΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΡ Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
<img src=»» alt=Β«imageΒ»/>
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
$enablePCs = Get-ADComputer -filter * -SearchBase Β«OU=Computers,ou=someou,dc=somedomain,dc=corpΒ» | Where-Object {$_.enabled -eq $true} | Select-Object -Property Name
$sumunresolvePC = 0
$sumchrome = 0
$sumreacheblePC = 0
$sumunreacheblePC = 0
$pcwithoutchrome = 0foreach ( $i in $enablePCs ) #Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ $enablePCs
{
$error.Clear() #ΠΎΡΠΈΡΠ°Π΅ΠΌ Π±ΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Powershell
$erroractionpreference = Β«silentlycontinueΒ» #ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ
$dnsresult = 0
$computername = $i.name #ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈΠΌΡ ΡΡΠ°Π½ΡΠΈΠΈ
$dnsresult = [System.Net.Dns]::resolve(«$computername»)if (!$error) #ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π±ΡΠ»Π° Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠΎΠΉ
{
$ipaddress = $dnsresult.AddressList
$pingfunc = (New-Object system.net.networkinformation.ping).send(«$ipaddress») #ping
if ($pingfunc.Status -eq Β«successΒ»)
{
$sumreacheblepc++ #ΠΏΠ»ΡΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ°Π½ΡΠΈΠΉ
$chrome = dir \\$ipaddress\C$\Program Files (x86)\Google\Chrome\Application\chrome.exe #ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ Chrome
If ($chrome -ne $null) {write-host Β«Host $computername is reachable, use Chrome, and have ip $ipaddressΒ»$sumchrome++ #ΠΏΠ»ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½ΡΠΈΠΉ Ρ Chrome
}
else {
Write-host «$computername is reachable, do not use Chrome, and have ip $ipaddress»
$pcwithoutchrome++ #ΠΏΠ»ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½ΡΠΈΠΉ Π±Π΅Π· Chrome
}}
else {
$sumunreacheblePC++ #ΠΏΠ»ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ°Π½ΡΠΈΠΉ
Write-Host Β«Host $computername is unreachable now, and have ip $ipaddressΒ»}
}else
{$sumunresolvePC++ #ΠΏΠ»ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΡΠ°Π½ΡΠΈΠΉ
write » I cannot resolve $computername :(«}
}
Write-Host Β«Total enabled PC = Β» $enablePCs.count
Write-Host Β«Total PC with Chrome = $sumchromeΒ»
Write-Host Β«Total reachable PC = $sumreacheblePCΒ»
Write-Host Β«Total Unreachable PC = $sumunreacheblePCΒ»
Write-Host Β«Total PC Without Chrome = $pcwithoutchromeΒ»
write-host Β«Total unresolved PC = $sumunresolvepcΒ»ΠΡ Π²ΠΎΡ ΠΈ Π²ΡΠ΅. ΠΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°Π»ΠΈΡΠΈΡ Chrome Ρ ΠΎΠΏΠΈΡΠ°Π» Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°. Π’ΡΠ΄Π° ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² logonscript. Π‘Π°ΠΌ powershell Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» ΠΈΠ·ΡΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΈΡΠΈΡΠ΅, ΠΎΠ±ΡΡΠ΄ΠΈΠΌ.
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Powershell — PowerShell — SS64.com
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Powershell — PowerShell — SS64.com
Π PowerShell ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ΅ΡΠ΅ΡΠΊΠΈ, Π²ΡΠ΅ ΡΠΏΡΠ°Π²Π° ΠΎΡ # Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
# ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π PowerShell 2.0 ΠΈ Π²ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ Π±Π»ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
<# ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
contines
#>ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π‘ΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π±ΡΠ»Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ² PS 2.0, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Get-Help.
Π‘ΠΌ. ΠΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² Π² ΡΠΏΡΠ°Π²ΠΊΠ΅ about_Comment_Based_Help.ΠΡΠΈΠΌΠ΅ΡΡ
Copy-Item demo.msi C: \ install \ demo.msi # ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ
<# ΠΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Ρ Π²Π°ΠΌΠΈ Π½Π° ΡΡΠ°Π½ΡΡΠ·ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅: www.example.com/powershell.html ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 1666-09-02 #> Get-Content -Path <# ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ #> C: \ install \ app64.iniΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°:
PS C: \> Get-ChildItem <# ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ #> ` -Path $ env: windir <# ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Windows #> ` -Filter * .dll <# ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ DLL #> ` -Recurse <# ΠΈ ΠΏΠΎΠΈΡΠΊ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ #>Π‘ΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²
Π ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΎΡΠΊΠΈ. ΠΡΠΈΠΌΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½ΠΈΠΆΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π² ΡΠ²ΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠΈ.
DemoParam1 ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ DemoParam1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ blah, Π° ΡΠ°ΠΊΠΆΠ΅ blah. .PARAMETER DemoParam2 ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ DemoParam2 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ blah, Π° ΡΠ°ΠΊΠΆΠ΅ blah. .ΠΠ ΠΠΠΠ ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ Π±Π»Π° PS C: \> ΠΡΠΈΠΌΠ΅Ρ .ΠΠ ΠΠΠΠ ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ .ΠΠΠΠΠ’ΠΠ ΠΠ²ΡΠΎΡ: ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: Π³Π³Π³Π³-ΠΌΠΌ-Π΄Π΄ ΠΠ΅ΡΡΠΈΡ 1.0 - Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ blah ΠΠ΅ΡΡΠΈΡ 1.1 - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±Π»Π° #>Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ ΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Get-Help
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
get-help ./script.ps1
get-help myfunction (ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ / ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠΊΠΈ)ΠΠ΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΡΠ°Π²ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²:
Π‘ΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π΄Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ (Π΅Π΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½.)
Π‘ΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠ΅Ρ ΠΌΠ΅ΡΡ:
- Π Π½Π°ΡΠ°Π»Π΅ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
- Π ΠΊΠΎΠ½ΡΠ΅ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
- ΠΠ΅ΡΠ΅Π΄ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Function. ΠΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Function Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΊΡΠΈΠΏΡΠ° / ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘ΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ get-help Π΄Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π½ΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° PARAM (), ΡΠΎ get-help Π²Π΅ΡΠ½Π΅Ρ ΡΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ .
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅ΠΊΡΡΠ° ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ <# .SYNOPSIS #> Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π ΡΠΏΡΠ°Π²ΠΊΠ΅ about_Comment_Based_Help.
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PowerShell ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠ·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠΎΠ±Π΅Π»Π° + TAB (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ #).
ΠΡΠΈΠΌΠ΅Ρ:
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ () {
} # comment^ ΠΡΠ° ΡΡΡΠΎΠΊΠ°:}
#
ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ / Π²ΡΡΠ°Π²ΠΊΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ PowerShell ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:PS C: \ batch> ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ () {
>>}.\ aaardvaark.cmd # comment
>>
Π’Π΅ΡΠΌΠΈΠ½ ‘. \ Aaardvaark.cmd #’ Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΠ°, ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΉΠ»Π° ΡΡΠ΅Π½Π°ΡΠΈΡ …Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°-ΠΏΡΠΎΠ±Π΅Π» ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ aaardvaark.cmd. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° <ΠΏΡΠΎΠ±Π΅Π»> <Π²ΠΊΠ»Π°Π΄ΠΊΠ°> <ΠΏΡΠΎΠ±Π΅Π»>, Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ PowerShell ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΡΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ» Π±Ρ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π» ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
(ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ), ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. # Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎΠΉ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π»ΠΈΡΠΎΠΌ ΠΊ Π·Π°ΠΏΠ°Π΄Ρ
ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ Π²Ρ ΠΆΠΈΠ²Π΅ΡΠ΅. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½ΡΡΠ΅ # — REM ‘Stand’Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅ΡΡ PowerShell:
Escape-ΡΠΈΠΌΠ²ΠΎΠ»Ρ — Π΄Π²ΠΎΠΉΠ½ΡΠ΅ \\, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡ
ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π° Β© 1999-2020 SS64.com
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ°Π²Π° Π·Π°ΡΠΈΡΠ΅Π½Ρ.ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² PowerShell — qaruQaruSite
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°.