Läs på engelska

Dela via


Teknisk referens för Windows PowerShell Connector

I den här artikeln beskrivs Windows PowerShell Connector. Artikeln gäller för följande produkter:

  • Microsoft Identity Manager 2016 (MIM2016)

För MIM2016 är anslutningsappen tillgänglig som en nedladdning från Microsoft Download Center.

Översikt över PowerShell-anslutningsprogrammet

Med PowerShell Connector kan du integrera synkroniseringstjänsten med externa system som erbjuder Windows PowerShell-baserade API:er. Anslutningsappen ger en brygga mellan funktionerna i det anropsbaserade ramverket för utökningsbar anslutningshanteringsagent 2 (ECMA2) och Windows PowerShell. Mer information om ECMA-ramverket finns i Extensible Connectivity 2.2 Management Agent Reference.

Förutsättningar

Innan du använder anslutningsappen kontrollerar du att du har följande på synkroniseringsservern:

  • Microsoft .NET 4.6.2 Framework eller senare
  • Windows PowerShell 2.0, 3.0 eller 4.0

Körningsprincipen på synkroniseringstjänstens server måste konfigureras så att anslutningsappen kan köra Windows PowerShell-skript. Om inte skripten som anslutningsappen kör är digitalt signerade konfigurerar du körningsprincipen genom att köra det här kommandot:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

För att distribuera den här anslutningsappen krävs ett eller flera PowerShell-skript. Vissa Microsoft-produkter kan tillhandahålla skript för användning med den här connectorn, och supportuttalandet för dessa skript skulle tillhandahållas av den produkten. Om du utvecklar egna skript för användning med den här anslutningsappen måste du känna till api:et Extensible Connectivity Management Agent för att utveckla och underhålla skripten. Om du integrerar med tredjepartssystem med dina egna skript i en produktionsmiljö rekommenderar vi att du arbetar med tredjepartsleverantören eller en distributionspartner för att få hjälp, vägledning och support för den här integreringen.

Skapa en ny anslutning

Om du vill skapa en Windows PowerShell-anslutning i synkroniseringstjänsten måste du ange en serie Windows PowerShell-skript som kör de steg som begärs av synkroniseringstjänsten. Beroende på vilken datakälla du ansluter till och vilka funktioner du behöver varierar de skript som du måste implementera. Det här avsnittet beskriver vart och ett av de skript som kan implementeras och när de krävs.

Windows PowerShell-anslutningsappen är utformad för att lagra vart och ett av skripten i databasen för synkroniseringstjänsten. Även om det är möjligt att köra skript som lagras i filsystemet är det enklare att infoga brödtexten för varje skript direkt i anslutningsappens konfiguration.

Om du vill skapa en PowerShell-anslutning i Synchronization Service, välj Management Agent och Skapa. Välj PowerShell (Microsoft) Connector.

Skapa kontakt

Uppkoppling

Ange konfigurationsparametrar för anslutning till ett fjärrsystem. Dessa värden lagras säkert av synkroniseringstjänsten och görs tillgängliga för dina Windows PowerShell-skript när anslutningsappen körs.

sv-SE: MIM Sync-anslutningens konfigurationssida

Du kan konfigurera följande anslutningsparametrar:

Anslutning

Parameter Standardvärde Avsikt
Server <Tomt> Servernamn som anslutningsappen ska ansluta till.
Domän <Tomt> Domän för autentiseringsuppgifterna som ska lagras för användning när anslutningsappen körs.
Användare <Tomt> Användarnamn för autentiseringsuppgifterna som ska lagras för användning när anslutningsappen körs.
Lösenord <Tomt> Lösenordet för autentiseringsuppgifterna som ska lagras för användning när anslutningsappen körs.
Personifiera anslutningskonto Falsk När det är sant kör synkroniseringstjänsten Windows PowerShell-skripten i kontexten för de angivna autentiseringsuppgifterna. När det är möjligt rekommenderar vi att parametern $Credentials skickas till och används av varje skript i stället för imitering. Mer information om ytterligare behörigheter som krävs för att använda det här alternativet finns i Ytterligare konfiguration för personifiering.
Läs in användarprofil vid imitation Falsk Instruerar Windows att läsa in användarprofilen för anslutningsappens autentiseringsuppgifter under personifieringen. Om den personifierade användaren har en nätverksprofil läser inte anslutningsappen in roamingprofilen. Mer information om ytterligare behörigheter som krävs för att använda den här parametern finns i Ytterligare konfiguration för personifiering.
Inloggningstyp vid personifiering Ingen Typ av inloggning vid impersonation. Mer information finns i dwLogonType-dokumentationen.
Endast signerade skript Falsk Om det är sant verifierar Windows PowerShell-anslutningsappen att varje skript har en giltig digital signatur. Om det är falskt kontrollerar du att synkroniseringstjänstserverns Windows PowerShell-körningsprincip är RemoteSigned eller Unrestricted.

Gemensam Modul
Med anslutningsappen kan du lagra en delad Windows PowerShell-modul i konfigurationen. När anslutningsappen kör ett skript extraheras Windows PowerShell-modulen till filsystemet så att den kan importeras av varje skript.

För import-, export- och lösenordssynkroniseringsskript extraheras den gemensamma modulen till anslutningsappens MAData-mapp. För skript för schema-, validerings-, hierarki- och partitionsidentifiering extraheras den gemensamma modulen till mappen %TEMP%. I båda fallen namnges det extraherade Common Module-skriptet enligt inställningen för Common Module Script Name.

Om du vill läsa in en modul med namnet FIMPowerShellConnectorModule.psm1 från mappen MAData använder du följande instruktion: Import-Module (Join-Path -Path [Microsoft.MetadirectoryServices.MAUtils]::MAFolder -ChildPath "FIMPowerShellConnectorModule.psm1")

Om du vill läsa in en modul med namnet FIMPowerShellConnectorModule.psm1 från mappen %TEMP% använder du följande instruktion: Import-Module (Join-Path -Path $env:TEMP -ChildPath "FIMPowerShellConnectorModule.psm1")

Parameterverifiering
Valideringsskriptet är ett valfritt Windows PowerShell-skript som kan användas för att säkerställa att konfigurationsparametrarna för anslutningsappen som tillhandahålls av administratören är giltiga. Validering av server, autentiseringsuppgifter för anslutning och anslutningsparametrar är vanliga användningar av valideringsskriptet. Verifieringsskriptet anropas när följande flikar och dialogrutor har ändrats:

  • Uppkoppling
  • Globala parametrar
  • Partitionskonfiguration

Valideringsskriptet tar emot följande parametrar från anslutningsappen:

Namn Datatyp Beskrivning
Konfigurationsparametersida ConfigParameterPage Konfigurationsfliken eller dialogrutan som utlöste valideringsbegäran.
Konfigurationsparametrar KeyedCollection [string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.

Valideringsskriptet ska returnera ett enda ParameterValidationResult-objekt till pipelinen.

SchéUpptäckt
Schemadetekteringsskriptet är obligatoriskt. Det här skriptet returnerar de objekttyper, attribut och attributbegränsningar som synkroniseringstjänsten använder när du konfigurerar attributflödesregler. Skriptet schemaidentifiering körs när anslutningsappen skapas och fyller i anslutningsappens schema. Den används också av åtgärden Uppdatera schema i Synkroniseringstjänsthanteraren.

Skriptet för schemaidentifiering tar emot följande parametrar från anslutningsappen:

Namn Datatyp Beskrivning
Konfigurationsparametrar KeyedCollection [string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.

Skriptet måste returnera ett enda Schema-objekt till pipelinen. Schemaobjektet består av SchemaType objekt som representerar objekttyper (till exempel användare och grupper). SchemaType-objektet innehåller en samling SchemaAttribute objekt som representerar attributen (till exempel förnamn, efternamn och postadress) av typen.

ytterligare parametrar
Förutom standardkonfigurationsinställningarna kan du definiera ytterligare anpassade konfigurationsinställningar som är specifika för instansen av anslutningsappen. Dessa parametrar kan anges på nivåerna för kopplare, partition eller körningssteg och nås från det relevanta Windows PowerShell-skriptet. Anpassade konfigurationsinställningar kan lagras i synkroniseringstjänstens databas i oformaterat textformat eller så kan de vara krypterade. Synkroniseringstjänsten krypterar och dekrypterar automatiskt säkra konfigurationsinställningar vid behov.

Om du vill ange anpassade konfigurationsinställningar separerar du namnet på varje parameter med kommatecknet ( , ).

För att få åtkomst till anpassade konfigurationsinställningar från ett skript måste du suffixa namnet med understrecket ( _ ) och parameterns omfång (Global, Partition eller RunStep). Om du till exempel vill komma åt parametern Global FileName använder du det här kodfragmentet: $ConfigurationParameters["FileName_Global"].Value

Förmågor

Fliken Funktioner i Hanteringsagentdesignern definierar anslutningsappens beteende och funktioner. Det går inte att ändra de val som gjorts på den här fliken när anslutningsappen har skapats. I den här tabellen visas kapacitetsinställningarna.

fliken Funktioner för MIM-synkroniseringsanslutning

Kapacitet Beskrivning
unikt namnformat Anger om anslutningen stöder distingerade namn och i så fall vilken stil.
Exporttyp Avgör vilken typ av objekt som visas för exportskriptet.
  • AttributeReplace – innehåller den fullständiga uppsättningen värden för ett flervärdesattribut när attributet ändras.
  • AttributeUpdate – innehåller endast delta till ett flervärdesattribut när attributet ändras.
  • MultivaluedReferenceAttributeUpdate – innehåller en fullständig uppsättning värden för icke-referensattribut med flera värden och endast delta för referensattribut med flera värden.
  • ObjectReplace – innehåller alla attribut för ett objekt när ett attribut ändras
  • datanormalisering Instruerar synkroniseringstjänsten att normalisera fästpunktsattribut innan de tillhandahålls till skript.
    objektbekräftelse Konfigurerar det väntande importbeteendet i synkroniseringstjänsten.
  • Normal – standardbeteende som förväntar sig att alla exporterade ändringar bekräftas via import
  • NoDeleteConfirmation – när ett objekt tas bort genereras ingen väntande import.
  • NoAddAndDeleteConfirmation – när ett objekt skapas eller tas bort genereras ingen väntande import.
  • Använda DN som fästpunkt Om formatmallen Unikt namn är inställt på LDAP är fästpunktsattributet för anslutningsutrymmet också det unika namnet.
    Samtidiga operationer av flera kopplingar När det är markerat kan flera Windows PowerShell-anslutningar köras samtidigt.
    Partitioner När den är markerad stöder anslutningen flera partitioner och upptäckt av partitioner.
    Hierarki När den är markerad stöder anslutningen en hierarkisk struktur i LDAP-liknande format.
    Aktivera import När den är markerad importerar anslutningsappen data via importskript.
    Aktivera deltaimport När den är markerad kan anslutningsappen begära delta från importskripten.
    Aktivera exportfunktion När den är markerad exporterar anslutningsappen data via exportskript.
    Aktivera fullständig export När kontrollen är markerad stöder exportskripten export av hela anslutningsutrymmet. Om du vill använda det här alternativet måste även Aktivera export kontrolleras.
    Inga referensvärden i första exportpasset När det är markerat exporteras referensattribut i ett andra exportpass.
    Aktivera objektnamnbyte När den är markerad kan distingerade namn ändras.
    Ta bort-lägg till som ersättning När kontrollrutan är markerad exporteras åtgärderna radera-lägg till som en enda ersättning.
    Aktivera lösenordsåtgärder När det är markerat stöds skript för lösenordssynkronisering.
    Aktivera exportlösenord i första passet När det är markerat exporteras lösenord som angetts under etableringen när objektet skapas.

    Globala parametrar

    På fliken Globala parametrar i Hanteringsagentdesignern kan du konfigurera De Windows PowerShell-skript som körs av anslutningsappen. Du kan också konfigurera globala värden för anpassade konfigurationsinställningar som definierats på fliken Anslutning.

    Partition Discovery
    En partition är ett separat namnområde i ett delat schema. I Active Directory är till exempel varje domän en partition i en skog. En partition är den logiska gruppering för import- och exportåtgärder. Import och export har partition som kontext och alla åtgärder sker i den här kontexten. Partitioner ska representera en hierarki i LDAP. Det unika namnet på en partition används vid import för att verifiera att alla returnerade objekt ligger inom omfånget för en partition. Det distingerade namnet på partitionen används också under tillhandahållandet från metaversen till kopplingsutrymmet för att avgöra vilken partition ett objekt ska associeras med under exporten.

    Skriptet för partitionsidentifiering tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.

    Skriptet måste returnera antingen ett enda Partition-objekt eller en lista[T] över partitionsobjekt till pipelinen.

    Hierarkiupptäckning
    Hierarkiidentifieringsskriptet används endast när funktionen Distinguished Name Style är LDAP. Skriptet används för att du ska kunna bläddra och välja en uppsättning containrar som anses vara inom eller utanför omfånget för import- och exportåtgärder. Skriptet ska endast tillhandahålla en lista över noder som är direkta underordnade till rotnoden som levereras till skriptet.

    Hierarkiidentifieringsskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[sträng, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    ParentNode HierarchyNode Rotnoden i hierarkin där skriptet ska returnera direkta underordnade objekt.

    Skriptet måste returnera ett enskilt underordnat HierarchyNode-objekt eller en lista[T] över underordnade HierarchyNode-objekt till pipelinen.

    Importera

    Anslutningsappar som stöder importåtgärder måste implementera tre skript.

    Börja importera
    Startimportskriptet körs i början av ett importkörningssteg. Under det här steget kan du upprätta en anslutning till källsystemet och utföra förberedande steg innan du importerar data från det anslutna systemet.

    Startimportskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[sträng, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    OpenImportConnectionRunStep OpenImportConnectionRunStep Informerar skriptet om typen av importkörning (delta eller fullständig), partition, hierarki, vattenstämpel och förväntad sidstorlek.
    Typer Skema Schema för det anslutningsutrymme som importeras.

    Skriptet måste returnera ett enda OpenImportConnectionResults-objekt till pipelinen, till exempel: Write-Output (New-Object Microsoft.MetadirectoryServices.OpenImportConnectionResults)

    Importera data
    Importdataskriptet anropas av anslutningsappen tills skriptet anger att det inte finns några fler data att importera. Windows PowerShell-anslutningen har en sidstorlek på 9 999 objekt. Om skriptet returnerar fler än 9 999 objekt för import måste du ha stöd för sidindelning. Anslutningsappen exponerar en anpassad dataegenskap som du kan använda för att lagra en vattenstämpel så att skriptet fortsätter importera objekt där det slutade varje gång importdataskriptet anropas.

    Importdataskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    GetImportEntriesRunStep ImportRunStep Innehåller vattenstämpeln (CustomData) som kan användas vid sidimport och deltaimport.
    OpenImportConnectionRunStep OpenImportConnectionRunStep Informerar skriptet om typen av importkörning (delta eller fullständig), partition, hierarki, vattenstämpel och förväntad sidstorlek.
    Typer Skema Schema för det anslutningsutrymme som importeras.

    Importdataskriptet måste skriva ett listobjekt[CSEntryChange] till pipelinen. Den här samlingen består av CSEntryChange-attribut som representerar varje objekt som importeras. Under en fullständig importkörning bör den här samlingen ha en fullständig uppsättning CSEntryChange-objekt som har alla attribut för varje objekt. Under en deltaimport ska CSEntryChange-objektet antingen innehålla attributnivådelta för varje objekt som ska importeras eller en fullständig representation av de objekt som har ändrats (Ersätt läge).

    Avsluta import
    När importkörningen är slut körs skriptet Slutimport. Det här skriptet bör utföra alla nödvändiga rensningsuppgifter (till exempel stänga anslutningar till system och svara på fel).

    Skriptet för slutimport tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    OpenImportConnectionRunStep OpenImportConnectionRunStep Informerar skriptet om typen av importkörning (delta eller fullständig), partition, hierarki, vattenstämpel och förväntad sidstorlek.
    StängImportAnslutningKörsteg CloseImportConnectionRunStep Informerar skriptet om orsaken till att importen avslutades.

    Skriptet måste returnera ett enda CloseImportConnectionResults-objekt till pipelinen, till exempel: Write-Output (New-Object Microsoft.MetadirectoryServices.CloseImportConnectionResults)

    Export

    Anslutningsprogram som har stöd för Export måste implementera tre skript som är identiska med anslutningsappens importarkitektur.

    Börja exportera
    Startexportskriptet körs i början av ett exportkörningssteg. Under det här steget kan du upprätta en anslutning till källsystemet och utföra eventuella förberedande steg innan du exporterar data till det anslutna systemet.

    Startexportskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar NyckladSamling[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    OpenExportConnectionRunStep ÖppnaExportanslutningsKörsteg Informerar skriptet om typen av exportkörning (delta eller fullständig), partition, hierarki och förväntad sidstorlek.
    Typer Skema Schema för det anslutningsutrymme som exporteras.

    Skriptet ska inte returnera några utdata till pipelinen.

    Exportera data
    Synkroniseringstjänsten anropar skriptet Exportera data så många gånger som krävs för att bearbeta alla väntande exporter. Om kontaktytan har fler väntande exporter än kontaktens sidstorlek kan exportdataskriptet anropas flera gånger och eventuellt flera gånger för samma objekt.

    Exportdataskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    CSEntries IListCSEntryChange Lista över alla anslutningsobjekt med väntande exporter som ska bearbetas under det här passet.
    OpenExportConnectionRunStep OpenExportConnectionRunStep Informerar skriptet om typen av exportkörning (delta eller fullständig), partition, hierarki och förväntad sidstorlek.
    Typer Skema Schema för det anslutningsutrymme som exporteras.

    Exportdataskriptet måste returnera ett PutExportEntriesResults-objekt till pipelinen. Det här objektet behöver inte innehålla resultatinformation för varje exporterad anslutningsapp om inte ett fel eller en ändring av fästpunktsattributet inträffar. Om du till exempel vill returnera ett PutExportEntriesResults-objekt till pipelinen: Write-Output (New-Object Microsoft.MetadirectoryServices.PutExportEntriesResults)

    Avsluta export
    Vid exportkörningens slut körs skriptet End Export. Det här skriptet bör utföra alla nödvändiga rensningsuppgifter (till exempel stänga anslutningar till system och svara på fel).

    Slutexportskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    OpenExportConnectionRunStep OpenExportConnectionRunStep Informerar skriptet om typen av exportkörning (delta eller fullständig), partition, hierarki och förväntad sidstorlek.
    AvslutaExportAnslutningKörSteg CloseExportConnectionRunStep Informerar skriptet om orsaken till att exporten avslutades.

    Skriptet ska inte returnera några utdata till pipelinen.

    Lösenordssynkronisering

    Windows PowerShell-anslutningsappar kan användas som mål för lösenordsändringar/återställningar.

    Lösenordsskriptet tar emot följande parametrar från anslutningsappen:

    Namn Datatyp Beskrivning
    Konfigurationsparametrar KeyedCollection[string, ConfigParameter] Tabell med konfigurationsparametrar för anslutningsappen.
    Behörighet PSCredential Innehåller eventuella autentiseringsuppgifter som angetts av administratören på fliken Anslutning.
    Avdelning Avdelning Katalogpartition som CSEntry finns i.
    CSEntry CSEntry Kopplingsutrymmespost för objektet som tar emot en lösenordsändring eller återställning.
    Operationstyp Sträng Anger om åtgärden är en återställning (SetPassword) eller en ändring (ChangePassword).
    Lösenordsalternativ Lösenordsalternativ Flaggor som anger det avsedda beteendet för lösenordsåterställning. Den här parametern är endast tillgänglig om OperationType är SetPassword.
    GamlaLösenordet Sträng Fyllt med objektets gamla lösenord för lösenordsändringar. Den här parametern är endast tillgänglig om OperationType är ChangePassword.
    Nytt Lösenord Sträng Fyllt med objektets nya lösenord som skriptet ska ange.

    Lösenordsskriptet förväntas inte returnera några resultat till Windows PowerShell-pipelinen. Om ett fel uppstår i lösenordsskriptet bör skriptet utlösa något av följande undantag för att informera synkroniseringstjänsten om problemet:

    Exempel på kontakter

    En fullständig översikt över tillgängliga exempelanslutningar finns i Windows PowerShell Connector Sample Connector Collection.

    Övriga anteckningar

    Ytterligare konfiguration för personifiering

    Bevilja den användare som personifieras följande behörigheter på servern för synkroniseringstjänsten:

    Läsbehörighet till följande registernycklar:

    • HKEY_USERS\[SynchronizationServiceServiceAccountSID]\Software\Microsoft\PowerShell
    • HKEY_USERS\[SynchronizationServiceServiceAccountSID]\Miljö

    Kör följande PowerShell-kommandon för att fastställa säkerhetsidentifieraren (SID) för tjänstkontot för synkroniseringstjänsten:

    $account = New-Object System.Security.Principal.NTAccount "<domain>\<username>"
    $account.Translate([System.Security.Principal.SecurityIdentifier]).Value
    

    Läs åtkomst till följande filsystemmappar:

    • %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions
    • %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\ExtensionsCache
    • %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\MaData\{ConnectorName}

    Ersätt platshållaren {ConnectorName} med namnet på Windows PowerShell-anslutningsappen.

    Felsökning