Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Script to install MIM Synchronization Service
<#
.SYNOPSIS
Installs MIM Synchronization Service
Expects the MIM ISO file to install from in the MediaFolder.
Script will ask for ServiceAccount password.
Typically the SQL Server is an SQL Alias
Please update the Parameters region to meet your own needs.
.ToDo
Update to work with gMSA as service account.
#>
PARAM(
[string]$ServiceDomain = "AD",
[string]$SQLServer = "dbFIMSync",
[string]$MediaFolder = "D:\Install\Media",
[string]$LogFolder = "D:\Install\Logs"
)
#region Parameters
$SERVICEACCOUNT = "svcFIMSync"
$GROUPADMINS = "$ServiceDomain\FIMSyncAdmins"
$GROUPOPERATORS = "$ServiceDomain\FIMSyncOperators"
$GROUPACCOUNTJOINERS = "$ServiceDomain\FIMSyncJoiners"
$GROUPBROWSE = "$ServiceDomain\FIMSyncBrowse"
$GROUPPASSWORDSET = "$ServiceDomain\FIMSyncPasswordSet"
$SQLDB = "FIMSynchronizationService"
$FIREWALL_CONF = "1"
#endregion Parameters
#region Load ISO
$ISO = (Get-ChildItem $MediaFolder | ?{$_.Name -like '*identity_manager*'}).FullName
if(!$ISO){
"Unable to find Media. Exiting!"
"Press any key to abort!"
$x = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Exit
}
else{
$DriveLetter = (Mount-DiskImage -ImagePath $ISO -PassThru | Get-Volume).DriveLetter
}
#endregion Load ISO
#region Initiate
$SourcePath = "`"" + $DriveLetter + ":\Synchronization Service\Synchronization Service.msi`""
$STORESERVER = $SQLServer
$SERVICEPASSWORD = (Get-Credential -Message $SERVICEACCOUNT -UserName $SERVICEACCOUNT).GetNetworkCredential().Password
$LogFilePath = "$LogFolder\FlowSyncInstallLog.txt"
#endregion Initiate
#region Installation
$ArgumentList = "/qb /i $SourcePath STORESERVER=$STORESERVER SQLDB=$SQLDB SERVICEACCOUNT=$SERVICEACCOUNT SERVICEPASSWORD=$SERVICEPASSWORD SERVICEDOMAIN=$ServiceDomain GROUPADMINS=$GROUPADMINS GROUPOPERATORS=$GROUPOPERATORS GROUPACCOUNTJOINERS=$GROUPACCOUNTJOINERS GROUPBROWSE=$GROUPBROWSE GROUPPASSWORDSET=$GROUPPASSWORDSET FIREWALL_CONF=$FIREWALL_CONF /L*v $LogFilePath"
$result=(Start-Process -FilePath "msiexec.exe" -ArgumentList $ArgumentList -Wait -PassThru).ExitCode
#endregion Installation
#region Result
if($result -eq 0){
"Install completed succesfully."
}
else{
"Some error occured, please check $LogFilePath"
}
#endregion Result
#region CleanUp
Dismount-DiskImage -ImagePath $ISO
#endregion CleanUp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.