ps/Modules/Alkami.DevOps.Inventory/Public/Get-SystemWebSettingsInventory.ps1
2023-05-30 22:51:22 -07:00

52 lines
1.6 KiB
PowerShell

function Get-SystemWebSettingsInventory {
<#
.SYNOPSIS
Returns an OrderedDictionary that Represents the System Web Settings Inventory.
#>
[CmdletBinding()]
Param()
$logLead = (Get-LogLeadName);
$providerStopWatch = [System.Diagnostics.StopWatch]::StartNew()
$systemWebSettingsDetails = @{
httpRuntime = @{};
processModel = @{}
machineKey = @{};
}
$desiredSystemWebNodes = @{
"httpRuntime" = @{"minFreeThreads" = 0; "minLocalRequestFreeThreads" = 0};
"processModel" = @{"autoConfig" = ""; "maxWorkerThreads" = 0; "maxIoThreads" = 0; "minWorkerThreads" = 0; "minIoThreads" = 0};
"machineKey" = @{"validationKey" = ""; "decryptionKey" = ""; "decryption" = ""};
}
$systemWebSettingsDictionary = New-Object System.Collections.Specialized.OrderedDictionary
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Getting Machine Config Data"
[xml]$machineConfigRaw = Read-MachineConfig
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Machine Config Data Retrieved"
try {
foreach ($nodeKey in $desiredSystemWebNodes.keys) {
$tempXmlNode = ([xml]$machineConfigRaw).SelectNodes("//system.web/$nodeKey")
foreach ($keyname in $desiredSystemWebNodes.$nodeKey.keys) {
$systemWebSettingsDetails.$nodeKey[$keyname] = $tempXmlNode.$keyname
}
}
} catch {
$systemWebSettingsDetails["Error"] = $_.Exception.ToString()
}
$systemWebSettingsDictionary.Add("systemWebSettings", $systemWebSettingsDetails)
Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Provider Complete"
$providerStopWatch.Stop()
return $systemWebSettingsDictionary
}