52 lines
1.6 KiB
PowerShell
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
|
|
} |