PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 6. рд╕реЗрд╡рд╛ рд▓реЗрдЦрд╛


рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреВрд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ 4sysops.com рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ , рд╣рдордиреЗ PowerShell 3.0 рдореЗрдВ рдкреЗрд╢ CIM cmdlets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ 2012 рдореЗрдВ Windows рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджреЗрдЦрд╛ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо WMI рдФрд░ CIM cmdlets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред
рддреЛ, рдХрдЯ рдХреЗ рддрд╣рдд 4sysops.com рдкреЛрд░реНрдЯрд▓ рд╕реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред рдореИрдиреЗрдЬрд┐рдВрдЧ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдж рдкрд╛рд╡рд░рд╢реЗрд▓ рддрд░реАрдХрд╛ - рднрд╛рдЧ 8

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:
PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 1. рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 2. рд░реЛрдХрдирд╛, рд╢реБрд░реВ рдХрд░рдирд╛, рд░реЛрдХрдирд╛
PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 3. WMI рдФрд░ CIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 4. WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛
PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 5. CIM Cmdlets

WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рд╣реИред

PS C:\> get-wmiobject win32_service -filter "name='yammmsvc'" | Select name,startname name startname ---- --------- YammmSvc .\Jeff 


рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рдорд╛рдирд╛ рдХрд┐ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдВрдЬ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рднреА рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Invoke-WmiMethod рд╡рд┐рдХрд▓реНрдк MSDN- рдкреНрд░рд▓реЗрдЦрд┐рдд рдЖрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

 PS C:\> $svc = get-wmiobject win32_service -filter "name='yammmsvc'" PS C:\> $svc.GetMethodParameters("change") __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 11 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : DesktopInteract : DisplayName : ErrorControl : LoadOrderGroup : LoadOrderGroupDependencies : PathName : ServiceDependencies : ServiceType : StartMode : StartName : StartPassword : PSComputerName : 


рдкрд╛рд╕рд╡рд░реНрдб 11 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ 10 рдкрд┐рдЫрд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдорд╛рди рдбрд╛рд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдмрджрд▓рддреЗ рдирд╣реАрдВ рд╣реИрдВред

 PS C:\> $svc | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,$null,$null,$null,$null,$null,$null,$null,$null,"P@ssw0rd") __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 PSComputerName : 


реж рд▓реМрдЯреЗ рд╣реБрдП рдореВрд▓реНрдп рдХрд╛ рдЕрд░реНрде рд╣реИ рд╣рдорд╛рд░реА рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдлрд▓рддрд╛ред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрдм рддрдХ рд╣рдо рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рддрдм рддрдХ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рднреВрд▓ рдЧрдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реЗ рдкрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рджреЗрдЦреЗрдВред
рдпрджрд┐ рдЖрдк рдЦрд╛рддрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 PS C:\> $svc | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,$null,$null,$null,$null,$null,$null,$null,"LocalSystem","P@ssw0rd") 


рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЦрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рднреА рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо CIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ



рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CIM cmdlets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВред
 PS C:\> Get-CimInstance win32_service -filter "name='yammmsvc'" | Invoke-CimMethod -Name Change -Arguments @{StartName=".\Jeff";StartPassword="P@ssw0rd"} 


рдкреБрди: рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдорд╛рди 0. рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рд╛рд░реВрдк MACHINE \ USERNAME рдпрд╛ DOMAIN \ USERNAME рдкреНрд░рд╛рд░реВрдк рдореЗрдВ startname рджрд░реНрдЬ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреЗрдл рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рддрд░реНрдХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ Invoke-CimMethod рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

 PS C:\> Invoke-CimMethod -Name Change -Arguments {StartName=".\Jeff";StartPassword="P@ssw0rd"} -Query "Select * from Win32_Service where name='yammmsvc'" тАУComputername JeffPC 


рдпрджреНрдпрдкрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдореИрдВрдиреЗ рд░рд┐рдореЛрдЯ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЗрд╕рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдирд┐рдореНрди рдХрдИ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рд╕реЗрд╡рд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

 PS C:\> Invoke-CimMethod -Name Change -Arguments @{StartPassword="P@ssw0rd"} -Query "Select * from Win32_service where name='MyCustomService'" тАУcomputername $computers | out-file c:\work\results.txt 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ $ рдХрдВрдкреНрдпреВрдЯрд░ рдЪрд░ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ MyCustomService рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдирд╛рдо рдФрд░ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдорд╛рди рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рдирд╛



рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ WMI рдпрд╛ CIM cmdlets рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:
1. рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
2. рд░реЛрдХреЗрдВ, рд╢реБрд░реВ рдХрд░реЗрдВ, рд░реЛрдХреЗрдВ
3. WMI рдФрд░ CIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
4. WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛рдПрдБ рдмрджрд▓реЗрдВ
5. CIM Cmdlets

Source: https://habr.com/ru/post/In170263/


All Articles