Parsers/GPO/Services.ps1
Function Write-GPONTServicesXMLData { [CmdletBinding()] [OutputType([String])] param ( [Parameter(Mandatory = $true)] [System.Xml.XmlElement]$XML ) $serviceHash = @{} $Properties = $XML.Properties $serviceHash.Name = $Properties.serviceName switch ($Properties.ServiceAction) { "STOP" { $serviceHash.State = "Stopped" } "START" { $serviceHash.State = "Running" } Default { Write-Warning "Write-GPONTServicesXMLData:$_ Service Action is not yet supoported." Add-ProcessingHistory -Name "Services(XML): $($Properties.serviceName)" -Type Service -ParsingError } } switch -regex ($Properties.startupType) { "(Automatic|Disabled|Manual)" { $serviceHash.StartupType = $_ } Default { Write-Warning "Write-GPONTServicesXMLData:$_ StartupType is not yet supoported." Add-ProcessingHistory -Name "Services(XML): $($Properties.serviceName)" -Type Service -ParsingError } } switch -regex ($Properties.accountName) { "(LocalService|LocalSystem|NetworkService)" { $serviceHash.BuiltInAccount = $_ } Default { Write-Warning "Write-GPONTServicesXMLData: Alternate Credentials ($_) are not yet supoported." Add-ProcessingHistory -Name "Services(XML): $($Properties.serviceName)" -Type Service -PasrsingError } } Write-DSCString -Resource -Type Service -Name "NTService: $($serviceHash.Name)" -Parameters $serviceHash } Function Write-GPOServiceINFData { [CmdletBinding()] [OutputType([String])] param ( [Parameter(Mandatory = $true)] [string]$Service, [Parameter(Mandatory = $true)] [string]$ServiceData ) $serviceHash = @{} $serviceHash.Name = "" $serviceHash.State = "" $values = $ServiceData -split "," $serviceHash.Name = $Service switch ($values[0]) { "2" { $serviceHash.State = "Running" } "4" { $serviceHash.State = "Stopped" } "3" { $serviceHash.StartupType = "Manual" $serviceHash.Remove("State") } Default { Add-ProcessingHistory -Name "Services(INF): $($serviceHash.Name)" -Type Service -ParsingError } } # Does the Second (if present) value determine starttype? Write-DSCString -Resource -Name "Services(INF): $($serviceHash.Name)" -Type Service -Parameters $serviceHash } |