Jump to content
Sign in to follow this  
Foster´s

AD Distribution Group - Managed By & Update MemberShipList per Script ?

Recommended Posts

Hallo zusammen,

ich muss bei ca. 600 Gruppen in einer bestimmten OU einen "Manager" ( Reiter "Managed by" bzw. "Verwaltet von" ) eintragen - das ist soweit relativ unkompliziert lösbar ..

 

Scripts gibt es wie Sand am Meer ...

 

bsp.: Scripting Active Directory Groups using VBScript

 

 

Dieser soll / muss nun aber auch die MemberShip List bearbeiten ( Updaten )dürfen. Und hier wird es scheinbar schwierig - dies ist kein Attribut sondern eine Änderung in der ACL der Gruppe ( Write - Members )

 

Ich finde bisher keine Möglichkeit das ordentlich und automatisiert zu setzen - hoffe deshalb auf eure Hilfe :wink2:

 

Ich hatte mich jetzt mal mit der PowerShell auseinandergesetzt - da gibt es diese Möglichkeit !! Hier -> ( Nick’s Exchange and Scripting Blog: Delegating Distribution Group Management Via Outlook )

 

Allerdings sagt mir meine lokale Vista PowerShell dass es die "Funktion" nicht kennt :

 

Die Benennung "Add-ADPermission" wurde nicht als Cmdlet, Funktion, ausführbares

Programm oder Skriptdatei erkannt. Überprüfen Sie die Benennung, und versuchen

Sie es erneut.

 

 

Bin mir aber nicht sicher, ob evtl. ein 2007Exch. benötigt wird, denn alles was ich zu der Funktion finde bezieht sich auf den Exchange 2007.

 

Umgebung ist eine reine Win 2003 ADS ( seeehr groß ;) ... und Exchange 2003 SP3

 

Kann mir hier jemand unter die Arme greifen ? ...will kein fertiges Script, aber jemand der mich führt bzw. Richtung der PowerShell aufklären kann -- bin defintiv kein Programmierer ;)

 

Vielen Dank schon mal !

 

MFG

Foster´s

Share this post


Link to post
Share on other sites

Moin,

 

um AD-Berechtigungen zu setzen, ist dsacls.exe dein Freund. Sollte bei 2003 dabei sein, wenn nicht, ist es noch Teil des Resource Kit.

 

Um dir "echtes" Skripting zu ersparen, ist in dem Zusammenhang evtl. dies interessant:

 

faq-o-matic.net » Excel: Admins unbekannter Liebling

 

Dass deine Vista-Powershell das cmdlet nicht kennt, liegt einfach daran, dass es Teil der Exchange Management Shell ist (also einer PowerShell-Erweiterung).

 

Gruß, Nils

Share this post


Link to post
Share on other sites
Sollte bei 2003 dabei sein, wenn nicht, ist es noch Teil des Resource Kit.

 

Off-Topic:

Ergänzung: Das dsacls unter Windows Server 2003 befindet sich in den Windows Support Tools und ist im Windows Server 2008 bereits integriert. ;)

Share this post


Link to post
Share on other sites
[OT]Ergänzung: Das dsacls unter Windows Server 2003 befindet sich in den Windows Support Tools /OT]

 

ist doch alles eine Soße ... ;-)

 

(Danke für den Hinweis. Wenn das jetzt auch nicht wirklich off-topic war. ;-))

 

Gruß, Nils

Share this post


Link to post
Share on other sites

Vielen Dank für die Antworten ! ..mich hat es gestern total nieder gestreckt - wollte keinen Rechner sehen :cry: ..

 

Dass deine Vista-Powershell das cmdlet nicht kennt, liegt einfach daran, dass es Teil der Exchange Management Shell ist (also einer PowerShell-Erweiterung).

 

Kann man diese Erweiterung denn irgendwie auf den Client / Win2008 Server bringen ? .. ohne den Exch. 2007 installieren zu müssen ?

 

Probier´ heut mal und werde Rückmeldung geben !

 

MFG

Foster´s

Share this post


Link to post
Share on other sites

Hallo zusammen,

ich habe nun folgendes Script "erarbeitet" :

 

set ouRoot="OU=Groups,OU=0940,OU=NL,OU=Firma,OU=Domain Resources,DC=xy,DC=xyz"
set managergroup=XY\L-AV-0946-VLManager

dsacls %ouRoot% /I:S /G %managergroup%:WD;members;group

 

Problem 1 : in der ACL wird es nicht geändert - das Attribut members ist scheinbar falsch angegeben - wisst ihr, wie das genau heisst ? Habe schon diverse getestet - komme da aber nicht wirklich weiter.

 

Problem 2 : Er würde die Änderung nun auf ALLE Gruppen in der OU Anwenden - wie kann ich das eingrenzen ? - Ich habe in meiner OU weit über 2000 Gruppen - es soll aber nur bei bestimmten Gruppen ( L-AV-xxxx-PP-*** ) geändert werden ,..

 

Könnt ihr mir helfen ?!

 

Grüße

Foster´s

Share this post


Link to post
Share on other sites
Kann man diese Erweiterung denn irgendwie auf den Client / Win2008 Server bringen ? .. ohne den Exch. 2007 installieren zu müssen ?

 

Naja, du brauchst halt die Exchange 2007 Console. Einfach mal das Setup für Exchange 2007 auf deinem Vista ausführen und nur die Admintools auswählen. Falls dein Vista 32bit hat, dann das hier:

Download details: Exchange Server 2007 - Management Tools (32-Bit)

 

Bye

Norbert

Share this post


Link to post
Share on other sites

Hatte schon beinahe sowas befürchtet ... :cry:

 

( trotzdem vielen Dank @NorbertFE ... ! )

 

 

 

Fehlermeldung(en) bei der Installation der Exch 2007 Management Konsole auf Windows XP SP 3:

 

Zusammenfassung: 2 Element(e). Erfolgreich: 1, Fehler: 1. 
Verstrichene Zeit: 00:34:13


ManagementTools Voraussetzungen
Abgeschlossen

Verstrichene Zeit: 00:02:36


Voraussetzungen für Organisation
Fehler

Fehler:
Die Exchange-Organisation befindet sich nicht im einheitlichen Modus.
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=63bbe074-5dae-41b4-b71b-80ffb0b1d42b

Fehler:
Das Active Directory-Schema ist nicht aktuell, und dieses Benutzerkonto ist kein Mitglied der Gruppe 'Schema-Admins' und/oder 'Organisations-Admins'.
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=2fafe5d4-04e0-4c5a-a69f-7613d438131f

Fehler:
Active Directory benötigt globale Updates, und dieses Benutzerkonto ist kein Mitglied der Gruppe 'Organisations-Admins'.
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=fb97f691-d7c3-40b6-8515-95fd489db46e

Fehler:
Die lokale Domäne muss aktualisiert werden. Sie müssen Mitglied der Gruppen 'Domänen-Admins' und 'Exchange-Organisationsadministratoren' oder der Gruppe 'Organisations-Admins' sein, um den Vorgang fortsetzen zu können.

Fehler:
Setup muss eine Verbindung mit dem Active Directory-Schemamaster herstellen, dieser Computer befindet sich jedoch nicht am gleichen Active Directory-Standort wie der Schemamaster (EDITIERT).
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=2376fec1-b9ce-44db-beb6-cb9ac4788988

Fehler:
Setup muss eine Verbindung mit dem Active Directory-Schemamaster herstellen, dieser Computer befindet sich jedoch nicht in der gleichen Active Directory-Domäne wie der Schemamaster (DC=EDITIERT).
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=2376fec1-b9ce-44db-beb6-cb9ac4788988

Fehler:
Setup encountered a problem while validating the state of Active Directory: Es wurden keine Exchange-Objekte auf Organisationsebene erstellt. Diese Objekte können nicht während der Installation erstellt werden, weil sich der lokale Computer nicht in derselben Domäne und nicht im selben Standort wie der Schemamaster befindet. Führen Sie Setup mit dem Parameter '/prepareAD' auf einem Computer in der Domäne 'EDITIERT' und im Standort 'EDITIERT' aus, und warten Sie auf den Abschluss der Replikation.

Fehler:
Es wurden Active Directory-Connectors gefunden. Entfernen Sie alle Active Directory-Connectors, bevor Sie Exchange 2007 installieren.
Empfohlene Aktion: http://go.microsoft.com/fwlink/?linkid=30939&l=de&v=ExBPA.3&id=bee744c9-dcf7-46a2-9a71-ab0236fa7732

Fehler:
Mindestens ein Server in der vorhandenen Organisation führt Exchange Server 2003 ohne Service Pack 2 (oder höher) aus. Die Installation kann erst fortgesetzt werden, nach dem die vorhandenen Computer mit Exchange Server 2003 auf Service Pack 2 aktualisiert wurden.

Warnung:
Das Active Directory-Schema wird aktualisiert, wenn Sie den Vorgang fortsetzen. Überprüfen Sie, ob die Organisation für Exchange 2007 bereit ist, indem Sie die Exchange 2007-Bereitschaftsüberprüfung ausführen, die Bestandteil des Exchange Best Practices Analyzer-Tools ist.


Verstrichene Zeit: 00:31:35

 

Sowohl die Schema Master als auch die Exchange Site muesste aktualisiert werden - da ich hier in einer "riesigen" Gesamtstruktur sitze scheiden diese Themen aus ...

 

Das Setup lässt sich auch nicht fortsetzen - manchmal führen die (vor allem deutschenFM) einen ja auf den Irrweg ;)

 

Hat den niemand zumindest "ähnliche" Fälle ?

 

Grüße !

Share this post


Link to post
Share on other sites

Sowohl die Schema Master als auch die Exchange Site muesste aktualisiert werden - da ich hier in einer "riesigen" Gesamtstruktur sitze scheiden diese Themen aus ...

 

Naja, kann ja niemand ahnen, dass du in einem Forest ohne E2k7 sitzt. :) Das geht dann natürlich nicht, und dann hätte ich das auch nicht vorgeschlagen.

 

Bye

Norbert

Share this post


Link to post
Share on other sites

Hallo Foster,

Ich denke, dass man die Powershell cmdlets von e2k7 auch ohne e2k7-Installation auf Vista bringen kann. Ich arbeite wenn möglich nur noch mit Powershell, das ist einfach Stand der Technik

Ihr habt doch sicherlich einen Supportvertrag mit MS, über den ihr eine entsprechende Anfrage einkippen könnt. Vielleicht kannst du die Antwort hier posten

 

cu

blub

Share this post


Link to post
Share on other sites
Ihr habt doch sicherlich einen Supportvertrag mit MS, über den ihr eine entsprechende Anfrage einkippen könnt. Vielleicht kannst du die Antwort hier posten

 

cu

blub

 

 

Dies tu ich nun hiermit ;)

 

function FindObjects([string] $LDAPFilter, [string] $SearchRoot)
{
$ds = New-Object System.DirectoryServices.DirectorySearcher
$ds.Filter = $LDAPFilter
$ds.PageSize = 500
$ds.SearchRoot = [adsi]"LDAP://$searchRoot"
$ds.SearchScope = [system.DirectoryServices.SearchScope]::Subtree

$src = $ds.FindAll()
$src
}

function SetManagedBy($src, [string] $TargetAccount)
{
foreach ($sr in $src)
{
	$de = $sr.GetDirectoryEntry()
	$de.managedBy = $TargetAccount
	$de.SetInfo()
	$de.psbase.Dispose()
}
}

function SetWriteMembers($src, [string] $TargetAccount)
{
foreach ($sr in $src)
{
	$de = $sr.GetDirectoryEntry()

	$sd = $de.psbase.ObjectSecurity
	$ace = New-Object DirectoryServices.ActiveDirectoryAccessRule(
		(New-Object Security.Principal.NTAccount($TargetAccount)),
		[DirectoryServices.ActiveDirectoryRights]::WriteProperty,
		[security.AccessControl.AccessControlType]::Allow,
		(New-Object System.Guid("bf9679c0-0de6-11d0-a285-00aa003049e2")))

	$sd.AddAccessRule($ace)
	$de.psbase.ObjectSecurity = $sd
	$de.psbase.CommitChanges()

	$de.psbase.Dispose()
}
}

$result = FindObjects "objectClass=group" "OU=Work,DC=f2,DC=net"
SetManagedBy $result "CN=Dev,OU=Work,DC=f2,DC=net"
SetWriteMembers $result "F2\Dev"

 

 

Das ist die Antwort vom MS Support. Ich verstehe nur nicht ganz, wie ich den Filter bei $result anpassen muss ..

 

Habe es so probiert :

 

(&(objectCategory=group)(CN=L-AV-0940-CO-*))

 

Das will aber nicht :(

 

 

Könnt ihr mir helfen ?

 

MFG

Foster´s

 

P.S.: Habe 2x ( IE & FF ) probiert über "Antworten" zu gehen. Dann kommt die Meldung, dass es ein alter Beitrag ist - ja ist richtig - sehe aber schon Vorteile direkt hier hinein zu antworten, statt zu verweisen ( Thema Email Benachrichtigung ) - kann dann aber nix bestätigen. Da ist kein Button ;) - und dann ist der Text weg :(

Hoffe, das es jetzt über "Direkt Antworten" geht.

 

Ist das so gewollt ?

Share this post


Link to post
Share on other sites

Ich habe den Filter jetzt mal sehr einfach gehalten - das sollte also keine Probleme machen. Laufe beim ausführen allerdings in folgenden Fehler :

 

PS C:\Users\av01cpg\Desktop> .\Set-ADManagedByWriteMember.ps1
Exception calling "CommitChanges" with "0" argument(s): "General access denied
error
"
At C:\Users\av01cpg\Desktop\Set-ADManagedByWriteMember.ps1:39 char:27
+         $de.psbase.CommitChanges( <<<< )
Exception calling "CommitChanges" with "0" argument(s): "General access denied
error
"
At C:\Users\av01cpg\Desktop\Set-ADManagedByWriteMember.ps1:39 char:27
+         $de.psbase.CommitChanges( <<<< )
Exception calling "CommitChanges" with "0" argument(s): "General access denied
error
"
At C:\Users\av01cpg\Desktop\Set-ADManagedByWriteMember.ps1:39 char:27
+         $de.psbase.CommitChanges( <<<< )
Exception calling "CommitChanges" with "0" argument(s): "General access denied
error
"
At C:\Users\av01cpg\Desktop\Set-ADManagedByWriteMember.ps1:39 char:27
+         $de.psbase.CommitChanges( <<<< )
PS C:\Users\av01cpg\Desktop>

 

Was soll das bedeuten ? .. der Account hat definitiv genug rechte .. ( im AD ).

Share this post


Link to post
Share on other sites

Hallo zusammen,

 

ich habe hier eine Excel-Tabelle in der wird der Name einer gewünschten Gruppe eingetragen. Dann wird ein Button geklickt und die Gruppe wird im AD erstellt. Anschließend gibt man die NT-Nutzer ein, die in diese Gruppe sollen. Nach klicken auf einen anderen Button werden die User eingetragen in die Gruppe. Nun möchte ich einen dritten Button erstellen, der in den Eigenschaften der Gruppe in der Registerkarte "Managed by" bzw. "Verwaltet von" einen NT-Nutzer eintragen kann als Manager. Und den Haken auf dieser Registerkarte möchte ich auch gesetzt haben wenn möglich. Allerdings hab ich keinen blassen schimmer...

 

Wäre cool wenn ihr helfen könntet!

 

Gruß

Share this post


Link to post
Share on other sites

Moin,

 

wende dich an denjenigen, der die anderen Excel-Makros gestrickt hat. Das ist nichts, was wir hier im Forum sinnvoll unterstützen können.

 

Im Übrigen sollte man uralte Threads nicht weiterführen, sondern neue aufmachen.

 

Gruß, Nils

Share this post


Link to post
Share on other sites

[sorry - hab grad erst bemerkt, dass das ja wirklich uralt ist...naja, jetzt hab ich's schon geschrieben, was soll's... ]

 

HeyHo,

 

ich hab' mir grad Deinen ersten Versuch mit DSACLS.EXE angeschaut, der Ansatz war eigentlich ganz gut, jedenfalls nicht so komplex wie mit .NET System.DirectoryServices eine ACL setzen...

 

schau mal, Dein erstes

 

set ouRoot="OU=Groups,OU=0940,OU=NL,OU=Firma,OU=Domain Resources,DC=xy,DC=xyz"
set managergroup=XY\L-AV-0946-VLManager

dsacls %ouRoot% /I:S /G %managergroup%:WD;members;group

 

war deswegen falsch, weil das Attribut, für das du das Recht vergeben willst "member" heißt und nicht "members", außerdem willst Du das Recht "WD : Write DACL" vergeben, das hieße du willst das Recht vergeben, Rechte zu setzen. In Wirklichkeit müßte es "WP : Write Property" heißen... also:

 

set ouRoot="OU=Groups,OU=0940,OU=NL,OU=Firma,OU=Domain Resources,DC=xy,DC=xyz"
set managergroup=XY\L-AV-0946-VLManager

dsacls %ouRoot% /I:S /G %managergroup%:[color="Red"]WP[/color];[color="Red"]member[/color];group

 

Jetzt bleibt "nur" noch ds Problem, wie du das nicht auf den ganzen Container setzt, sondern nur auf die gewünschten Gruppen-Objekte (wobei das eigentlich ganz schlechter Stil ist, das ist als ob du im Filesystem Berechtigungen an einzelne Dateien vergibst...:cry:).

 

Vielleicht haust Du die L-AV-xxxx-PP-*** Gruppen ja in eine Textdatei raus mit eine DSQUERY und wandelst dann jede Zeile schnell in sowas hier um (die Vererbung mit /I:S kannste dann weglassen):

 

set managergroup=XY\L-AV-0946-VLManager

dsacls "[i]Gruppe1DN[/i]" /G %managergroup%:[color="Red"]WP[/color];[color="Red"]member[/color];group
dsacls "[i]Gruppe2DN[/i]" /G %managergroup%:[color="Red"]WP[/color];[color="Red"]member[/color];group
dsacls "[i]Gruppe2DN[/i]" /G %managergroup%:[color="Red"]WP[/color];[color="Red"]member[/color];group
...

 

Besser wär's eigentlich, die Gruppen in eine OU zu verschieben und die Rechte einmal auf die ganze OU zu vergeben...

 

Gruß,

Philipp

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

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.   Restore formatting

  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.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...