kub*_*usz 46 powershell windows-services
如何使用PowerShell获取Windows服务启动类型而不使用WMI?
我查看了Get-Service命令,它没有提供显示"启动类型"的东西.
rav*_*nth 36
WMI是实现此目的的方法.
Get-WmiObject -Query "Select StartMode From Win32_Service Where Name='winmgmt'"
Run Code Online (Sandbox Code Playgroud)
要么
Get-WmiObject -Class Win32_Service -Property StartMode -Filter "Name='Winmgmt'"
Run Code Online (Sandbox Code Playgroud)
小智 24
使用PowerShell版本4:
您可以运行如下命令:
Get-Service | select -property name,starttype
Run Code Online (Sandbox Code Playgroud)
小智 14
在PowerShell中,您可以使用命令Set-Service:
Set-Service -Name Winmgmt -StartupType Manual
Run Code Online (Sandbox Code Playgroud)
我没有找到PowerShell命令来查看启动类型.可以假设Get-Service命令会提供,但似乎没有.
据我所知,没有"原生"PowerShell获取此信息的方式.也许它比.NET Shell限制了.
以下是将此功能添加到下一版本的建议:
WMI解决方法也在那里,以防万一.我使用这个WMI解决方案来完成我的任务,它可以工作.
你也可以使用:
(Get-Service 'winmgmt').StartType
Run Code Online (Sandbox Code Playgroud)
它只返回启动类型,例如,禁用.
小智 5
一旦你已经升级到PowerShell的5.0版本,你可以得到的启动类型。
要检查您正在运行的PowerShell版本,请使用 $PSVersionTable。
以下示例适用于Windows防火墙服务:
对于本地系统
Get-Service | Select-Object -Property Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto
Run Code Online (Sandbox Code Playgroud)
对于一个远程系统
Get-Service -ComputerName HOSTNAME_OF_SYSTEM | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto
Run Code Online (Sandbox Code Playgroud)
对于多个系统(必须创建systems.txt)
Get-Service -ComputerName (Get-content c:\systems.txt) | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113877 次 |
| 最近记录: |