From 7253b6ea556beb85f41c6eac72f580b4b6c23795 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 12:58:13 +0200 Subject: [PATCH 01/10] started work on README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index e69de29..183d3c9 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,21 @@ +# 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 xxx 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 \ No newline at end of file From dce68119d2fa4471534c07aa2484aa95d1bf9724 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 12:59:01 +0200 Subject: [PATCH 02/10] fixed missing base in codeblock --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 183d3c9..8d4a8cf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana 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 xxx Notation. - ```BASE + ``` + BASE |- ACLs |- Roles |- Projects``` From a6d26a191f0e4ac29440894c0102f0fe20d0a177 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 12:59:53 +0200 Subject: [PATCH 03/10] fixed codeblock end showing --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d4a8cf..e07b351 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana BASE |- ACLs |- Roles - |- Projects``` + |- 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) From 166240b791056034b12aff240867cea5aefbdc00 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 13:10:37 +0200 Subject: [PATCH 04/10] started on usage --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e07b351..36bac8b 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,20 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana 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 \ No newline at end of file +# Benutzung + +. .\\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 + +. .\\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 + +. .\\AddUser \ No newline at end of file From 48a2e8c28363a80b9b0cebfcb3cabb770cf6e01e Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 14:58:22 +0200 Subject: [PATCH 05/10] made header part into a codebloc --- README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 36bac8b..f0eed04 100644 --- a/README.md +++ b/README.md @@ -21,19 +21,28 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana 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 - -. .\\NewProject.ps1 \[-Server server\[:port\]\] -ProjectName Name +``` +. .\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 -. .\\NewProject2.ps1 \[-Server server\[:port\]\] -ProjectName Name +. .\NewProject2.ps1 [-Server server[:port]] -ProjectName Name + Erstellt ein neues Project mit Gruppen und einem Ordner. - -Server server\[:port\] + -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 -. .\\AddUser \ No newline at end of file +. .\AddUser [-Server server[:port]] -ProjectName name -Identity iDName -Type accesType + + 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 + - +``` \ No newline at end of file From 3bfacca2f54dccaf73fb3f7f7890da2d771af9ce Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 15:42:37 +0200 Subject: [PATCH 06/10] removed superflouous parameter from removeuser.ps1 and added more header --- README.md | 92 ++++++++++++++++++++++++++++++++++++++++++-------- RemoveUser.ps1 | 4 +-- 2 files changed, 78 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index f0eed04..01741e6 100644 --- a/README.md +++ b/README.md @@ -22,27 +22,89 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana # Benutzung ``` -. .\NewProject.ps1 [-Server server[:port]] -ProjectName Name +. .\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 - -. .\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 accesType - - Fügt einen Nutzer zu einem Projekt hinzu und setzt gegebenfalls Schreibberechtigungen - -Server server\[:port\] +. .\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 - - + 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 From 167e3b4fe6deddf079bb363d83716e8e6f4695d7 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 15:44:58 +0200 Subject: [PATCH 07/10] added missing name --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01741e6..ab6bae2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana 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 xxx Notation. +3. Die OU Struktur muss per Hand aufgebaut werden und in Variables.ps1 eingetragen werden, in "Distignuished Name"-Notation. ``` BASE |- ACLs From 44d83d1967c84603d80a32c2042d197d9f43519b Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 15:48:48 +0200 Subject: [PATCH 08/10] added example case --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index ab6bae2..c72b7b0 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,14 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana 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 From 4ff12e674726389516b00634c6cef2e9f0c2dfd3 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 15:52:21 +0200 Subject: [PATCH 09/10] cleaden up example and added commentary --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c72b7b0..b264e04 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,9 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana # 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 +.\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 From cdfca3256ffcaa69d671de367ab4c69b57e6ff46 Mon Sep 17 00:00:00 2001 From: Karl-Wilfried Zimmer Date: Mon, 15 Jul 2024 15:54:42 +0200 Subject: [PATCH 10/10] adjusted line to fit with actual reason --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b264e04..5adc099 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Ein Benutzer muss zum Management angelegt werden, der auf die OU des Projektmana |- 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) +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