Private/Set-ADFSTkInstitutionConfiguration.ps1
function Set-ADFSTkInstitutionConfiguration { [CmdletBinding(SupportsShouldProcess=$true)] param( [Parameter(Mandatory=$true, Position=0)] $ConfigurationItem, [Parameter(Mandatory=$true, Position=1)] [ValidateSet('Enabled', 'Disabled')] $Status ) if ([string]::IsNullOrEmpty($Global:ADFSTkPaths)) { $Global:ADFSTkPaths = Get-ADFSTKPaths } if (Test-Path $Global:ADFSTkPaths.mainConfigFile) { [xml]$config = Get-Content $Global:ADFSTkPaths.mainConfigFile if ([string]::IsNullOrEmpty($config.Configuration.ConfigFiles)) { Write-ADFSTkLog (Get-ADFSTkLanguageText cFileDontExist -f $Global:ADFSTkPaths.mainConfigFile) -MajorFault } $selectedConfigItem = $config.Configuration.ConfigFiles.ConfigFile | ? InnerText -eq $ConfigurationItem if ([string]::IsNullOrEmpty($selectedConfigItem)) { Write-ADFSTkLog (Get-ADFSTkLanguageText mainconfConfItemNotFound -f $Global:ADFSTkPaths.mainConfigFile) -MajorFault } else { if ($Status -eq 'Enabled') { $selectedConfigItem.enabled = 'true' } else { $selectedConfigItem.enabled = 'false' } } } else { Write-ADFSTkLog (Get-ADFSTkLanguageText mainconfADFSTkConfigFileNotFound -f $Global:ADFSTkPaths.mainConfigFile) -MajorFault } #Don't save the configuration file if -WhatIf is present if($PSCmdlet.ShouldProcess($Global:ADFSTkPaths.mainConfigFile,"Save")) { try { $config.Save($Global:ADFSTkPaths.mainConfigFile) Write-ADFSTkLog (Get-ADFSTkLanguageText mainconfChangedSuccessfully -f $Global:ADFSTkPaths.mainConfigFile) } catch { throw $_ } } } |