Relution Community

    • Anmelden
    • Suche
    • Kategorien
    • Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen

    Vollautomatische Erstkonfiguration und Einschreibung in Relution (WebDAV-Version)

    Windows
    1
    1
    537
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • Martin Eulitz
      Martin Eulitz zuletzt editiert von Martin Eulitz

      Hier die Anleitung zur vollautomatischen Erstkonfiguration und Einschreibung in Relution. Gegenüber der Anleitung zur vollautomatischen Einschreibung in Relution hat diese den Hauptvorteil, dass die Erstkonfiguration und die Einschreibung mit nur einem einzigen Script erfolgt.

      Da Relution keine Scripte einmalig und automatisch bei der Einschreibung ausführen kann und auch keine Daten (z.B. Wallpaper) auf die Windows Geräte kopieren kann, habe ich mich für die Verwendung eines WebDAV-Server entschieden. So kann man zusätzlich zur Einschreibung leicht Konfigurationen auf die Windows Geräte verteilen und diese auch leicht wieder ändern.

      Die Anleitung bezieht sich auf Windows 11 Pro 23H2. Es sollte aber auch mit allen Windows 10 und 11 Versionen funktionieren.

      Was ihr benötigt:

      • Windows System Image Manager und Windows Configuration Designer aus dem entsprechenden Windows SDK (https://learn.microsoft.com/de-de/windows-hardware/get-started/adk-install)
      • Eine Windows-ISO (https://www.microsoft.com/de-de/software-download/windows11)
      • Einen USB-Stick
      • Ein WebDAV-Server (z.B. Nextcloud oder Synology)

      Was ihr bekommt:

      Einen USB-Stick der eine vollautomatische Erstkonfiguration und Einschreibung von Windows-Geräten in Relution ermöglicht. Außerdem wird der Installationsassistent von Windows auf das minimalste reduziert (Netzwerk-Einrichtung) und diese Konfiguration wird nach einem Systemreset automatisch erneut angewendet.

      Es werden 6 Dateien benötigt, deren Erstellung ich nachfolgend erläutern werde:

      • <Seriennummer>.ppkg
      • Unattend.xml
      • Unattend.ps1
      • Provisioning.ps1
      • Provisioning.ppkg
      • Setup.ps1

      <Seriennummer>.ppkg

      Diese Datei wird mit dem Windows Configuration Designer erzeugt und ist für die Einschreibung in Relution verantwortlich. Hierfür gibt es von Relution einen Insight:

      https://relution.io/insights/windows-bulk-enrollment

      Hinweis: In Relution muss für jedes Gerät eine eigene Einschreibung mit Gerätenamen angelegt werden.

      Die Datei unter der Seriennummer des Gerätes im Ordner "Enrollment" auf dem WebDAV-Server speichern:

      265e7975-cc06-4fa8-97e2-7caa36550c12-image.png

      Die Seriennummer kann man in PowerShell mit folgendem Befehl auslesen:

      Write-Host (gwmi win32_bios).serialnumber
      

      Unattend.xml

      Diese Datei wird mit dem Windows System Image Manager erzeugt und ist für die Automatisierung des Installationsassistenten verantwortlich. Darüber hinaus werden in dieser Datei Befehle konfiguriert, die nach der ersten Anmeldung ausgeführt werden sollen. Hierfür gibt es von Windows Pro eine sehr gute Anleitung, wobei die Einstellungen angepasst werden müssen

      https://www.windowspro.de/wolfgang-sommergut/setup-windows-10-oobe-dialoge-fuer-privatsphaere-sprache-user-konto-ueberspringen

      Hier die Einstellungen (Bitte Admin Benutzername und Passwort anpassen):

      c156b9f7-0e7a-48ac-8111-02152db47bc5-image.png

      eea13d7c-c720-4c8a-b2a4-bbf9614d50f0-image.png

      7aa406e3-9ec9-429c-99e2-6e55388ebbe1-image.png

      f3fb2e4c-f9cb-4cd7-9317-b65423ffb1d3-image.png

      Dieser Registry Eintrag regelt, dass der Admin wirklich nur einmal automatisch angemeldet wird.

      reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoLogonCount /t REG_DWORD /d 0 /f
      

      3418df58-1ab7-45a8-97a2-55a6ba17620c-image.png

      Mit diesem Befehl wird der Explorer geschlossen, sodass auch längere Setup-Scripte laufen, ohne das der Benutzer den Desktop zu sehen bekommt.

      taskkill /IM explorer.exe /F
      

      0ceefda9-c8c9-435c-ab81-cbaa6c1b1882-image.png

      Mit diesem Befehl wird das Script "Unattend.ps1" aufgerufen.

      powershell -ExecutionPolicy Bypass -File C:\Recovery\AutoApply\Unattend.ps1
      

      b756a000-7299-425b-add9-9a49645d71d0-image.png

      d3e44eb9-a11f-417f-b6eb-4a92da9f0462-image.png

      6d55477e-81e5-4d08-ac38-860caa1c4f9d-image.png

      Unattend.ps1

      Dieses Script wird bei der ersten Anmeldung ausgeführt. Es kopiert das Script "Setup.ps1" vom WebDAV-Server auf den PC und führt es aus.

      Hier der Inhalt:

      # Netzlaufwerk verbinden
      $Srv = "<WebDAV-Serveradresse"
      $Usr = "<Benutzername>"
      $Pwd = ConvertTo-SecureString "<Passwort>" -AsPlainText -Force
      $Cred = New-Object System.Management.Automation.PSCredential($Usr, $Pwd)
      New-PSDrive -Name "R" -PSProvider FileSystem -Root $Srv -Credential $Cred
      
      # Relution Ordner anlegen
      New-Item -Path "C:\ProgramData\Relution" -ItemType Directory -Force
      
      # Setup Script kopieren
      Copy-Item -Path "R:\Setup.ps1" -Destination "C:\ProgramData\Relution" -Force
      
      # Setup Script ausführen
      powershell -ExecutionPolicy Bypass -File "C:\ProgramData\Relution\Setup.ps1"
      

      Provisioning.ps1

      Dieses Script kopiert die "Unattend.xml" und "Unattend.ps1" in "C:\Recovery\AutoApply" und erzwingt einen Systemreset.

      Wenn in dem AutoApply-Ordner eine "Unattend.xml" gefunden wird, wird diese automatisch bei der Installation bzw. nach einem Systemreset angewendet.

      Hier gibt es genauere Informationen zum AutoApply-Ordner und zum Systemreset:

      https://learn.microsoft.com/de-de/windows-hardware/manufacture/desktop/deploy-pbr-features-using-auto-apply?view=windows-11

      https://learn.microsoft.com/de-de/windows/win32/dmwmibridgeprov/mdm-remotewipe

      Hier der Inhalt:

      # Scripte und Unattend.xml kopieren
      Copy-Item -Path .\* -Destination (New-Item "C:\Recovery\AutoApply\" -ItemType Directory -Force) -Force
      
      # Sytemreset ausführen
      $namespaceName = "root\cimv2\mdm\dmmap"
      $className = "MDM_RemoteWipe"
      $methodName = "doWipeMethod"
      
      $session = New-CimSession
      
      $params = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection
      $param = [Microsoft.Management.Infrastructure.CimMethodParameter]::Create("param", "", "String", "In")
      $params.Add($param)
      
      try
      {
          $instance = Get-CimInstance -Namespace $namespaceName -ClassName $className -Filter "ParentID='./Vendor/MSFT' and InstanceID='RemoteWipe'"
          $session.InvokeMethod($namespaceName, $instance, $methodName, $params)
      }
      catch [Exception]
      {
          write-host $_ | out-string
      }
      

      Provisioning.ppkg

      Diese Datei wird mit dem Windows Configuration Designer erzeugt und packt die 3 vorherigen Dateien in ein Bereitstellungspaket. Für die Erzeugung der Datei kann man sich an dem o.a. Relution Insight orientieren:

      https://relution.io/insights/windows-bulk-enrollment

      Hier die Einstellungen:

      98eb294b-2511-4a00-8172-1666179e96b1-grafik.png

      90d0de02-35f6-47a3-9795-7de6fa15ac83-grafik.png

      77f0c69b-7d49-456e-8611-078834476b95-grafik.png

      powershell -ExecutionPolicy Bypass -File Provisioning.ps1
      

      Setup.ps1

      Dieses Script ist letztlich für die Einschreibung in Relution verantwortlich. Es sucht auf dem WebDAV-Server im Enrollment-Ordner nach dem passenden Einschreibungspaket, kopiert es und wendet es an. Darüber hinaus kann man in diesem Script alles mögliche konfigurieren wie. z.B. Bitlocker oder App-Deinstallationen.

      Hier ein Beispiel:

      # Netzlaufwerk verbinden
      $Srv = "<WebDAV-Serveradresse"
      $Usr = "<Benutzername>"
      $Pwd = ConvertTo-SecureString "<Passwort>" -AsPlainText -Force
      $Cred = New-Object System.Management.Automation.PSCredential($Usr, $Pwd)
      New-PSDrive -Name "R" -PSProvider FileSystem -Root $Srv -Credential $Cred
      
      # Bitlocker aktivieren
      Enable-BitLocker -MountPoint C: -UsedSpaceOnly -SkipHardwareTest -RecoveryPasswordProtector
      
      # Apps deinstallieren
      $appname = @(
      "Clipchamp.Clipchamp"
      "Microsoft.549981C3F5F10"
      "Microsoft.BingNews"
      "Microsoft.BingWeather"
      "Microsoft.GamingApp"
      "Microsoft.GetHelp"
      "Microsoft.Getstarted"
      "Microsoft.MicrosoftOfficeHub"
      "Microsoft.MicrosoftSolitaireCollection"
      "Microsoft.MicrosoftStickyNotes"
      "Microsoft.OutlookforWindows"
      "Microsoft.People"
      "Microsoft.PowerAutomateDesktop"
      "Microsoft.StorePurchaseApp"
      "Microsoft.Todos"
      "Microsoft.Windows.DevHome"
      "Microsoft.Windows.Photos"
      "Microsoft.WindowsAlarms"
      "Microsoft.WindowsCamera"
      "microsoft.windowscommunicationsapps"
      "Microsoft.WindowsFeedbackHub"
      "Microsoft.WindowsMaps"
      "Microsoft.WindowsSoundRecorder"
      "Microsoft.WindowsTerminal"
      "Microsoft.Xbox.TCUI"
      "Microsoft.XboxGameOverlay"
      "Microsoft.XboxGamingOverlay"
      "Microsoft.XboxIdentityProvider"
      "Microsoft.XboxSpeechToTextOverlay"
      "Microsoft.YourPhone"
      "Microsoft.ZuneMusic"
      "Microsoft.ZuneVideo"
      "MicrosoftCorporationII.QuickAssist"
      "MicrosoftWindows.Client.WebExperience"
      )
      ForEach($app in $appname){
      Get-AppxProvisionedPackage -Online | Where Displayname -EQ $app | Remove-AppxProvisionedPackage -Online
      }
      
      # Einschreibungspaket kopieren
      $SerialNumber = (gwmi win32_bios).serialnumber
      Copy-Item -Path R:\Enrollment\$SerialNumber.ppkg -Destination "C:\ProgramData\Relution" -Force
      
      # Einschreibung in Relution
      Install-ProvisioningPackage -PackagePath C:\ProgramData\Relution\$SerialNumber.ppkg -ForceInstall -QuietInstall
      
      # Neustart
      shutdown /r /t 5
      

      WebDAV-Server

      Da das Passwort im Klartext übertragen wird, sollte auf dem WebDAV-Server eine seperate Freigabe erstellt werden, auf die ein sperater Benutzer nur Lesezugriff hat. Ich habe diesem Benutzer ein 100stelliges generiertes Passwort gegeben. Passwörter im Klartext sind nicht schön, aber in diesem Fall war es es mir wert.

      USB-Stick

      Der USB-Stick sollte mit FAT32 oder NTFS formatiert sein. Die Datei "Provisioning.ppkg" in das Root-Verzeichnis des Sticks kopieren:

      f7ddcae4-d21e-4122-ac62-a296d6eb4874-image.png

      Den USB-Stick während der ersten Seite des Installationsassistenten einstecken:

      bbc9d759-1754-4a5b-abf2-c3358c4abc2a-grafik.png

      f186db33-cd51-4828-92bc-1857cb6b5dbf-grafik.png

      Bei der erstmaligen Einrichtung wird ein Systemreset ausgelöst. Danach solltet ihr entweder bei der WLAN-Einrichtung landen oder der Installationsassistent läuft ohne Nachfragen komplett durch. Danach wird der Admin-Benutzer einmalig automatisch angemeldet, das Windows-Gerät wird konfiguriert, in Relution eingeschrieben und neu gestartet. Dieses Verhalten bleibt nach einem Systemreset erhalten. Falls das nicht mehr gewünscht sein sollte, muss einfach vor dem Systemreset der Ordner "C:\Recovery\AutoApply" gelöscht werden.

      1 Antwort Letzte Antwort Antworten Zitieren 0
      • Erster Beitrag
        Letzter Beitrag