Standarddrucker mit Powershell ändern unter Windows

Um den Standarddrucker zu ändern muss zunächst ein Registrierungswert gesetzt werden:

reg add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LegacyDefaultPrinterMode /d 1 /t REG_DWORD /f

Zum Schluss muss nun noch der entsprechende Drucker ausgewählt werden:

gwmi win32_Printer -Filter "Name like '%Kyocera%'" | select -First 1 | %{$_.SetDefaultPrinter()

Mit dem Befehl wird nach einem bestimmten Drucker gefiltert der installiert ist. In meinem Beispiel ist es ein Kyocera Drucker.

Netzwerkdrucker auf entfernten Computern installieren

Um einen Netzwerkdrucker lokal auf einem Rechner zu installieren kann es sinnvoll sein, diesen Prozess zu automatisieren.

  1. Treiber herunterladen
  2. Treiber via pnputil.exe dem Treiberstorage bekannt machen
  3. Unter “C:\Windows\System32\DriverStore\FileRepository” befindet sich dann ein neuer Treiberordner
  4. In der .inf Datei steht die Bezeichnung zum Drucker drin. Diese MUSS bei Add-PrinterDriver -Name “” ZWINGEND den Druckernamen beinhalten
  5. Auch unter Add-Printer -Drivername “” muss der Name des Treibers gezielt angesteuert werden
pnputil.exe /a "C:\Install\OEMSETUP.INF"
Add-PrinterDriver -Name "Kyocera ECOSYS P6230cdn KX" -InfPath "C:\Windows\System32\DriverStore\FileRepository\oemsetup.inf_amd64_2b3fc9f872db355b\OEMSETUP.INF"
Add-PrinterPort -Name "LAN-PORT" -PrinterHostAddress "10.0.0.0"
Add-Printer -DriverName "Kyocera ECOSYS P6230cdn KX" -Name "ECOSYS P6230cdn" -PortName "LAN-PORT"

Netzlaufwerk mit der Powershell hinzufügen

Um ein Netzlaufwerk über Powershell hinzuzufügen wird folgender Befehl benötigt:

New-PSDrive –Name "Z" –PSProvider FileSystem –Root "\\10.0.0.0\Share"

Mit dem Schalter -Persist kann das Netzlaufwerk permanent verbunden werden.

Falls Zugangsdatendaten benötigt werden, muss zunächst ein Credentials Objekt angelegt werden:

$password = ConvertTo-SecureString "Password123!" -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential(Benutzer,$password)

Nun kann das Objekt an den PSDrive Befehl angehängt werden:

New-PSDrive –Name "Z" –PSProvider FileSystem –Root "\\10.0.0.0\Share" -Credential $credentials

Entfernt werden kann das Laufwerk mit folgendem Befehl:

Remove-PSDrive –Name "Z"

WLAN Einstellungen per Verteilung / Gruppenrichtlinie

Zunächst exportiert man seine WLAN Einstellungen:

netsh wlan export profile folder=C:\Install

Nun erhält man bereits konfigurierten WLANs ein oder mehrer .xml Dateien

xml File aus der Konfiguration

Beachtet bitte, dass das .xml File so wie oben aussehen sollte.

Der Wert protected sollte auf false stehen, und der Connection Mode sollte auto sein.

Anpasst werden muss der WLAN name und der Wert <keyMaterial>

Hier werden die ausgestrahlte SSID und Schlüssel eingetragen.

Nach erfolgreichen Anpassungen wird das Profil dem neuen Rechner noch bekannt gemacht. Dies kann ggf. auch via Gruppenrichtlinie in einer Active Directory erfolgen.

netsh wlan add profile folder=C:\Install\WLAN.xml

Nun sollte ein neu installierter Rechner sich automatisch in das WLAN einbuchen.

Windows System einfrieren mit ToolWiz TimeFreeze

Um ein Windows System vor Veränderungen zu schützen empfehle ich das Programm ToolWiz TimeFreeze. Nach jedem Neustart werden Änderungen am System zurückgesetzt.

Heruntergeladen werden kann das Programm von:

https://www.toolwiz.com/lead/products/

Die Installation kann manuell oder automatisiert erfolgen:

setup_timefreeze.exe /install /setpass=Password123! /cachesize=10000
Installation von ToolWiz Timefreeze

Danach kann das Programm entweder manuell oder auch automatisiert per Script erfolgen:

"C:\Program Files\Toolwiz Time Freeze 2017\ToolwizTimeFreeze.exe" /freezealways /usepass=Password123!
Aktivierung von Toolwiz TimeFreeze

Wenn das System nicht mehr eingefroren sein soll, dann lässt sich das Programm entweder manuell oder auch per Skript beenden:

"C:\Program Files\Toolwiz Time Freeze 2017\ToolwizTimeFreeze.exe" /unfreeze /usepass=Password123!

Hinweise:

Das Programm lässt sich natürlich auch zunächst ohne Passwort konfigurieren. Dafür wird bei allen Befehlen das Passwort weggelassen. Ist ein Passwort gesetzt, benötigt man natürlich immer das Passwort zum Zugriff. Der Wert Cachesize kann bei der Installation auch weggelassen werden. Es empfiehlt sich aber die Festplattennutzung von ToolWiz Time einzuschränken mit dem Schalter /cachesize

Standardapps unter Windows 10 setzen

Standardapps lassen sich zum einen manuell in den Einstellungen setzen oder via dism /online /Export-DefaultAppAssociations um dann die .xml Datei via Gruppenrichtlinie zu verteilen.

Manuelles setzen der Standard Apps
Verteilung per Gruppenrichtlinie

Standardapps sind grundsätzlich Benutzer bezogene Einstellungen. Ein verteilen der Standardapps via Gruppenrichtlinie funktioniert nicht in allen Fällen.

Daher kann es sinnvoll sein, auf ein externes Programm zurück zu greifen:

https://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/

SetUserFTA fängt die typischen Datei Verknüpfungungs Hashes unter Windows ab und setzt ohne Probleme die Standardapps auch nach Dateityp vollkomme automatisiert.

Das Programm SetUserFTA kann per Script oder Gruppenrichtlinie verteilt werden.

Nach Download des Programms, kann das Programm in einem entsprechenden Ordner hinterlegt werden und der Aufruf kann gestartet werden.

“C:\Install\SetUserFTA.exe” .xls ASC.Sheet.12

.xls ist die jeweilige Dateiendung

ASC.Sheet.12 ist in diesem Fall OnlyOffice. Hier muss der genaue Produktname des installierten Produktes stehen. Den genauen Produktnamen erhält man unter anderem aus der oben genannten .xml via dism /online /Export-DefaultAppAssociations

Aufruf der SetUser FTA

Windows 10 Standardapps festlegen und exportieren

  1. Die Standardapps werden per Hand auf dem Rechner einmal eingestellt.
  2. Aus diesen Apps wird eine Konfig Datei erstellt: dism /online /Export-DefaultAppAssociations

3. Via GPO lassen sich die Einstellungen auf alle Rechner verteilen

Computerkonfiguration\Administrative Vorlagen\Windows-Komponenten\Datei-Explorer -> Konfigurationsdatei für Standardzuordnungen festlegen

URL Dateien mit Logo problemlos erstellen

Problemstellung: URL Dateien verlieren beim Kopieren von einem Rechner zu einem anderen ihre zugeordneten Symbole. Abhilfe kann hier schaffen, die URL neu zu erstellen mit Hilfe der Powershell:

Dafür wird eine .dll Datei benötigt mit dem entsprechenden Icon. Diese .dll können unter anderem mit dem Programm Resource Hacker erstellt werden: http://www.angusj.com/resourcehacker/

Sollten sich mehrere Icons in der .dll Datei befinden, ist es notwendig den IconIndex anzupassen.

$WshShell = New-Object -comObject WScript.Shell
$path = "C:\Users\public\desktop\google.url"
$targetpath = "https://www.google.de"
$iconlocation = "C:\Install\google.dll"
$iconfile = "IconFile=" + $iconlocation
$Shortcut = $WshShell.CreateShortcut($path)
$Shortcut.TargetPath = $targetpath
$Shortcut.Save()
Add-Content $path "HotKey=0"
Add-Content $path "$iconfile"
Add-Content $path "IconIndex=0"

Windows Apps aus Image löschen mit Hilfe von DISM

Um Windows Apps aus einem Image zu löschen kann die Powershell genutzt werden. Zunächst wird dafür ein Microsoft Image / Iso heruntergeladen.

Die ISO Datei des Betriebssystem wird als Laufwerk unter Windows hinzugefügt. Hier ist es nun möglich unter D:\sources die install.wim zu erhalten. “D” steht dabei für den Laufwerksbuchstaben unter dem das Image ist.

Ein Windows Image kann unterschiedliche Installationen enthalten. Zunächst wird betrachtet welche Version angepasst werden soll. Dies kann man am besten mit folgendem Befehl erreichen:

Dism /Get-ImageInfo /ImageFile:D:\sources\install.wim
Auflistung welche Images in welcher Version in der Install.wim enthalten sind

Wenn nun die Windows 10 Pro Version angepasst werden soll, dann muss der Index 7 sein. Ich empfehle euch bei der Verwendung von DISM noch einen Mount Ordner unter C:\Install\mount anzulegen und die install.wim unter C:\Install zu kopieren.

Mount-WindowsImage -Path C:\Install\mount -ImagePath C:\Install\install.wim -Index 7

Ich empfehle für die Entfernung der Apps folgenden Befehl zu verwenden:

Get-AppxProvisionedPackage -Path C:\Install\mount | Out-GridView -PassThru | Remove-AppxProvisionedPackage

Nun öffnet sich ein neues Fenster, mit welchem man auswählen kann welche Windows Apps aus dem Image entfernt werden sollen. Durch selektives Anwählen und bestätigen mit “OK” werden die entsprechenden Apps aus dem Image entfernt.

Zum Schluss muss das “gemountete” Windows Image noch zurückgeschrieben werden:

Dismount-WindowsImage -Path C:\Install\mount -Save

Alternativ lassen sich Apps auch ohne Anzeige der oben genannten Übersicht entfernen:

Zunächst wird das Image wieder gemountet

Mount-WindowsImage -Path C:\Install\mount -ImagePath C:\Install\install.wim -Index 7

Nun wird gefiltert welche Apps in dem Image installiert sind

Get-AppxProvisionedPackage -Path C:\Install\mount | select Displayname, PackageName | fl

Eine einzelne App wird entfernt. Der PackageName muss eindeutig zu der Ausgabe von oben sein.

Remove-AppxProvisionedPackage -PackageName Microsoft.XboxApp_2016.623.248.0_neutral_~_8wekyb3d8bbwe -Path C:\Install\mount

Zum Schluss wird das Image wieder zurück gespeichert.

Dismount-WindowsImage -Path C:\Install\mount -Save