Public/Remove-ARCMachineConfiguration.ps1
|
Function Remove-ARCMachineConfiguration{ [CmdletBinding()] param ( [Parameter()] [string] $PolicyName, [Parameter()] [string] $ResourceGroupName, [Parameter()] [string] $ARCMachineName ) Begin{ Write-Verbose "Intializing the function $($MyInvocation.MyCommand.Name)." try { $MachineConfigurations = Get-AzGuestConfigurationAssignment -ResourceGroupName $ResourceGroupName -MachineName $ARCMachineName -ErrorAction Stop } catch { Write-Error "An error occured while getting the Guest Configuration assignments for the ARC resource $ARCMachineName from the ResourceGroup $ResourceGroupName." Break } } Process{ If($MachineConfigurations){ Write-Verbose "[$($MachineConfigurations.Count)] Machine Configurations are found for the ARC Resource $ARCMachineName." $PolicyMachineConfiguration = $MachineConfigurations | ForEach-Object{ $_.Name | Where-Object {$_ -match "^$PolicyName$*"} } if($PolicyMachineConfiguration) { Write-Verbose "Found Machine configuration $($PolicyMachineConfiguration) corresponding to the policy $PolicyName." try { Write-Verbose "Removing the Machine configuration $($PolicyMachineConfiguration) from the ARC Machine $ARCMachineName." Remove-AzGuestConfigurationAssignment -Name $PolicyMachineConfiguration -ResourceGroupName $ResourceGroupName -MachineName $ARCMachineName -ErrorAction Stop Write-Output "Successfully removed Machine configuration $($PolicyMachineConfiguration) from the ARC Machine $ARCMachineName." } catch { Write-Verbose "An error occured while removing the Machine configuration $($PolicyMachineConfiguration) from the ARC Machine $ARCMachineName. Error $($_.Exception.Message)." } } else { Write-Warning "No Machine configuration $($PolicyMachineConfiguration) corresponding to the policy $PolicyName." Write-Verbose "No Machine configuration $($PolicyMachineConfiguration) corresponding to the policy $PolicyName." } } else { Write-Warning "No Machine Configuration is found for the ARC Resource $ARCMachineName." Write-Verbose "No Machine Configuration is found for the ARC Resource $ARCMachineName." } } End{ Write-Verbose "Completed the execution of function $($MyInvocation.MyCommand.Name)." } } |