Jump to content

Powershell: Benutzer zu Gruppen hinzufügen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich möchte ein Script, das aus einer csv-Datei

1. lokale Benutzer anlegt

2. diese Benutzer den Gruppen hinzufügt

 

So, Teil 1 funktioniert soweit. Bei Teil 2 hab ich so meine Probleme...

 

#Gruppenmitgliedschaften pflegen
Import-Csv C:\temp\users.csv | ForEach-Object {
   $user = $strTarget + "/" + $_.Name
   for ($i=1; $i -le 5; $i++){
$split = $_.Gruppe + $i
if ($split){
     $gruppe = "WinNT://./"+$split
   	$group =[ADSI]$gruppe 
   	$group.Add($user)
   	}
   }
}

 

Die CSV ist in diesem Format:

Vorname,Nachname,Name,Abteilung,Gruppe1,Gruppe2,Gruppe3,Gruppe4,Gruppe5
Hans,Meier,hm0815,Abt-1,Administratoren
Hans,Müller,hm0816,Abt-2,Benutzer,Remoteunterstützungsanbieter,Remotedesktopbenutzer,Hauptbenutzer

 

Ich weiß, dass $i als Integer angesehen wird und deswegen die Verkettung mit $_.Gruppe um somit die Spalte Gruppe1 oder Gruppe2 anzusprechen nicht funktioniert.

 

Habt ihr Ideen, wie ich es lösen kann?

Danke!!!

Link zu diesem Kommentar

Danke, aber leider nicht...

in der $split steht dann die ganze zeile, also $_

 

aber gut, ich habs nun mit einer reorganisation der csv und einem Array hinbekommen:

#Gruppenmitgliedschaften pflegen
Import-Csv C:\temp\users.csv | ForEach-Object {
   $user = $strTarget + "/" + $_.Name
   $gruppen = $_.Gruppe
   $arr = $gruppen.Split(" ")
      foreach ($entry in $arr){
     $gruppe = "WinNT://./"+$entry
     $group =[ADSI]$gruppe 
        $group.Add($user)
    }
  }

 

Die csv hat nur noch eine Spalte "Gruppe" und die einträge sind durch ein Leerzeichen getrennt.

 

Aber noch was anderes: Gibts ne Befehlsreferenz zu Powershell? Also neben get-help? Ich suche die Parameter etc. zu .create in diesem Fall:

 

#Benutzer anlegen
Import-Csv C:\temp\users.csv | ForEach-Object {
   $target = [ADSI]$strTarget
   $newuser = $target.Create("user", $_.Name)
   $newuser.SetPassword($_.Password)
   $newuser.SetInfo()
   $newuser.psbase.InvokeSet('AccountDisabled', $false)
   $newuser.SetInfo()
}

 

Also welche Informationen kann ich hier wie bei dem neuen Benutzer hinterlegen?

 

Danke!

Link zu diesem Kommentar

Hi,

ActiveDirectory wird in der Powershell V1 leider sehr stiefmütterlich behandelt. Erst mit der Powershell V2 und nur in Verbindung mit einem W2kR2-Domaincontroller gibt es deutliche Bewegung

Active Directory Powershell Blog : Active Directory Module for Windows PowerShell ? Quick start guide

(viel Erfahrung habe ich damit aber auch noch nicht!)

 

Für eine effektive AD-Verwaltung unter PS V1 kann ich dir die Quest-Cmdlets empfehlen

PowerShell Commands for Active Directory Quest Software

 

Registrieren kannst du diese cmdlets dauerhaft in deiner profile.ps1 mit

Add-Pssnapin quest.activeroles.admanagement

 

die neuen cndlets (z.b. set-qaduser, new-qaduser) findest du danach mit

get-help *qad*

Diese commandlets haben ihrerseits dann Hilfen dabei, in denen Parameter angegeben sind.

 

 

Mit native [ADSI] bzw. System.DirectoryServices.DirectoryEntry musst dich durch den Objektkatalog z.b. von VisualStudio2008 wühlen, um an alle Parameter zu gelangen.

 

cu

blub

bearbeitet von blub
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...