Какую команду я должен использовать для получения полной служебной информации в Powershell?

#powershell #service

#powershell #Обслуживание

Вопрос:

Мне нужно создать RPC для получения и изменения статусов служб на основе поля «Войти как», видимого в пользовательском интерфейсе служб. Команда Get-Service предоставляет мне только статус, имя и имя_исплея, но мне нужно больше информации. Должен ли я использовать модификатор с Get-Service или есть другой способ решения проблемы?

поле входа в систему в пользовательском интерфейсе служб

Комментарии:

1. В следующий раз попробуйте использовать Google, прежде чем отправлять вопрос. На первой странице приведено множество примеров… devblogs.microsoft.com/scripting /…

2. Привет, Дуг. Я сделал Google об этом, прежде чем задавать вопрос здесь, хотя, к сожалению, я пропустил это и был обескуражен, просмотрев документы MS для Get-Service. Однако спасибо за дополнительный ресурс! С этого момента обязательно обратитесь к devblogs.

Ответ №1:

«Get-Service» предоставляет вам гораздо больше, чем вы видите по умолчанию. Многие командлеты имеют определения форматирования и по умолчанию отображают только определенные свойства.

Вы можете увидеть больше на верхнем уровне (= прямые участники), используя «Format-List * -Force»

 PS> Get-Service -Name 'BITS' | fl * -Force

UserName            : LocalSystem
Description         : Transfers files in the background using idle network bandwidth. If the service is disabled, then any applications that depend on BITS, such as Windows Update or MSN
                      Explorer, will be unable to automatically download programs and other information.
DelayedAutoStart    : True
BinaryPathName      : C:WINDOWSSystem32svchost.exe -k netsvcs -p
StartupType         : Manual
Name                : BITS
RequiredServices    : {RpcSs}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Background Intelligent Transfer Service
DependentServices   : {}
MachineName         : .
ServiceName         : BITS
ServicesDependedOn  : {RpcSs}
StartType           : Manual
ServiceHandle       :
Status              : Stopped
ServiceType         : Win32ShareProcess
Site                :
Container           :
 

Но есть много косвенных (вложенных) членов. Вы можете обнаружить их, используя «Get-Member» или используя их (например $service.RequiredServices ).

 PS> $service | Get-Member -MemberType Property

   TypeName: System.Service.ServiceController#StartupType

Name                MemberType Definition
----                ---------- ----------
BinaryPathName      Property   System.String {get;set;}
CanPauseAndContinue Property   bool CanPauseAndContinue {get;}
CanShutdown         Property   bool CanShutdown {get;}
CanStop             Property   bool CanStop {get;}
Container           Property   System.ComponentModel.IContainer Container {get;}
DelayedAutoStart    Property   System.Boolean {get;set;}
DependentServices   Property   System.ServiceProcess.ServiceController[] DependentServices {get;}
Description         Property   System.String {get;set;}
DisplayName         Property   string DisplayName {get;set;}
MachineName         Property   string MachineName {get;set;}
ServiceHandle       Property   System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property   string ServiceName {get;set;}
ServicesDependedOn  Property   System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property   System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property   System.ComponentModel.ISite Site {get;set;}
StartType           Property   System.ServiceProcess.ServiceStartMode StartType {get;}
StartupType         Property   Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status              Property   System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName            Property   System.String {get;set;}
 

Здесь расширенное представление (до 3-го уровня; их гораздо больше)

 [ServiceController] BITS
>   UserName                           : LocalSystem
>   Description                        : Transfers files in the background using idle network bandwidth. If the service is disabled, then any applications that depend on BITS, such as Windows Update or MSN Explorer, will be unable to automatically download programs and other information.
>   DelayedAutoStart                   : True
>   BinaryPathName                     : C:WINDOWSSystem32svchost.exe -k netsvcs -p
>   StartupType                        : [ServiceStartupType] Manual
>   >   value__                            : 3
>   Name                               : BITS
>   RequiredServices                   : @[ServiceController[]]
>   >   [0] <RequiredServices>             : [ServiceController] RpcSs
>   >   >   Name                               : RpcSs
>   >   >   RequiredServices                   : @{[ServiceController[]]} ~[0..2] RpcEptMapper , DcomLaunch
>   >   >   CanPauseAndContinue                : False
>   >   >   CanShutdown                        : False
>   >   >   CanStop                            : False
>   >   >   DisplayName                        : Remote Procedure Call (RPC)
>   >   >   DependentServices                  : 
>   >   >   MachineName                        : .
>   >   >   ServiceName                        : RpcSs
>   >   >   ServicesDependedOn                 : @{[ServiceController[]]} ~[0..2] RpcEptMapper , DcomLaunch
>   >   >   StartType                          : {[ServiceStartMode]} Automatic
>   >   >   ServiceHandle                      : 
>   >   >   Status                             : {[ServiceControllerStatus]} Running
>   >   >   ServiceType                        : {[ServiceType]} Win32ShareProcess
>   >   >   Site                               : 
>   >   >   Container                          : 
>   CanPauseAndContinue                : False
>   CanShutdown                        : False
>   CanStop                            : False
>   DisplayName                        : Background Intelligent Transfer Service
>   DependentServices                  : @[ServiceController[]]
>   MachineName                        : .
>   ServiceName                        : BITS
>   ServicesDependedOn                 : @[ServiceController[]]
>   >   [0] <ServicesDependedOn>           : [ServiceController] RpcSs
>   >   >   Name                               : RpcSs
>   >   >   RequiredServices                   : @{[ServiceController[]]} ~[0..2] RpcEptMapper , DcomLaunch
>   >   >   CanPauseAndContinue                : False
>   >   >   CanShutdown                        : False
>   >   >   CanStop                            : False
>   >   >   DisplayName                        : Remote Procedure Call (RPC)
>   >   >   DependentServices                  : 
>   >   >   MachineName                        : .
>   >   >   ServiceName                        : RpcSs
>   >   >   ServicesDependedOn                 : @{[ServiceController[]]} ~[0..2] RpcEptMapper , DcomLaunch
>   >   >   StartType                          : {[ServiceStartMode]} Automatic
>   >   >   ServiceHandle                      : 
>   >   >   Status                             : {[ServiceControllerStatus]} Running
>   >   >   ServiceType                        : {[ServiceType]} Win32ShareProcess
>   >   >   Site                               : 
>   >   >   Container                          : 
>   StartType                          : [ServiceStartMode] Manual
>   >   value__                            : 3
>   ServiceHandle                      : 
>   Status                             : [ServiceControllerStatus] Stopped
>   >   value__                            : 1
>   ServiceType                        : [ServiceType] Win32ShareProcess
>   >   value__                            : 32
>   Site                               : 
>   Container                          : 
---------------------------------------------------------------------------