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!

Recommended Posts

Posted

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!!!

Posted

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!

Posted (edited)

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...