Kerberos/Clear-KerbConfig.ps1
|
function Clear-KerbConfig { <# .SYNOPSIS Clear-KerbConfig clears the selected Microsoft Windows Kerberos configuration value. .DESCRIPTION Clear-KerbConfig clears the backing registry value for the selected configuration. .EXAMPLE Clear-KerbConfig -SupportedEncryptionTypes #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')] param( [switch]$SupportedEncryptionTypes, [switch]$SkewTimeInMinutes, [switch]$LogLevel, [switch]$MaxPacketSize, [switch]$StartupTimeInSeconds, [switch]$KdcWaitTimeInSeconds, [switch]$KdcBackoffTimeInSeconds, [switch]$KdcSendRetries, [switch]$DefaultEncryptionType, [switch]$FarKdcTimeoutInMinutes, [switch]$NearKdcTimeoutInMinutes, [switch]$StronglyEncryptDatagram, [switch]$MaxReferralCount, [switch]$MaxTokenSize, [switch]$SpnCacheTimeoutInMinutes, [switch]$S4UCacheTimeoutInMinutes, [switch]$S4UTicketLifetimeInMinutes, [switch]$ShouldRetryPdc, [switch]$RequestOptions, [switch]$EnableClientIpAddresses, [switch]$TgtRenewalTimeInSeconds, [switch]$AllowTgtSessionKey, [switch]$All ) begin { if (0 -eq $PSBoundParameters.Count) { throw "At least one of the defined parameters must be supplied" } $oldImpact = $ConfirmPreference if ($All) { $ConfirmPreference = 'High' } } process { foreach($parameter in $script:KERBEROS_PARAMETER_MAPPING.Keys) { if ($All -or $PSBoundParameters.ContainsKey($parameter)) { Write-Verbose "Clearing configuration for $parameter" if ($PSCmdlet.ShouldProcess("KerbConfig '$parameter'")) { $script:KERBEROS_PARAMETER_MAPPING[$parameter].Clear() } else { Write-Verbose "Skipping clearing $parameter" } } } } end { if ($oldImpact -ne $ConfirmPreference) { $ConfirmPreference = $oldImpact } } } |