CMD Script: Automatischer User Import to GlobalGroup
Hallo, ich habe folgendes Problem.
Beispiel:
Für eine Ordnerstuktur Laufwerk (Z) sind "Local Group" angelegt worden.
LG_LAUFWERK_Vertrieb_Einkauf
LG_LAUFWERK_Vertrieb_Verkauf
Z:\Vertrieb\Einkauf
Z:\Vertrieb\Verkauf
Anhand eines Organisationscodes FIRMA-ABTEILUNG-TEAM (FIRMA-Vertieb-Einkauf) soll ein User in die entsprechende "GlobalGroup" importiert werden.
Franz Mustermann (FI-VT-EK)
Hans Wurst (FI-VT-VK)
Die Frage ist nun wie kann man das am einfachsten verwirklichen?
Ich hatte an ein Script gedacht, dass in einem AD-User unter Eigenschaften\Organisation\Abteilung einen hinterlegten Orga-Code ausließt und anhand diesem einen Import in die entsprechende Gruppe ausführt.
Grüße Lucius
Beispiel:
Für eine Ordnerstuktur Laufwerk (Z) sind "Local Group" angelegt worden.
LG_LAUFWERK_Vertrieb_Einkauf
LG_LAUFWERK_Vertrieb_Verkauf
Z:\Vertrieb\Einkauf
Z:\Vertrieb\Verkauf
Anhand eines Organisationscodes FIRMA-ABTEILUNG-TEAM (FIRMA-Vertieb-Einkauf) soll ein User in die entsprechende "GlobalGroup" importiert werden.
Franz Mustermann (FI-VT-EK)
Hans Wurst (FI-VT-VK)
Die Frage ist nun wie kann man das am einfachsten verwirklichen?
Ich hatte an ein Script gedacht, dass in einem AD-User unter Eigenschaften\Organisation\Abteilung einen hinterlegten Orga-Code ausließt und anhand diesem einen Import in die entsprechende Gruppe ausführt.
Grüße Lucius
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 246865
Url: https://administrator.de/contentid/246865
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
9 Kommentare
Neuester Kommentar
Moin,
lg,
Slainte
Ich hatte an ein Script gedacht, dass in einem AD-User unter Eigenschaften\Organisation\Abteilung einen hinterlegten Orga-Code ausließt und anhand diesem einen Import in die entsprechende Gruppe ausführt.
Das sollte sich per Powershell lösen lassen. Was ich nicht verstehe ist, warum ihr lokale Gruppen verwendet, wenn ihr ein AD habt.lg,
Slainte
Moin LuciusCastus,
Ansonsten würde auch eine simple CSV-Datei ausreichen die das Powershell-Script ausliest, in denen die User und deren Gruppen aufgelistet sind, dann musst du nicht jedes Userobjekt manuell anpacken um den Gruppennamen dort zu hinterlegen.
Grüße Uwe
Die Frage ist nun wie kann man das am einfachsten verwirklichen?
aus der Schulter geschossen mit Powershell etwa so, wenn die Gruppe im Abteilungs-Feld des jeweiligen Userobjektes steht:Import-Module ActiveDirectory
get-aduser -Filter * -properties Department | ?{$_.Department -like "*-*-*"} | %{add-adgroupmember -Identity $_.Department -Members $_}
Grüße Uwe
Die User sind bereits in der Domäne, dass heißt ein .vcs Import würde da eventuell nicht so einfach sein?
Quatsch, kein Thema. Wenn du schon jedes Userobjekt von Hand anpackst kannst du ja gleich den User einer Gruppe manuell zuweisen ...der Aufwand wäre der gleiche ...Also mach dir eine CSV-Datei in folgender Art:
SamAccountName;Group
maxmuster;Abt_Verkauf
annamusterfrau;Abt_Marketing
Import-Module ActiveDirectory
$csv = Import-CSV 'c:\users.csv' -delimiter ";"
$csv | %{
add-adgroupmember -Identity $_.Group -Members $_.SamAccountName
}
eine Liste aller User bzw. eine CSV-Vorlage kannst du dir ja auch mit get-aduser generieren, dann brauchst du nur noch z.B. mit Excel die Gruppen zuweisen, wieder als CSV speichern und mit obigem Script reinladen.
Beispiel Export aller User aus dem AD in eine CSV:
get-aduser -Filter * | select SamAccountName | export-csv 'c:\users.csv' -delimiter ";" -NoType
Zitat von @LuciusCastus:
Leider klappt der Befehl zum exportieren in eine csv nicht ganz so wie ich mir das vorgestellt habe.
get-aduser -Filter * | select SamAccountName, Givenname, Surname, Group, telephoneNumber | export-csv 'c:\users.csv'
-delimiter ";" -NoType
bei Group steht in der .csv Microsoft.ActiveDirectory.Management.ADPropertyValueCollection und telephoneNumber gibt er garnichts
aus.
so kann es auch nicht laufen, denn die erweiterten Attribute musst du bei get-aduser angeben :Leider klappt der Befehl zum exportieren in eine csv nicht ganz so wie ich mir das vorgestellt habe.
get-aduser -Filter * | select SamAccountName, Givenname, Surname, Group, telephoneNumber | export-csv 'c:\users.csv'
-delimiter ";" -NoType
bei Group steht in der .csv Microsoft.ActiveDirectory.Management.ADPropertyValueCollection und telephoneNumber gibt er garnichts
aus.
get-aduser -Filter * -properties telephoneNumber | select SamAccountName, Givenname, sn, telephoneNumber | export-csv 'c:\users.csv' -delimiter ";" -NoType
Group gibt es nicht, dafür gibt es memberOf.
Bitte lese dir die Grundlagen zur Arbeit mit powershell und AD durch bevor wir hier jetzt für dich wieder das Rad neu erfinden müssen. Es gibt hier nämlich noch einiges mehr zu beachten. Merci.
http://www.powershellpro.com/powershell-tutorial-introduction/powershel ...
Grüße Uwe
Import-Csv 'C:\...............\Orga.csv' -delimiter ';' | %{
if(get-adgroup -Filter {SamAccountName -eq $_.GroupName}){
# Gruppe vorhanden also setze die Infos der Gruppe mit set-adgroup
Set-AdGroup $_.GroupName -Replace @{Description=$_.OrgaCode}
}else{
# Gruppe wurde nicht gefunden also lege sie an
New-ADGroup -GroupScope Global -Name $_.GroupName -GroupCategory Security -Description $_.OrgaCode -Path "OU=GG_OU,OU=OU,DC=Domäne,DC=net"
}
}