Abi*_*h A 39 powershell service powershell-2.0 powershell-3.0
Get-Service *sql* | sort DisplayName | out-file c:/servicelist.txt
Run Code Online (Sandbox Code Playgroud)
我有一个单行PowerShell脚本来提取我本地机器上运行的所有服务的列表,现在,除了显示"Status","Name"和"DisplayName"之外,我还想显示"可执行文件的路径"
Dav*_*tin 53
我想你需要求助于WMI:
Get-WmiObject win32_service | ?{$_.Name -like '*sql*'} | select Name, DisplayName, State, PathName
Run Code Online (Sandbox Code Playgroud)
更新 如果要对所选数据执行某些操作,可以使用此处所述的计算属性.
例如,如果您只想在路径名的引号内使用文本,则可以拆分双引号并获取数组项1:
Get-WmiObject win32_service | ?{$_.Name -like '*sql*'} | select Name, DisplayName, @{Name="Path"; Expression={$_.PathName.split('"')[1]}} | Format-List
Run Code Online (Sandbox Code Playgroud)
Mat*_*ger 14
由于Get-WmiObject已在 PowerShell Core 中弃用,您可以使用
Get-CimInstance -ClassName win32_service | ?{$_.Name -match '^sql'} | Select Name, DisplayName, State, PathName >> C:\temp\sqlservices.txt
Run Code Online (Sandbox Code Playgroud)
反而。
如果您不需要检查正则表达式,您也可以使用该-Filter参数:
Get-CimInstance -ClassName win32_service -Filter "Name like 'sql%'" | Select Name, DisplayName, State, PathName >> C:\temp\sqlservices.txt
Run Code Online (Sandbox Code Playgroud)
小智 6
WMI 查询的变体可能更快(我只需要为 SCCM 客户端执行此操作)
$SQLService=(get-wmiobject -Query 'Select * from win32_service where Name like "*SQL*"') | Select-object Name, DisplayName, State, Pathname
Run Code Online (Sandbox Code Playgroud)
另一个技巧是如果您想要没有双引号的路径名(以便您可以对它们进行操作),则捕获多个 SQL 结果
$SQLService | Select-Object Name, DisplayName, State, @{Name='PathName';Expression=$_.Pathname.replace('"','')}
Run Code Online (Sandbox Code Playgroud)
-query在get-wmiobject(or get-ciminstance) 中使用的最大优势是处理速度。较旧的示例获取完整列表,然后进行过滤,而后者获取非常直接的列表。
只需增加两美分:)
干杯!充满活力的技术肖恩
| 归档时间: |
|
| 查看次数: |
43906 次 |
| 最近记录: |