Get-Service *sql* | sort DisplayName | out-file c:/servicelist.txt
我有一个一行 PowerShell 脚本来提取本地计算机上运行的所有服务的列表,现在,除了显示“状态”、“名称”和“显示名称”之外,我还想显示“路径”可执行文件”
最佳答案
我认为您需要求助于 WMI:
Get-WmiObject win32_service | ?{$_.Name -like '*sql*'} | select Name, DisplayName, State, PathName
更新 如果您想对选定的数据执行一些操作,您可以使用计算属性,如here所述。 .
例如,如果您只想将文本放在路径名的引号内,则可以用双引号分隔并获取数组项 1:
Get-WmiObject win32_service | ?{$_.Name -like '*sql*'} | select Name, DisplayName, @{Name="Path"; Expression={$_.PathName.split('"')[1]}} | Format-List
也可以使用Get-CimInstance来实现相同的效果,参见here了解 CIM 和 WMI 之间的区别。
Get-CimInstance win32_service | ?{$_.Name -like '*sql*'} | select Name, DisplayName, @{Name="Path"; Expression={$_.PathName.split('"')[1]}} | Format-List
关于powershell - 如何使用 PowerShell 提取所有服务的 "Path to executable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449113/