Using PowerShell to disable provisioning
Summary
This script disables provisioning on your FIM server.
Important
To use this script, you need to add the FIM service account to the FIMSyncAdmins group!
#----------------------------------------------------------------------------------------------------------
set-variable -name URI -value "http://localhost:5725/resourcemanagementservice' " -option constant
#----------------------------------------------------------------------------------------------------------
if(@(get-pssnapin | where-object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {add-pssnapin FIMAutomation}
clear-host
$exportObject = export-fimconfig -uri $URI `
–onlyBaseResources `
-customconfig ("/mv-data") `
-ErrorVariable Err `
-ErrorAction SilentlyContinue
if($Err){throw $Err}
if($exportObject -eq $null) {throw "There is no metaverse data configured on your system!"}
$provisioningState = ($exportObject.ResourceManagementObject.ResourceManagementAttributes | `
Where-Object {$_.AttributeName -eq "SyncConfig-provisioning-type"}).Value
if(0 -eq [String]::Compare($provisioningState,"none", $true))
{throw "L:Provisioning is already disabled"}
$importChange = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportChange
$importChange.Operation = 1
$importChange.AttributeName = "SyncConfig-provisioning-type"
$importChange.AttributeValue = "none"
$importChange.FullyResolved = 1
$importChange.Locale = "Invariant"
$importObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject
$importObject.ObjectType = $exportObject.ResourceManagementObject.ObjectType
$importObject.TargetObjectIdentifier = $exportObject.ResourceManagementObject.ObjectIdentifier
$importObject.SourceObjectIdentifier = $exportObject.ResourceManagementObject.ObjectIdentifier
$importObject.State = 1
$importObject.Changes = (,$importChange)
$importObject | Import-FIMConfig -uri $URI -ErrorVariable Err -ErrorAction SilentlyContinue
if($Err){throw $Err}
write-host "`nProvisioning disabled successfully`n"
#----------------------------------------------------------------------------------------------------------
trap
{
$exMessage = $_.Exception.Message
if($exMessage.StartsWith("L:"))
{write-host "`n" $exMessage.substring(2) "`n" -foregroundcolor white -backgroundcolor darkblue}
else {write-host "`nError: " $exMessage "`n" -foregroundcolor white -backgroundcolor darkred}
Exit 1
}
#----------------------------------------------------------------------------------------------------------
Go to the FIM ScriptBox
Markus Vilcinskas, Knowledge Engineer, Microsoft Corporation
December 24th, 2009 9:23pm