Veröffentlicht am :
Verwaltung CREATION_INTERNE

Aktualisierung von Windows-Anmeldedomänen

Dieser Code ist auch verfügbar auf: English Español Français
Attention : Dieser Code erfordert Administratorrechte.
Das Programm verbindet sich mit dem SAS© Metadaten-Server, um 'Login'-Objekte zu identifizieren, deren Benutzer-ID eine veraltete Windows-Domäne enthält. Für jedes gefundene 'Login' wird der Benutzername isoliert, mit dem neuen Domänennamen kombiniert und anschließend das 'UserID'-Attribut in den SAS©-Metadaten aktualisiert. Dies automatisiert die Migration von Benutzer-IDs nach einer Änderung der Authentifizierungsdomäne.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden dynamisch vom SAS Metadaten-Server extrahiert. Das Skript liest keine externen Datenquellen (Datei, Datenbank) und verwendet keine SASHELP-Tabellen. Es arbeitet direkt mit den von den SAS-Funktionen zurückgegebenen Metadaten-Objekten.

1 Codeblock
OPTIONS
Erklärung :
Dieser Block konfiguriert die Verbindungsoptionen zum SAS Metadaten-Server. Er spezifiziert den Host, den Port, die Administrator-Anmeldeinformationen, das Repository und das Protokoll, die für die Interaktion mit den SAS Metadaten erforderlich sind.
Kopiert!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Codeblock
DATA STEP
Erklärung :
Dieser DATA-Step _NULL_ (der keine SAS-Tabelle erstellt) führt die Hauptlogik aus. Er definiert alte und neue Domänen über Makrovariablen. Er verwendet `metadata_resolve`, um 'Login'-Objekte zu zählen, die einer Metadaten-Abfrage entsprechen. Werden Objekte gefunden, iteriert eine Schleife über jedes 'Login', um dessen URI mit `metadata_getnobj` und dessen 'UserID' mit `metadata_getattr` abzurufen. Anschließend wird die Zeichenfolge manipuliert, um die Domäne zu ersetzen, und das Metadaten-Objekt mit dem neuen Wert mittels `metadata_setattr` aktualisiert, was eine Verwaltungsoperation darstellt.
Kopiert!
1DATA _null_;
2/* Define the old and replacement domains. */
3 %let old_domain = domain;
4 %let new_domain = newdomain;
5/* End edit. */
6 
7/* Define and initialize variables. */
8 LENGTH type id login_uri user stripped_user new_user $ 60;
9 call missing(type,id,login_uri,user);
10 
11/* This is the query to local the Logins with the old domain. */
12 obj="omsobj:Login? @code_sas_json/list_defaultauth_userids.json contains '&old_domain\'";
13 
14 /* Count the number of logins found by the query above. */
15 count=metadata_resolve(obj,type,id);
16 
17 /* If logins were found, proceed. */
18 IF count > 0 THEN DO n = 1 to count;
19 /* Get the Metadata URI for the nth login. */
20 login_rc=metadata_getnobj(obj,n,login_uri);
21 /* Pull the full user ID for the login. */
22 rc=metadata_getattr(login_uri,"UserID",user);
23 /* Strip the domain from the user ID. */
24 stripped_user=trim(scan(user,2,'\'));
25 /* Define a new variable with the new domain and the user ID. */
26 new_user=cats("&new_domain\",stripped_user);
27 /* Set this new variable as the UserID attribute. */
28 rc=metadata_setattr(login_uri,"UserID",new_user);
29 end;
30 /* If no logins are found with that domain, write that to the SAS log. */
31 else put "No users match query";
32RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Author: Greg Wootton Date: 24MAY2019