antenope
Goto Top

Winget als Tool für Grundinstallation, Updates usw. (Ideen erwünscht)

Hallo zusammen,

bislang habe ich immer ein kleines CMD-Skript für die "Grundinstallation" von Computern verwendet. Die verwendeten Ressourcen lagen dabei entweder auf einem USB-Stick oder auf einem Netzwerkspeicher.

Nun dachte ich mir ich kann mir das Leben etwas einfacher machen, indem ich auf winget zurückgreife. Dabei habe ich aber ein paar Stolpersteine gefunden und eventuell hat jemand noch brauchbaren Input.

Der Code sieht aktuell wie folgt aus und funktioniert:

if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)  
cd /d %~d0%~p0
copy .\_Installer\Fernwartung.cmd c:\users\public\desktop\Fernwartung.cmd

reg import .\_Installer\Windows_10_alte_Fotoanzeige.reg
reg import .\_Installer\Windows_10_Ausgeblendete_Geraete.reg
reg import .\_Installer\Windows_10_DisableThumbsDB.reg
reg import .\_Installer\Windows_10_Enable_Linked_Connections.reg
reg import .\_Installer\Windows_10_EnableTransarency.reg
reg import .\_Installer\Windows_10_HiberbootDisable.reg
reg import .\_Installer\Windows_10_NcdAutoSetupPrivate_Autosetup.reg

sysdm.cpl
pause

start ms-windows-store:
start ms-settings:

pause

winget install -e --id 7zip.7zip --accept-package-agreements --accept-source-agreements
reg import .\_Installer\7z_Dateizuordnungen.reg
ie4uinit.exe -show
winget install -e --id VideoLAN.VLC --accept-package-agreements --accept-source-agreements
winget install -e --id Microsoft.WindowsPCHealthCheck --accept-package-agreements --accept-source-agreements
winget install -e --id Adobe.Acrobat.Reader.64-bit --accept-package-agreements --accept-source-agreements

Direkt nach der Installation von Windows 10/11 fehlt (aktuelle ISOs) noch winget auf dem Systemen. Ändert sich vielleicht mit Win11_23H2?
clipboard01

Es fehlt der "App-Installer" aus dem Store und es gibt verschiedene Möglichkeiten diesen zu installieren:

Möglichkeit #1: Offline
clipboard05

Möglichkeit #2: via Powershell
  • Der folgende Befehl startet die Aktualisierung des Stores:
Get-CimInstance -Namespace "Root\cimv2\mdm\dmmap" -ClassName "MDM_EnterpriseModernAppManagement_AppManagement01" | Invoke-CimMethod -MethodName UpdateScanMethod  
  • liefert aber keinerlei Rückmeldung über den Zustand oder Fortschritt
  • muss zudem scheinbar 2-3x Zyklen durchlaufen bis wirklich alles auf dem aktuellen Stand ist
  • Sprich man muss in den Store um den aktuellen Stand zu verfolgen
clipboard04

Möglichkeit #3: via Store
  • Da man eh in den Store muss, kann man dort auch einfach auf "Update" klicken und warten bis das Paket "App-Installer" installiert wurde
clipboard03


Parallel zu den Store-Updates, würde ich gerne die Windows Updates laufen lassen. Interessanter Weise funktionieren die folgenden Befehle nicht mehr?
  • UsoClient StartInstall
  • wuauclt /detectnow /updatenow

Sprich auch hier Einstellungen öffnen und auf den Button klicken ... nunja, egal da muss man eh noch ein paar Einstellungen setzten ...

Die dann folgenden winget-Befehle funktionieren wunderbar.


Hat jemand einen guten Tipp für mich bezüglich Store und Windows Updates.

p.s. ich habe mich für eine cmd-Skript entschieden, da ein Powershell-Skript nicht einfach per Doppelklick gestartet werden kann (execution policy usw.)

Content-ID: 52292448386

Url: https://administrator.de/contentid/52292448386

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

CH3COOH
CH3COOH 07.10.2023 um 12:16:58 Uhr
Goto Top
Guten Tag,
also für die Windows Updates hab ich was für dich:
https://www.powershellgallery.com/packages/PSWindowsUpdate/2.2.0.3
https://gist.github.com/cfebs/c9d83c2480a716f6d8571fb6cc80fd59

Die .nupkg-Datei kannst du wie eine ZIP extrahieren. Den Inhalt kopiert man nun in der ModuleOrdner der Powershell. Ein kurzes Unblock-File und das Modul kann eingesetzt werden face-wink

Damit wird das Windows Update erleichtert bzw. erledigt.

Bezüglich der Store-Updates habe ich noch nie etwas unternommen, aber vielleicht hilft dir das hier:
https://p0w3rsh3ll.wordpress.com/2012/11/08/search-updates-using-the-win ...

Gruß
Patrick-IT83
Patrick-IT83 07.10.2023 um 21:20:33 Uhr
Goto Top
Ich kann gerne https://chocolatey.org/ empfehlen, zur Installation und zur Update-Pflege.
Winget hatte ich zu oft Probleme, gerade auf einem Terminalserver mit 20+ Programmen, kamen viele Fehler zusammen, nicht erkannte Programme usw.

Daher, eine kleine Zeile in PowerShell und die Programme werden installiert bzw. upgedatet.

LG Patrick
Avoton
Avoton 08.10.2023 um 14:36:48 Uhr
Goto Top
p.s. ich habe mich für eine cmd-Skript entschieden, da ein Powershell-Skript nicht einfach per Doppelklick gestartet werden kann (execution policy usw.)

Moin,

Ich hab das bei uns wie folgt gelöst:
Kleine CMD Datei, die per "Als Administrator starten" gestartet wird und dann das Powershell mit ExecutionPolicy Bypass aufruft.
Das PS Skript wird von der Batch vorher von einem zentralen, gesicherten Ort heruntergeladen, so dass Clients immer die aktuelle Version verwenden.
Über die Powershell lassen sich auch die Updates installieren.

Gruß,
Avoton
anteNope
anteNope 09.10.2023 aktualisiert um 19:59:12 Uhr
Goto Top
Kleine CMD Datei, die per "Als Administrator starten" gestartet wird und dann das Powershell mit ExecutionPolicy Bypass aufruft.

Okay, die Idee gefällt 😂

Install.cmd
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)    
cd /d %~d0%~p0
powershell .\Install.ps1
pause

Und der Rest steht dann in der Install.ps1. Startet sich selbst mit Adminrechten, und führt dann in sich selbst das Powershell-Skript aus. 🤣 Funktioniert soweit gut.

Edit:
Hm wenn ich das gerade richtig sehe ... muss man für Windows Update auf Drittanbieter Powershell Module zurückgreifen. Mit den Boardmitteln ist das scheinbar nicht (mehr) möglich ...

clipboard01