Skip to content

Instantly share code, notes, and snippets.

View KentNordstrom's full-sized avatar

Kent Nordström KentNordstrom

View GitHub Profile
@KentNordstrom
KentNordstrom / BulkUpdateFromCsv.ps1
Last active June 6, 2022 19:02
Bulk update objects in FIM/MIM based on CSV file
<#
.SYNOPSIS
Example script to bulk update users from CSV file.
The CSV file needs to have columnnames in row 1.
Columnnames need to correspond to the attribute name in FIM/MIM.
The column specified as "anchor" will not be updated all other columns will be updated based on content in csv file.
Multivalue and Reference data types are not supported in this version.
The script requires that the Lithnet Power Shell module is installed on the computer running the script.
The account running the script requires write permission to all attributes in the csv file except for the anchor attribute.
#>
@KentNordstrom
KentNordstrom / SetDBAlias.ps1
Created March 16, 2017 13:31
Add/Update your SQL Aliases using PowerShell
<#
.SYNOPSIS
This script adds/updates SQL Aliases on the local machine.
It can be implemented as function in your deployment scripts when installing FIM/MIM
or other application using SQL Aliases.
#>
PARAM([string]$AliasName,[string]$TargetServer,[string]$TargetPort="1433")
#Alias to be added to local machine
$dbAlias = "DBMSSOCN,$TargetServer,$TargetPort"
@KentNordstrom
KentNordstrom / RemoveMultiValueValues.ps1
Last active November 12, 2018 18:04
Remove Values from MultiValue Attribute
<#
.SYNOPSIS
Script to remove values from MultiValue attribute based on search criteria.
#>
PARAM(
[string]$MultiValueAttribute = 'emailAlias',
[ValidateSet("StartsWith","EndsWith","Equals")]
[string]$SearchType,
[string]$SearchValue = '@domain.onmicrosoft.com',
@KentNordstrom
KentNordstrom / BeginImport.ps1
Created April 15, 2018 14:43
Use the Microsoft Generic PowerShell Connector to connect to MS Graph
param (
[System.Collections.ObjectModel.KeyedCollection[[string], [Microsoft.MetadirectoryServices.ConfigParameter]]] $ConfigParameters,
[PSCredential] $PSCredential,
[Microsoft.MetadirectoryServices.OpenImportConnectionRunStep] $OpenImportConnectionRunStep,
[Microsoft.MetadirectoryServices.Schema] [ValidateNotNull()] $Schema
)
[string]$watermark = $OpenImportConnectionRunStep.CustomData #Used if Delta Import
if($OpenImportConnectionRunStep.ImportType -eq 'Delta' -and !$watermark){throw ("Full Import Required. No watermark found.")}
@KentNordstrom
KentNordstrom / CreateSyncStatisticDB.ps1
Last active April 22, 2018 10:08
Scripts to save synchronization statistics (Pending Exports) to SQL
<#
.SYNOPSIS
Script that creates SQL DB to store Pending Exports in MIM MAs into SQL for Statistical analysis.
#>
PARAM([string]$SQLServer = "dbFIMSync", [string]$DBName = "FIMSyncStatistics",[string]$ScheduleAccount="AD\svcMIMAdmin")
#region Modules
Import-Module LithnetMIISAutomation
Import-Module SqlServer
@KentNordstrom
KentNordstrom / EnableHybridReportingInMIM.ps1
Created May 3, 2018 19:14
Enable Hybrid Reporting in MIM 2016 without installing the MIMReportingAgent
<#
.SYNOPSIS
Script to manually configure MIM 2016 Hybrid Reporting without installing the Agent as described in
https://docs.microsoft.com/en-us/microsoft-identity-manager/working-with-identity-manager-hybrid-reporting
#>
# Step 1. Create the EventLog to store the MIM Request Events in.
New-EventLog -LogName "Identity Manager Request Log" -Source "Microsoft.IdentityManagement.Service"
# Step 2. Add hybrid reporting setting in FIMService config file. Setting hybridReportingRequestLoggingEnabled="true"
@KentNordstrom
KentNordstrom / WaitForWF.ps1
Created May 3, 2018 19:47
A script that checks if Requests to the FIMService are still in PostProcessing mode.
<#
.SYNOPSIS
Script that waits for WF triggered by requests.
Used in Schedules to get dynamic sleep time before importing results after export to FIM Service.
Default Creator is Built-in Synchronization Account.
Requires the LithnetRMA PowerShell module from https://github.com/lithnet/resourcemanagement-powershell
#>
PARAM(
[string]$Creator = 'fb89aefa-5ea1-47f1-8890-abe7797d6497',
@KentNordstrom
KentNordstrom / DeltaRun.ps1
Created May 12, 2018 06:42
Script for running MIM Synchronization Service in a controlled way.
<#
.SYNOPSIS
Script to run Synchronization of MIM.
Requires the LithnetMiisAutomation PowerShell module from https://github.com/lithnet/miis-powershell
.NoExport
Parameter that will disable Exports to External Systems. Only FIMService will receive Exported data.
#>
PARAM([bool]$NoExport=$false)
@KentNordstrom
KentNordstrom / HelloForBusinessPermissionsOnAdminSDHolder.ps1
Created July 17, 2018 07:20
Allow Hello For Business on Protected Accounts by adding permissions to AdminSDHolder container.
<#
.SYNOPSIS
Script to give Azure AD Connect Permission on Protected users that want to use Hello For Business in Hybrid Deployment.
Gives read/write to msDS-KeyCredentialLink and msDS-ExternalDirectoryObjectID by setting permissions on AdminSDHolder container.
#>
PARAM([string]$SyncUser="MSOL_1234ABC56")
$ADDomain = Get-ADDomain
@KentNordstrom
KentNordstrom / InstallMIMUpdate.ps1
Created November 30, 2018 08:28
Install MIM 2016 Updates (Hotfix Rollups)
<#
.SYNOPSIS
Installs updates for MIM Synchronization Service and MIM Service.
.ToDo
Add support for Languagepack updates.
#>
PARAM(
[string]$Version = "4.5.286.0",