34 lines
1.2 KiB
PowerShell
34 lines
1.2 KiB
PowerShell
function Get-WindowsServiceInventory {
|
|
<#
|
|
.SYNOPSIS
|
|
Returns an OrderedDictionary that Represents the Windows Service Inventory.
|
|
#>
|
|
|
|
[CmdletBinding()]
|
|
Param()
|
|
|
|
$logLead = (Get-LogLeadName);
|
|
$providerStopWatch = [System.Diagnostics.StopWatch]::StartNew()
|
|
|
|
$serviceDictionary = New-Object System.Collections.Specialized.OrderedDictionary
|
|
|
|
try {
|
|
|
|
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Reading Windows Service Information"
|
|
$services = Get-CIMInstance -Namespace "root\CIMV2" -Class Win32_Service `
|
|
-Property Name, ProcessId, State, StartMode, Status, PathName, StartName, Description, DisplayName `
|
|
| Select-Object -Property Name, ProcessId, State, StartMode, Status, PathName, StartName, Description, DisplayName
|
|
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Windows Service Information Retrieved"
|
|
|
|
$serviceDictionary.Add("Services", $services)
|
|
}
|
|
catch {
|
|
|
|
$serviceDictionary["Error"] = $_.Exception.ToString()
|
|
}
|
|
|
|
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Provider Complete"
|
|
$providerStopWatch.Stop()
|
|
|
|
return $serviceDictionary
|
|
} |