---
sourceDocument: Yokohama-Plattformsicherheit
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/yokohama/platform-security

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama-Plattformsicherheit

ft:clusterId :

    - psec

bundleId :

    - psec

workflow :

    - Platform


---

# LDAP-Skripting

# LDAP-Skripting {#ariaid-title1}

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

Erstellen Sie anwenderdefinierte Transformationszuordnungen, Skripts und Business-Regeln, um Anforderungen beim Importieren von Daten anzugeben.
Anwenderdefinierte Transformationszuordnungen sollten enthalten `Beim Start `Und `OnAfter `Transformationsskripts.  
Die `Beim Start `Das Skript muss aufrufen `LDAPUtils `Skripteinbindung und Protokollierung starten. Beispiel: LDAP-Anwenderimport Transformationszuordnung hat einen `Beim Start `Skript, das diesen Code verwendet:

    gs.include ( "LDAPUtils" ) ; var ldapUtils  = new LDAPUtils ( ) ;
    ldapUtils. setLog (log ) ;

Die `OnAfter `Das Skript muss aufrufen `AddMembers `Funktion. Zum Beispiel:

    ldapUtils.addMembers (source , target ) ;

## Legen Sie deaktivierte Active Directory-Anwender auf „Inaktiv" fest {#ariaid-title2}

Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.

### Vorbereitungen

Erforderliche Rolle: Administrator

### Warum und wann dieser Vorgang ausgeführt wird

Sie können deaktivierte Active Directory-Anwender identifizieren, indem Sie den Wert von überprüfen `UserAccountControl `Attribut. Diese Regel wird ausgeführt, wenn `UserAccountControl `Der Wert ändert und deaktiviert Anwenderaccounts, wenn dies der Fall ist Anwenderaccount-Steuerung Gibt einen deaktivierten AD-Account an.

Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.

### Prozedur

1. Konfigurieren Sie das Anwenderformular, und erstellen Sie ein neues Ganzzahlfeld mit dem Namen Anwenderaccount-Steuerung .
2. Fügen Sie dem neuen Feld eine Zuordnung für userAccountControl (extern) hinzu.
3. Erstellen Sie eine neue Business-Regel mit den folgenden Eigenschaften:  
   {#t_SetDisabledADUsersToInactive__table_uc1_bhs_gq__entry__2}

   | Business-Regelfeld | Wert |
   |-|-|
   | Name | Deaktivieren Sie AD-Anwender |
   | Tabelle | Anwender \[sys_user\] |
   | Wann | vor |
   | Bedingung | current.u_user_account_control.changes() |
   [Tabelle : 1. Deaktivieren Sie die Business-Regel für AD-Anwender]

   {#t_SetDisabledADUsersToInactive__table_uc1_bhs_gq}

   Das Skriptfeld muss Folgendes enthalten:  

       var disabledFlag = 2;
       //perform a bitwise comparison on userAccountControl to see if the 2 bit flag is enabled
       if (current.u_user_account_control & disabledFlag) {
         gs.log('Disabling user: ' + current.user_name + 'userAccountControl=' + current.u_user_account_control);
         current.active='false';
         current.locked_out='true';
       }

## Weisen Sie LDAP-Feldwerte zu {#ariaid-title3}

Sie können ein Skript verwenden, um jedem Feld, für das eine Feldzuordnung vorhanden ist, einen Wert zuzuweisen.
Um beispielsweise dem Feld sys_user.company einen Wert zuzuweisen, erstellen Sie eine Feldzuordnung für das Feld „Unternehmen", und fügen Sie ein Transformationsskript hinzu:  

    company = "Don's Sporting Goods";

## Schließen Sie bestimmte LDAP-Anwender aus {#ariaid-title4}

Wenn Sie die LDAP-Anwenderliste mithilfe von LDAP-Filtereigenschaften nicht vollständig filtern können, können Sie Anwender mit einem Zuordnungsskript ausschließen.
Nachdem Sie die Logik ausgeführt haben, um einen Anwender zu identifizieren, der nicht importiert werden soll, legen Sie das Feld user_Name auf eine leere Zeichenfolge fest, und dieser Anwender wird nicht importiert.  

    user_name='';

Eine Möglichkeit, Anwender zu identifizieren, die herausgefiltert werden sollen, besteht darin, nach einer Zeichenfolge in zu suchen `DistinguishedName `Attribut. Dieses Skript schließt beispielsweise Accounts aus, die sich nicht in einer Anwender-OE befinden. Sie können dieses Skript verwenden, wenn Sie zu viele Anwender haben, die in die LDAP-Option der Ziel-OE aufgenommen werden können.  

    //vdn is a variable mapped to distinguishedName
    gs.include("LDAPUtils");
    var vdn = source.getElement(this.distinguishedName);
    if (vdn.indexOf('OU=Users')<0) {
      user_name='';
      gs.log('LDAP Import Skipping User: ' + vdn);
    }

Eine komplexere Methode zum Filtern ist die Verwendung regulärer Ausdrücke.  

    //vcn is a variable mapped to cn
    //vdn is a variable mapped to distinguishedName
    //c is the regular expression string
    gs.include("LDAPUtils");
    var vdn = source.getElement(this.distinguishedName);
    var vcn = source.getElement(this.cn);
    var c = /^[a-z][a-z][a-z][0-9][0-9][0-9]$/;
    var nvcn = vcn.toLowerCase();
    //test to see if the cn is in the form of 3 letters followed by 3 numbers, only import these
    if (c.test(nvcn)) {
    	user_name = nvcn;
    } else {
    	gs.log("LDAP import rejected username: " + vcn + " for DN: " + vdn);
    	user_name = "";
    }


