advocat
Goto Top

Batch funktioniert, aber nicht im Unattended Modus, aus anderer Batch Datei

Hallo allerseits!

Bin seit einige Tage auf Kriegsfuss mit dem Batch Script für Taksbar Autohide bei "Win11 (IoT Ent LTSC)" Unattended installation.
Es wird benötigt beim nächste Generation PCs im PC/Produktion Abteilung die W11 zu Installieren.
User ist mit Administrator Berechtigungen (only).
Der Haupt BatchDatei funkt "perfekt" davor und danach bis auf die Zeile:
cmd /c %InstallDrive%\SETUP\Autohide.bat


Inhalt Autohide.bat:
@echo off
powershell -Executionpolicy Bypass -Command "&{$p='HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3';$v=(Get-ItemProperty -Path $p).Settings;$v[8]=3;&Set-ItemProperty -Path $p -Name Settings -Value $v;&Stop-Process -f -ProcessName explorer}"  

timeout /T 06 /nobreak

taskkill /f /im explorer.exe
start explorer.exe

exit
Habe schon mehrere Variante von der Script versucht, mit und ohne Admin Rechte, mit und ohne Windows Explorer Restart, mit und ohne EXIT & timeout, ohne Powershell mit direkte REG IMPORT, leider habe nicht geschaft im Unattended Modus.
Wenn ich bei laufende Windows die Autohide.bat (egal velche Variante) starte, passt.
Der Taskbar wird versteckt.
Womöglich es liegt am GPO begrenzungen, die schon vordefiniert sind betreffend Desktop/Taskbar, aber nur im Unattended Modus.
Oder der Registry lässt nicht schreiben oder ändern diese Key:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3] während Win Installation.
Im haupt Batch alles was betrifft "%InstallDrive%\SETUP\" funktioniert.
Danke im Voraus.

Grüße Aydin

Content-Key: 92467692216

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

Printed on: June 30, 2024 at 06:06 o'clock

Member: viragomann
viragomann Jun 27, 2024 at 15:09:24 (UTC)
Goto Top
Hallo,

ich habe keine Ahnung, was dein Script anstellen soll, aber im PowerShell Aufruf musst du gewisse Zeichen, die CMD nicht mag, escapen, auch wenn diese in Anführungszeichen stehen.

Mir fallen erst mal nur die "&" auf. Die musst du durch "^&" ersetzen.

Vielleicht ist das schon alles.

Grüße
Member: WolleRoseKaufe
WolleRoseKaufe Jun 27, 2024 updated at 15:57:40 (UTC)
Goto Top
Du änderst HKCU, also einen Key der im Userprofil liegt, und deswegen nur auf den User angewendet wird mit dem die Batch ausgeführt wird.
Ergo bringt das Skript nur etwas wenn du es im User-Kontext laufen lässt z.B. durch ein Logon-Skript.

Wenn du das auf alle User anwenden und ohne GPO arbeiten willst, dann importiere den Key einmalig ins Default-Userprofil, das wird auf alle neuen User übertragen wenn sie sich das erste mal anmelden.
Also direkt hierüber eintragen REGISTRY::HKEY_USERS\.DEFAULT
Oder Default Hive (C:\Users\Default\ntuser.dat) mittels Regedit oder reg load ins HKLM mounten und dort den Key eintragen.

WolleRoseKaufe
Member: Advocat
Solution Advocat Jun 27, 2024, updated at Jun 28, 2024 at 09:53:09 (UTC)
Goto Top
Danke @viragomann, Danke @WolleRoseKaufe!

Morgen werde die Vorschlage austesten (können).

Ja, im HKCU während Unattended Installation.
Das mit HKLM habe schon getestet, bringt nichts, mit FirstLogon auch nicht, aber mit ::HKEY_USERS\.DEFAULT könnte/sollte.

Grüße Aydin

Also, beide vorgeschlagene Möglichkeiten getestet, leider nein.
Beim "die "&" durch "^&" ersetzen kommt Fehler: (Screenshot)

fehler

Beim direkt eintragen im REGISTRY::HKEY_USERS\.DEFAULT......
funkt auch nicht, es wird gar nicht gelesen.

Habe geschaft mit "reg add .... REG_BINARY" Eintrag im Autounattend.xml.
HEX String muss nur passend gemacht werden, un zwar Anführungszeichen, das Präfix „hex:“, die Kommas und die Zeilenumbrüche (Backslashes) entfernen, und nur Zahlen und Buchstaben lassen.

RegCode:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3]
"Settings"=hex:30,00,00,00,fe,ff,ff,ff,03,00,00,00,03,00,00,00,30,00,00,00,30,\  
  00,00,00,00,00,00,00,28,02,00,00,20,03,00,00,58,02,00,00,60,00,00,00,01,00,\
  00,00

muss lauten:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3" /v Settings /t REG_BINARY /d 30000000feffffff03000000030000003000000030000000000000002802000020030000580200006000000001000000 /f  

und so jetzt funkt, zu meine Zufriedenheit.