我正在使用 Get-Service 来列出某些类型的服务。然后我遇到了显示为
RDPDR
的服务:
# Get-Service RDPDR | Select-Object *
UserName :
Description : Remote Desktop Device Redirector Driver
DelayedAutoStart : False
BinaryPathName : System32\drivers\rdpdr.sys
StartupType : Manual
Name : RDPDR
RequiredServices : {RDBSS}
CanPauseAndContinue : False
CanShutdown : False
CanStop : False
DisplayName : Remote Desktop Device Redirector Driver
DependentServices : {UmRdpService}
MachineName : .
ServiceName : RDPDR
ServicesDependedOn : {RDBSS}
StartType : Manual
ServiceHandle : Microsoft.Win32.SafeHandles.SafeServiceHandle
Status : Stopped
ServiceType : KernelDriver
Site :
Container :
但是,我发现在没有给出确切名称的情况下,并没有列出这个,例如:
# Not from here:
# Get-Service | Select Status, StartType, Name, DisplayName | Sort-Object -Property Name |ft -AutoSize
# Neither here:
# Get-Service | Select Status, Name, ServiceType | Sort-Object -Property Name |ft -AutoSize
所以我希望能够列出它们:
# Gives weird errors, and no results
# Get-Service | Where-Object {$_.ServiceType -eq "KernelDriver"}
Get-Service: Service 'McpManagementService (McpManagementService)' cannot be queried due to the following error:
Get-Service: Service 'NPSMSvc_1cde02 (NPSMSvc_1cde02)' cannot be queried due to the following error:
Get-Service: Service 'WebManagementUser_1cde02 (WebManagementUser_1cde02)' cannot be queried due to the following error:
ServiceType
为 KernelDriver
的所有服务?
更新:
powershell 存储库中记录了(至少)3 个相关错误。
相关
您使用Where-Object 的方向是正确的。但是,默认情况下,Get-Service 可能不会检索 ServiceType 属性,这在您尝试按其过滤时可能会导致问题。
您还可以使用 Get-WmiObject cmdlet,它会检索有关服务的更多详细信息,包括其 ServiceType。
Get-WmiObject -Class Win32_Service | Where-Object { $_.ServiceType -eq 'Kernel Driver' } | Select-Object Name, DisplayName, State, StartMode
这应该列出 ServiceType 为 KernelDriver 的所有服务
让我知道它是否适合您