diff --git a/README.md b/README.md index e69de29..5adc099 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,118 @@ +# Annahmen + +Die Skripte, die mit einem Dateisystem interagieren und den Share erstellen (NewProject.ps1 und NewProject2.ps1), gehen davon aus, dass sie auf dem System ausgeführt werden, auf dem die Ordner erstellt werden. Es ist des weitern notwendig, dass diese beiden Skripte als lokaler Administrator ausgeführt werden. Der genaue Ort wird in Variables.ps1 angegeben. + +Das Projektmanagement braucht eine OU. Diese enthält weitere OUs zur Sortierung der Gruppen. Diese werden in Variables.ps1 angegeben. + +Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmanagments Gruppen erstellen und modifizieren darf. + +# Vorbereitung + +1. Installieren von RSAT (Remote Server Administration Tools) auf dem System, dass die Skript ausführt. (Dependenz für AD Commandlets) +2. Für NewProject2.ps1 muss ein Ordner angelegt und zum Share gemacht werden. DACL des lokalen Ordners muss dabei eine passende Gruppe lesen und enumerieren lassen aber nur für den Ordner selbst. +3. Die OU Struktur muss per Hand aufgebaut werden und in Variables.ps1 eingetragen werden, in "Distignuished Name"-Notation. + ``` + BASE + |- ACLs + |- Roles + |- Projects + ``` +4. Der Verwaltungs-User muss die Delegation der ProjektManager-Basis-OU "Hinzufügen und löschen von Gruppen" und "Gruppen modifizieren" erhalten +5. Der Verwaltungs-User muss lokaler Admin auf dem System mit den Shares sein. (Notwendig für öffnen von Shares (NewProject.ps1) und ggf. ACL-Manipulation) + +# Benutzung +## Beispiel +``` +.\NewProject2.ps1 -Server ms-dc -ProjectName AppleWidget # Adds an new empty Project To OU and Basefolder +.\AddUser.ps1 -Server ms-dc -ProjectName AppleWidget -Type RW -Identity william.tell # Adds a new user to AppleWidget via ReadWrite-Role +.\RemoveUser.ps1 -Server ms-dc -ProjectName Sherwood -Identity robbin.hood # Removes all instances of a User from a given Project +``` + +# Skript Funktionen +``` +. .\NewProject.ps1 [-Server server[:port]] -ProjectName name + Erstellt ein neues Project mit Gruppen und einem lokalen Share + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + :port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts + name - Name des anzulegenden Projects + +. .\NewProject2.ps1 [-Server server[:port]] -ProjectName name + Erstellt ein neues Project mit Gruppen und einem Ordner. + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts + name - Name des anzulegenden Projects + +. .\AddUser [-Server server[:port]] -ProjectName name -Identity iDName -Type accessType + Fügt einen Nutzer zu einem Projekt hinzu und setzt gegebenfalls Schreibberechtigungen + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts, zu dem der User hinzugefügt werden soll + name - Name des anzulegenden Projects + -Identity iDName + Identifiziert User, der hinzugefügt werden soll + iDName - String der den User identifiziert. Kann SID oder username sein. + -Type accessType + Legt die Art der Mitgliedschaft fest, die für den User gewünscht ist + accessType - Type der Berechtigung. Nimmt Strings zum Filtern der Projektrollen und soll mit [RO|RW] benutzt werden + +. .\RemoveUser [-Server server[:port]] -ProjectName name -Identity iDName -Type accessType + Entfernt alle gefundenen Vorkommnise eines Nutzers von einem Projekt + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts, zu dem der User hinzugefügt werden soll + name - Name des anzulegenden Projects + -Identity iDName + Identifiziert User, der hinzugefügt werden soll + iDName - String der den User identifiziert. Kann SID oder username sein. + +. .\GetProcets.ps1 [-Server server[:port]] + Erstellt eine Liste aller Projekte in der Projekt-OU + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + +. .\GetRoles.ps1 [-Server server[:port]] [-ProjectName name] + Erstellt eine Liste aller Projekterollen in der Projekt-OU oder gefiltert nach Name + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts, dessen Rollen gefunden werden sollen + name - Filterstring + +. .\GetRoles.ps1 [-Server server[:port]] [-ProjectName name] + Erstellt eine Liste aller Projekte-ACLs in der Projekt-OU oder gefiltert nach Name + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -ProjectName name + Definiert den Namen des Projekts, dessen ACLs gefunden werden sollen + name - Filterstring + +. .\GetRoles.ps1 [-Server server[:port]] [-Name name] + Erstellt eine Liste aller Projekterollen in der Projekt-OU oder gefiltert nach Name + -Server server[:port] + Verbindet für die AD-Comandlets mit einem gegebenen Server + server - IP, Hostname oder FQDN + port - Port mit dem sich verbunden werden soll + -Name name + Definiert den Namen des Projekts, dessen Benutzer gefunden werden sollen + name - Filterstring +``` \ No newline at end of file diff --git a/RemoveUser.ps1 b/RemoveUser.ps1 index 2a44561..02f90a5 100644 --- a/RemoveUser.ps1 +++ b/RemoveUser.ps1 @@ -6,9 +6,7 @@ param ( [string] $Server, [string] - $ProjectName, - [string] - $Type = "RO" + $ProjectName ) $User = $null