PowerShell Function之獲取service信息

PowerShell Function之獲取service信息,很自然會想到這次用到的class是Win32_Service啦~~~~通過前面兩篇function的文章,相信大家都應該屬性套路了,知道怎麼寫這個語句了。那麼,我們究竟需要獲取service的什麼信息呢?

正在運行的?已經停止的?

其實都不是,我們比較關心的是應該運行的且已經停止的服務有哪些。那麼,哪些纔是應該運行的呢?默認來講,啓動模式是自動運行的,就應該是需要運行的。通過運行Get-WmiObject -class Win32_Service看看是否就有我們想要的信息了。如下截圖:

很好,的確就有了StartMode和State。那麼命令很快就可以寫出來了,如下:

了這兩個信息,可能我們還還想知道這個異常的服務是哪個登錄賬號登錄的,那麼還是需要ExpandProperty的屬性哦。

因此,整個腳本如下:

function Get-InfoBadService {
[CmdletBinding()]
param(
[Parameter(Mandatory=$True)][string]$ComputerName
)
$svcs = Get-WmiObject -class Win32_Service -ComputerName $ComputerName -Filter "StartMode='Auto' AND State<>'Running'"
foreach ($svc in $svcs) {
$props = @{'ServiceName'=$svc.name;
'LogonAccount'=$svc.startname;
'DisplayName'=$svc.displayname}
New-Object -TypeName PSObject -Property $props
}
}

發佈了46 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章