Powershell Snippets

Chocolatey

Installieren

Set-ExecutionPolicy AllSigned
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Pakete installieren

choco install chocolateygui -y
choco install adobereader -y
choco install Firefox -y
choco install libreoffice-fresh -y
choco install vlc -y
choco install shutup10 -y

Starten von ShutUp10 via: Win+R → OOSU10

Benutzer anlegen

Benutzer anlegen

New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'gleichaendern!') -Name $user

Passwort-Ablauf verhindern

Set-LocalUser -Name $user -PasswordNeverExpires 1

Zu Gruppe hinzufügen, z.B:

Add-LocalGroupMember -Group "Remotedesktopbenutzer" -Member $user

Zum Admin machen:

Add-LocalGroupMember -Group Administratoren -Member $user

Benutzer per Batch anlegen

Alle folgenden Kommandos erfolgen in einer Administrator-Powershell:

Execution-Policy setzen

Per Default erlaubt Win10 keine Ausführung nicht signierter Skripte: https://www.script-example.com/wie-erstelle-ich-ein-PowerShell-Skript#powershell-skripts-erlauben

Wir setzen also:

Set-ExecutionPolicy remotesigned

Und unblocken unser Skript, z.B.

Unblock-File addusers.ps1

Und jetzt das Beispielskript, das eine Anzahl von Nutzer*innen anlegt und diese sowohl zu Administrator*innen macht also auch RDP-Zugriff erlaubt. Als Passwort nutzen wir „gleichaendern!“ - das über die Funktion ConvertTo-SecureString zu einem Hash verarbeitet wird.

Es gibt auch die Möglichkeit, kein Passwort zu setzen -NoPassword, dann werden die Nutzer*innen beim erstmaligen Login aufgefordert, ihres zu setzen. Aber das funktioniert nur lokal - nicht per RDP.

$users = @( 'user1', 'user2', 'user3' ) foreach($user in $users) { New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'gleichaendern!') -Name $user Set-LocalUser -Name $user -PasswordNeverExpires 1 Add-LocalGroupMember -Group "Remotedesktopbenutzer" -Member $user }

Sollen alle User auch Admins werden, dann kann noch folgende Zeile eingefügt werden:

Add-LocalGroupMember -Group Administratoren -Member $user

Wir lassen uns die Benutzer jetzt alle anzeigen: https://pureinfotech.com/see-user-accounts-windows-10/

Siehe auch:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/new-localuser?view=powershell-5.1

https://www.windowspro.de/script/schleifen-powershell-foreach-while-do-until-continue-break

https://www.script-example.com/Powershell-Loops-Array