Private/Functions/Update-SPMTConfiguration.ps1
#Upgrades the configuration file with new schema changes ## CURRENT SCHEMA VERSION: 3 #Don't forget to update Schema Version in Get-SPMTSchemaVersion, Set-Company, and the Reference Object function Update-SPMTConfiguration { [cmdletBinding()] Param() #Check if schema version is < 1 if(!$Script:Config.ContainsKey('SchemaVersion')) { $Script:Config.Add('SchemaVersion','1') } if($Script:Config.SchemaVersion -eq 1) { $DefaultComplainceCenterUri = 'https://ps.compliance.protection.outlook.com/powershell-liveid/' $DefaultAzureADAuthUri = 'https://login.windows.net/common' ForEach ($CompanyName in $Script:Config.Companies.Keys) { if($Script:Config.Companies.$CompanyName.O365) { $O365Obj = $Script:Config.Companies.$CompanyName.O365 if(!$O365Obj.ContainsKey('SharePointOnlineUri')) { $O365Obj.Add('SharePointOnlineUri',$false) #Added because missing } if(!$O365Obj.ContainsKey('ComplianceCenterUri')) { $O365Obj.Add('ComplianceCenterUri',$DefaultComplainceCenterUri) } if(!$O365Obj.ContainsKey('AzureADAuthorizationEndpointUri')) { $O365Obj.Add('AzureADAuthorizationEndpointUri',$DefaultAzureADAuthUri) } } } $Script:Config.SchemaVersion = 2 } if($Script:Config.SchemaVersion -eq 2) { ForEach ($CompanyName in $Script:Config.Companies.Keys) { if($Script:Config.Companies.$CompanyName.O365) { $O365Obj = $Script:Config.Companies.$CompanyName.O365 if(!$O365Obj.ContainsKey('DirSync')) { $O365Obj.Add('DirSync',$false) } #Remove Old values if($O365Obj.ContainsKey('DirSyncHost')) { $O365Obj.Remove('DirSyncHost') } if($O365Obj.ContainsKey('DirSyncDC')) { $O365Obj.Remove('DirSyncDC') } } } $Script:Config.SchemaVersion = 3 } if($Script:Config.SchemaVersion -eq 3) { #Reserved for future updates } Write-SPMTConfiguration } |