PowerShell рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрдиред рднрд╛рдЧ 4. WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛


рд╣рдо 4sysops.com рдкрд░ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдкреНрд░рдмрдВрдзрди рд▓реЗрдЦреЛрдВ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ ред рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ , рд╣рдордиреЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред WMI рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирдП рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ .NET рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдпрджреНрдпрдкрд┐ рд╣рдо рд╕рд░реНрд╡рд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ-рд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕реЗ рд╣рд╛рд▓рд╛рдд рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдбрдмреНрд▓реНрдпреВрдПрдордЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдХрдЯ рдХреЗ рддрд╣рдд 4sysops.com рдкреЛрд░реНрдЯрд▓ рдореИрдиреЗрдЬрд┐рдВрдЧ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдж рдкреЙрд╡рд░рд╢реЗрд▓ рддрд░реАрдХрд╛ - рднрд╛рдЧ 6 рд╕реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред

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


рд╢реБрд░реВ рдХрд░реЛ рдФрд░ рд░реБрдХ рдЬрд╛рдУ


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреЛрдИ рдкреНрд░рдмрдВрдзрди cmdlets рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

PS C:\> get-wmiobject win32_service -filter "name='lanmanserver'" | get-member -MemberType Method | Select name Name тАФ- Change ChangeStartMode Delete GetSecurityDescriptor InterrogateService PauseService ResumeService SetSecurityDescriptor StartService StopService UserControlService 


рд╣рдо рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рд╕реАрдзреЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реАрдзреЗ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЖрд╣реНрд╡рд╛рди)ред

 PS C:\> $service = get-wmiobject win32_service -filter "name='spooler'" PS C:\> $service.state Running PS C:\> $service.StopService() __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 


рдореИрдВ рд╕реАрдзреЗ рд╕реНрдкреВрд▓рд░ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ StopService () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ ред рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдорд╛рди ("0") рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдлрд▓рддрд╛ред рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдХрд╛ рдЕрд░реНрде рддреНрд░реБрдЯрд┐ рд╣реИ, Win32_Service рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП MSDN рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ -Whatif рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ Invoke-WmiMethod cmdlet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд╣рдореЗрдВ WMI рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ Invoke-WmiMethod рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

 PS C:\> get-wmiobject win32_service -filter "name='spooler'" | Invoke-WmiMethod -Name StartService -WhatIf What if: Performing operation "Invoke-WmiMethod" on Target "Win32_Service (StartService)". PS C:\> get-wmiobject win32_service -filter "name='spooler'" | Invoke-WmiMethod -Name StartService __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 


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

 PS C:\> get-wmiobject win32_service -filter "startmode='auto' AND state<>'Running'" -comp chi-dc03 | invoke-wmimethod -Name StartService 


рдЗрд╕рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБ рдХреЗрд╡рд▓ рд▓реМрдЯрд╛рдП рдЧрдП рдореВрд▓реНрдп рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред рдпрджрд┐ рдпрд╣рд╛рдВ рдХреЛрдИ рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

 PS C:\> get-wmiobject win32_service -filter "startmode='auto' AND state<>'Running'" -comp chi-dc01,chi-dc02,chi-dc03 | foreach { $svc = $_ ; $_ | Invoke-WmiMethod -Name StartService | Select @{Name="Name";Expression={$svc.name}},@{Name="DisplayName"; Expression={$svc.Displayname}},ReturnValue,@{Name="Computername";Expression={ $svc.Systemname}}} Name DisplayName ReturnValue Computername ---- ----------- ----------- ------------ sppsvc Software Protection 0 CHI-DC01 sppsvc Software Protection 0 CHI-DC02 VMTools VMware Tools Service 7 CHI-DC02 ShellHWDetection Shell Hardware Detection 0 CHI-DC03 


ForEach рдмреНрд▓реЙрдХ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрдирдкреБрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЪрд░ ( $ svc ) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛, рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВ рдЬреЛ рдХрд╕реНрдЯрдо рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЛрдб рдмрджрд▓реЗрдВ



рдЖрдк рд╕реЗрд╡рд╛ рдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЛрдб рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд , рдЕрдХреНрд╖рдо рдпрд╛ рдореИрдиреБрдЕрд▓ ред WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд (рд╡рд┐рд▓рдВрдмрд┐рдд) рд╕реЗрд╡рд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

 PS C:\> get-wmiobject win32_service -filter "name='spooler'" | Invoke-WmiMethod -Name ChangeStartMode -ArgumentList "Manual" | Select ReturnValue ReturnValue ----------- 0 


ArgumentList рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдорд╛рдВрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдЧреБрдг рд╕реЗрдЯ рдХрд░реЗрдВ



рдПрдХ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдИ рдЧреБрдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ WMI рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реЗрдЯ-WmiInstance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪреЗрдВрдЬ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред

рдмрджрд▓реЗрдВ (
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд┐рд╕реНрдкреНрд▓реЗрдирд╛рдо,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдердирд╛рдо,
uint32 рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд░,
uint32 ErrorControl,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ,
рдмреВрд▓рд┐рдпрди рдбреЗрд╕реНрдХрдЯреЙрдкрдЗрдВрдЯрд░реИрдХреНрдЯ,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрднрдирд╛рдо,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЛрдбрд░рдЧреНрд░реБрдк,
рд╕реНрдЯреНрд░рд┐рдВрдЧ LoadOrderGroup рдирд┐рд░реНрднрд░рддрд╛рдПрдБ,
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ
)


рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╡рд┐рдзрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП $ Null рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рд╕реНрдкреВрд▓рд░ рд╕реЗрд╡рд╛ рдХреА ErrorControl рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЗрдЧреНрдиреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡рд░реНрдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓реНрдп 1 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ 0. рдзреНрдпрд╛рди рди рджреЗрдВред рдЕрдм PowerShell рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

 PS C:\> Get-WmiObject win32_service -filter "Name='Spooler'" | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,$null,0) | Select ReturnValue ReturnValue ----------- 0 


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВред

 PS C:\> get-wmiobject win32_service -filter "Name='spooler'" | select name,errorcontrol name errorcontrol ---- ------------ Spooler Normal 


рд▓реЗрдХрд┐рди рдирд╣реАрдВ! рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдореЗрдВ рдереЛрдбрд╝рд╛ "рдХреНрд╡рд░реНрдХ" рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рднрд▓реЗ рд╣реА WMI рд╡рд┐рдзрд┐ рджрд┐рдП рдЧрдП рдХреНрд░рдо рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди Invoke-WmiMethod , рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп ErrorControl рдЪреМрдереЗ рд╕реНрдерд╛рди рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдХреНрдпреЛрдВ рдордд рдкреВрдЫреЛред рдпрд╣рд╛рдБ рдореИрдВ "рд╕рд╣реА" рдХреНрд░рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

 PS C:\> $svc = Get-WmiObject win32_service -filter "name='spooler'" __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 : 


рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ, ErrorControl рддреАрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИ, рддрд╛рдХрд┐ рдореИрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдЗрдирд╡реЛрдХ-WmiMethod рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛ рд╕рдХреВрдВ ред

 PS C:\> Get-WmiObject win32_service -filter "Name='Spooler'" | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,0) 


рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

 PS C:\> get-wmiobject win32_service -filter "Name='spooler'" | select name,errorcontrol name errorcontrol ---- ------------ Spooler Ignore 


рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрд┐рд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЖрдк рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП $ null рдХреЛ рддрд░реНрдХ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕реЗрд╡рд╛ рдЦрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдкрд░рд┐рдгрд╛рдо



рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк WMI рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк PowerShell 3.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк CIM cmdlets рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рдореИрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд░реВрдВрдЧрд╛ред

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

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


All Articles