ProjectManagementScripts/README.md

118 lines
6.0 KiB
Markdown

# 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 ACL-Manipulation)
# Benutzung
## Beispiel
```
.\NewProject2.ps1 -Server ms-dc -ProjectName Widget
.\AddUser.ps1 -Server ms-dc -ProjectName Widget -Type RW -Identity william.tell
.\RemoveUser.ps1 -Server ms-dc -ProjectName sherewood -Identity robbin.hood
```
# 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
```