Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Interessante, alltägliche Themen und Diskussionen.
Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 05.04.2024, 23:53

Nabend, also der Testlauf war solala,

also wie gehabt, das Skript erstellt die VMs, welche dann manuell installiert werden, der Software Ordner wo die PS7.msi und die ps1 Files für die GPOs rein kommen wird erstellt, PS7.msi wird runtergeladen, die PW Richtlinie in der DefaultDomainPolicy wird angenommen, GPO ScreensaverTimeout wird erstellt, definiert und angewendet, ebenso wird die GPO Login-Richtlinie erstellt, definiert und angewendet.
Die GPO für PS7 Installation funktioniert nur am Server, wird nicht am Client übernommen :sauer:
Das waren eigentlich das Hauptziel was ich mir vorgenommen hatte, bevor ich weiter mache.
Dadurch dass das mit der Login-Richtlinie geklappt hat, dachte ich ich mach einfach mal mit den Hardening GPOs weiter, also AutoUpdate Deaktivieren, Dateiendungen anzeigen, ist ja ausgeschaltet, Zeitgleiche Verbindungen auf 1 setzen, UAC Prompt Behavior, LAN Manager Authentifizierungsebene setzen, Deny Logon Policy mit 5 Einstellungen, nur leider war das ein Griff ins Klo, die werden erstellt, aber nicht definiert, also keine Werte gesetzt.
PS2 wurde deaktiviert und deinstalliert.

Alle GPOs wurden erfolgreich mit der Domäne verknüpft, so wie es sein sollte, aber was bringt es wenn die Einstellungen nicht übernommen werden.

Und es kommt auch keine Fehlermeldung beim ausführen, diese laufen sauber im Terminal durch als wäre alles OK.

Code: Alles auswählen

PSComputerName : LABSRV                                                                                                                                                                                        RunspaceId     : fd0af814-5775-49d5-a205-6a6ce4d0fe16                                                                                                                                                          DisplayName    : ScreenSaverTimeOut                                                                                                                                                                            GpoId          : 9f7200e0-77aa-441d-a58a-fbc69e463ddb                                                                                                                                                          Enabled        : True                                                                                                                                                                                          Enforced       : True                                                                                                                                                                                          Order          : 2                                                                                                                                                                                             Target         : DC=lab,DC=test                                                                                                                                                                                GpoDomainName  : lab.test                                                                                                                                                                                                                                                                                                                                                                                                     PSComputerName : LABSRV                                                                                                                                                                                        RunspaceId     : fd0af814-5775-49d5-a205-6a6ce4d0fe16                                                                                                                                                          DisplayName    : LoginRichtlinie                                                                                                                                                                               GpoId          : db24420e-90c0-4c2b-92a9-407721abf99a                                                                                                                                                          Enabled        : True                                                                                                                                                                                          Enforced       : True                                                                                                                                                                                          Order          : 3                                                                                                                                                                                             Target         : DC=lab,DC=test                                                                                                                                                                                GpoDomainName  : lab.test                                                                                                                                                                                                                                                                                                                                                                                                     PSComputerName : LABSRV                                                                                                                                                                                        RunspaceId     : fd0af814-5775-49d5-a205-6a6ce4d0fe16                                                                                                                                                          DisplayName    : DisableAutoUpdates                                                                                                                                                                            GpoId          : 4d05beaa-c2eb-42bc-a040-ca50f89ae835                                                                                                                                                          Enabled        : True                                                                                                                                                                                          Enforced       : True                                                                                                                                                                                          Order          : 4                                                                                                                                                                                             Target         : DC=lab,DC=test                                                                                                                                                                                GpoDomainName  : lab.test                                                                                                                                                                                                                                                                                                                                                                                                     PSComputerName : LABSRV                                                                                                                                                                                        RunspaceId     : fd0af814-5775-49d5-a205-6a6ce4d0fe16                                                                                                                                                          DisplayName    : ShowFileExtensions                                                                                                                                                                            GpoId          : a0269aba-9995-4073-accb-a6e032517f3c                                                                                                                                                          Enabled        : True                                                                                                                                                                                          Enforced       : True                                                                                                                                                                                          Order          : 5                                                                                                                                                                                             Target         : DC=lab,DC=test                                                                                                                                                                                GpoDomainName  : lab.test                                             
hilft nichts, weiter testen und schauen wieso die PS7 GPO nicht mehr will.

Tante Google

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Tante Google » 05.04.2024, 23:53


Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 06.04.2024, 11:06

Cyber-Mike hat geschrieben: 05.04.2024, 23:53 also wie gehabt, das Skript erstellt die VMs, welche dann manuell installiert werden,
keine Lust, die BSe (Server, Client) automatisch installieren zu lassen?
Bin gerne behilflich dabei, falls Info-Bedarf besteht.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 06.04.2024, 13:40

Holgi hat geschrieben: 06.04.2024, 11:06 keine Lust, die BSe (Server, Client) automatisch installieren zu lassen?
Bin gerne behilflich dabei, falls Info-Bedarf besteht.
solange die Iso Dateien nicht zerlegt werden müssen, also es mit den originalen Iso's funktioniert, höre ich es mir gerne an.

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 06.04.2024, 18:37

Cyber-Mike hat geschrieben: 06.04.2024, 13:40 solange die Iso Dateien nicht zerlegt werden müssen, also es mit den originalen Iso's funktioniert, höre ich es mir gerne an.
würdest du sagen, wenn die original ISO auf die Festplatte entpackt wird,
eine autounattend.xml ins Stammverzeichnis kopiert wird und dann
die der entpackte Ordner wieder in eine ISO verpackt wird
fällt schon unter "zerlegen"?
Weil das ist die von mir bevorzugte Methode. Letztlich bleibt es ja eine Original ISO (je nach Auslegungsstrenge).
Es gibt aber wohl auch noch andere Möglichkeiten, die Installation von Windows (-Server) in Hyper-V zu automatisieren:
1. Kurzform

Code: Alles auswählen

Mount-VHD .\VHDFile.vhdx
 Copy-Item .\unattend.xml -destination D:\Windows\Panther\
 Dismount-VHD .\VHDFile.vhdx
attach the VM you created with the "add-vmharddiskdrive" cmdlet
auch hier nachzulesen:
https://www.starwindsoftware.com/blog/s ... omatically
https://serverfault.com/questions/48567 ... l-creation

2. die Floppy Methode

Code: Alles auswählen

New-VFD "C:\floppy.vfd"
Set-VMFloppyDiskDrive
You can manually create new floppy drive on installed virtual machine, it will appear as disk A: inside VM. Than you can login into virtual machine, format disk A: and place your unattended.xml there, in the root folder. After this you can simply detach virtual floppy.
Later, you can insert this floppy to newly created VM using Set-VMFloppyDiskDrive commandlet and ISO with OS. OS will pick configuration from floppy automatically.
Set-VMFloppyDiskDrive -VMName $vmName -Path $vfdpath
(where vmName is your VM and vfdPath is the path to the vfd file
Unmount:
Set-VMFloppyDiskDrive -VMName $vmName -Path $null

Code: Alles auswählen

 # Variables
$CLI1 = "Client"      # Name of VM running Client Operating System
$SRV1 = "Server"      # Name of VM running Server Operating System
$CRAM = 8GB           # RAM assigned to Client Operating System
$SRAM = 4GB           # RAM assigned to Server Operating System
$CLI1VHD = 80GB       # Size of Hard-Drive for Client Operating System
$SRV1VHD = 40GB       # Size of Hard-Drive for Server Operating System
$VMLOC = "C:\HyperV"  # Location of the VM and VHDX files
$NetworkSwitch1 = "PrivateSwitch1"  # Name of the Network Switch
$W11ISO = "C:\ISOS\Windows11.iso" # Windows 11 ISO
$W11VFD = "C:\ISOS\client_floppy.vfd" #Virtual Floppy Disk with autounattend.xml file
$WS22ISO = "C:\ISOS\Server2022.iso"  # Windows Server 2022 ISO
$WS22VFD = "C:\ISOS\server_floppy.vfd"   # Windows Server 2022 Virtual Floppy Disk with autounattend.xml file

# Create VM Folder and Network Switch
MD $VMLOC -ErrorAction SilentlyContinue
$TestSwitch = Get-VMSwitch -Name $NetworkSwitch1 -ErrorAction SilentlyContinue; if ($TestSwitch.Count -EQ 0){New-VMSwitch -Name $NetworkSwitch1 -SwitchType Private}

# Create Virtual Machines
New-VM -Name $CLI1 -Path $VMLOC -MemoryStartupBytes $CRAM -NewVHDPath $VMLOC\$CLI1.vhdx -NewVHDSizeBytes $CLI1VHD -SwitchName $NetworkSwitch1
New-VM -Name $SRV1 -Path $VMLOC -MemoryStartupBytes $SRAM -NewVHDPath $VMLOC\$SRV1.vhdx -NewVHDSizeBytes $SRV1VHD -SwitchName $NetworkSwitch1

# Configure Virtual Machines
Set-VMDvdDrive -VMName $CLI1 -Path $W11SO
Set-VMDvdDrive -VMName $SRV1 -Path $WS22ISO
Set-VMFloppyDiskDrive -VMName $CLI1 -Path $W11FD
Set-VMFloppyDiskDrive -VMName $SRV1 -Path $WS22VFD
Start-VM $SRV1
Start-VM $CLI1
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 06.04.2024, 20:13

Guten Abend in die Runde

Ja Holgi, das liest sich alles sehr interessant, aber was is wenn der User kein Win 11 sondern nur ne Win 10 Iso zur Verfügung hat ? dann braucht er auch eine andere xml. Wo sollte die im Skript hinterlegt sein ?
Und vor allem Server und Client sollten unter Gen 2 erstellt werden, und diese hat keine emulierten IDE-Controller mehr, was die Verwendung von Set-VMFloppyDiskDrive somit ausschließt.

Hatte dies ja Mitte Ende Februar schon in Betracht gezogen, aber wegen den oben genannten Gründen wieder verworfen.

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 06.04.2024, 20:30

Windows10 und Windows11 unterscheiden sich grds. nicht.
Allenfalls, was die Auswahl der Edition angeht.
aber anstelle

Code: Alles auswählen

 <Key>/IMAGE/Name</Key>

Code: Alles auswählen

<Value>Windows 11 Pro</Value>
kann man auch "Index" nehmen. Dann funzt es bei beiden gleich.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 06.04.2024, 20:37

Okay, da muss ich mich wohl weiter einlesen wie das ganze funktioniert, oder kannst Du mir sagen wie das mit den xml Files aussieht ?

Kann man die im Skript mit ausliefern oder sind das separate Files ?

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 06.04.2024, 20:48

Ich habe bereits für die Installation von der IPFire eine Schritt-für-Schritt Anleitung erstellt, damit der User weiß was er wo eintragen soll, und auf was er achten muss. Da hatte ich bislang nichts für ne autounattand.xml gefunden, und auch direkt beim Support von IPFire die Info bekommen, dass das nicht funktionier.
Wenn das für den Server und Client funktionieren sollte, sollte beim Server aber auch die beiden PS Befehle ausgeführt werden und die Einstellungen für den NetAdapter gesetzt und er umbenannt werden nach Eingabe vom User, bzw. der Name würde sich ja anhand vom Skript aus dem Namen der Laborumgebung und dem Kürzel SRV für den Server zusammensetzen. Keine Ahnung ob man dass dann in die xml automatisiert einbinden könnte.

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 06.04.2024, 22:41

Es sind separate Files.
Gilt nur für die Windows Versionen.
Wie das bei Linux funktioniert, weiß ich leider nicht.
Ich werde mal meine autounattend.xml etwas „aufräumen“ und dann hier posten, damit du es mal ausprobieren kannst,
Du machst doch auch alles unter Hyper-V und nicht auf Real-Hardware. Dann kann ja auch die automatische Partitionierung der „Festplatte“ (vhdx) erfolgen; korrekt?
Meine xml sind mit allem was geht versehen. Da muss dann nichts mehr manuell ausgefüllt oder abgenickt werden. Fire and forget sozusagen.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 07.04.2024, 00:33

hmm, das Problem ist dass ich eben nur das Skript mit den Standard ISOs benutze, bzw. die User die dieses Skript dann ausführen sollen. Wenn ich jetzt da mit einer xml daher komme, dann kommen nur Aussagen, wie "was ist wenn Windows 12 kommt, funktioniert dass dann auch noch" oder eben dann Server 2025 (hab übrigens schon ne Version ohne GUI davon) usw. das will ich mir ersparen. Bei uns in der Weiterbildung sind Leute gewesen, die selbst schon Probleme hatten VM per Hand mit Hyper-V zu erstellen und dann den Server zu installieren. Sag nur "Press any Key.... was soll ich jetzt da drücken", oder "oh wieder zu spät mitbekommen dass ich eine Taste drücken sollte". Also typisches Layer 8 Problem wenn Dir das was sagt :D
Persönlich für mich wäre das ja OK was die xml angeht, aber wenn ich das einigen Leuten erklären soll, glaub ich sitz ich 2025 noch in Teams, bis es der letzte versteht.

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 07.04.2024, 08:57

hier schon mal die autounattend.xml für Windows Server 2022 (Standard), falls du es mal für dich persönlich ausprobieren möchtest:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>de-de</UILanguage>
            </SetupUILanguage>
            <InputLocale>0407:00000407</InputLocale>
            <SystemLocale>de-de</SystemLocale>
            <UILanguage>de-de</UILanguage>
            <UILanguageFallback>de-de</UILanguageFallback>
            <UserLocale>de-de</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <Path>reg add HKLM\System\Setup\LabConfig /v BypassTPMCheck /t reg_dword /d 0x00000001 /f</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>2</Order>
                    <Path>reg add HKLM\System\Setup\LabConfig /v BypassSecureBootCheck /t reg_dword /d 0x00000001 /f</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>3</Order>
                    <Path>reg add HKLM\System\Setup\LabConfig /v BypassRAMCheck /t reg_dword /d 0x00000001 /f</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>4</Order>
                    <Path>reg add HKLM\System\Setup\LabConfig /v BypassCPUCheck /t reg_dword /d 0x00000001 /f</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>5</Order>
                    <Path>reg add HKLM\System\Setup\LabConfig /v BypassStorageCheck /t reg_dword /d 0x00000001 /f</Path>
                </RunSynchronousCommand>
            </RunSynchronous>

            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>500</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Size>100</Size>
                            <Type>EFI</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Size>16</Size>
                            <Type>MSR</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Extend>true</Extend>
                            <Type>Primary</Type>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Label>WinRE</Label>
                            <Format>NTFS</Format>
                            <TypeID>de94bba4-06d1-4d40-a16a-bfd50179d6ac</TypeID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>System</Label>
                            <Format>FAT32</Format>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>
                            <Label>Windows</Label>
                            <Format>NTFS</Format>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>

            </DiskConfiguration>

            <ImageInstall>
                <OSImage>

                    <InstallFrom>
                        <MetaData wcm:action="add">
 			    <Key>/IMAGE/Index</Key>
                            <Value>2</Value>
                <!--
                    Index:
                    1 "Windows Server 2022 Standard"
                    2 "Windows Server 2022 Standard (Desktopdarstellung)"
                    3 "Windows Server 2022 Datacenter"
                    4 "Windows Server 2022 Datacenter (Desktopdarstellung)"
                -->
                        </MetaData>
                    </InstallFrom>

                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>4</PartitionID>
                    </InstallTo>
                    <InstallToAvailablePartition>false</InstallToAvailablePartition>
                    <WillShowUI>Never</WillShowUI>
                </OSImage>
            </ImageInstall>

            <UserData>
                <ProductKey>
                    <Key>VDYBN-27WPP-V4HQT-9VMD4-VMK7H</Key>

  		<!--
                    Key:
                    1 "Windows Server 2022 Standard": VDYBN-27WPP-V4HQT-9VMD4-VMK7H
                    2 "Windows Server 2022 Datacenter": WX4NM-KYWYW-QJJR4-XV3QB-6VM33
                -->
                    <WillShowUI>Never</WillShowUI>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
                <FullName>Administrator</FullName>
                <Organization></Organization>
            </UserData>
        </component>
    </settings>


    <settings pass="offlineServicing">
        <component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <EnableLUA>false</EnableLUA>
        </component>
    </settings>



    <settings pass="specialize">

<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" language="neutral" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS">
      <RunSynchronous>
        <RunSynchronousCommand wcm:action="add">
          <Order>1</Order>
          <Path>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f</Path>
        </RunSynchronousCommand>
      </RunSynchronous>
    </component>

    <component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
        xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <fDenyTSConnections>false</fDenyTSConnections>
    </component>

    <component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
        xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <UserAuthentication>0</UserAuthentication>
    </component>

    <component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
        xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <FirewallGroups>
                    <FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
                    <Active>true</Active>
                    <Group>@FirewallAPI.dll,-28752</Group>
                    <Profile>all</Profile>
                </FirewallGroup>
        </FirewallGroups>
    </component>

    <component name="Microsoft-Windows-IE-ESC" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <IEHardenAdmin>false</IEHardenAdmin>
      <IEHardenUser>false</IEHardenUser>
    </component>

    <component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="neutral" name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS">
            <SearchScopes>
                <Scope wcm:action="add">
                    <ScopeDefault>true</ScopeDefault>
                    <ScopeDisplayName>Google</ScopeDisplayName>
                    <ScopeKey>Google</ScopeKey>
                    <ScopeUrl>http://www.google.com/search?q={searchTerms}</ScopeUrl>
                </Scope>
            </SearchScopes>
            <DisableAccelerators>true</DisableAccelerators>
            <DisableFirstRunWizard>true</DisableFirstRunWizard>
            <Home_Page>about:blank</Home_Page>
            <BlockPopups>no</BlockPopups>
            <CompanyName></CompanyName>
            <DisableDataExecutionPrevention>true</DisableDataExecutionPrevention>
            <DisableDevTools>true</DisableDevTools>
            <DisableOOBAccelerators>true</DisableOOBAccelerators>
            <FilterLevel>Low</FilterLevel>
            <GroupTabs>false</GroupTabs>
            <IntranetCompatibilityMode>false</IntranetCompatibilityMode>
            <LockToolbars>true</LockToolbars>
            <PlaySound>true</PlaySound>
            <ShowInformationBar>true</ShowInformationBar>
            <SuggestedSitesEnabled>false</SuggestedSitesEnabled>
            <AllowedSites />
        </component>

   
        <component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
        </component>

        <component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="neutral" name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS">
            <DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
        </component>

        <component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SkipAutoActivation>true</SkipAutoActivation>
        </component>
        <component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <CEIPEnabled>0</CEIPEnabled>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           
 <OEMInformation>
                <Manufacturer></Manufacturer>
                <SupportURL></SupportURL>
                <SupportPhone></SupportPhone>
                <SupportHours></SupportHours>
                <Model></Model>
                <HelpCustomized>false</HelpCustomized>
 </OEMInformation>
            <ComputerName>HYPER-V</ComputerName>
  		<!--
                    ComputerName:
                    1 hier Computer Name vergeben
                    2 wenn kein Name vergeben, dann wird ein Name vom Setup generiert
                -->
            <RegisteredOrganization></RegisteredOrganization>
            <CopyProfile>true</CopyProfile>
            <EnableStartMenu>true</EnableStartMenu>
            <OEMName></OEMName>
            <RegisteredOwner>Administrator</RegisteredOwner>
            <TimeZone>W. Europe Standard Time</TimeZone>
        </component>
    </settings>

    <settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<InputLocale>0407:00000407</InputLocale>
<SystemLocale>de-DE</SystemLocale>
<UILanguage>de-DE</UILanguage>
<UserLocale>de-DE</UserLocale>
</component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <VMModeOptimizations>
                    <SkipAdministratorProfileRemoval>false</SkipAdministratorProfileRemoval>
                </VMModeOptimizations>
                <HideEULAPage>true</HideEULAPage>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
		<HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <UnattendEnableRetailDemo>false</UnattendEnableRetailDemo>
                <ProtectYourPC>3</ProtectYourPC>
                <!--
                    ProtectYourPC:
                    1 Specifies the recommended level of protection for your computer.
                    2 Specifies that only updates are installed.
                    3 Specifies that automatic protection is disabled.
                -->
            </OOBE>

<UserAccounts>
<AdministratorPassword>
<Value>Test1234</Value>
    		<!--
                    hier eigenes Passwort einsetzen
                -->
<PlainText>true</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Administrator</Name>
<Group>RemoteDesktopUsers;Administrators</Group>
<Password>
<Value>Test1234</Value>
    		<!--
                    hier eigenes Passwort einsetzen
                -->
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>

	<AutoLogon>
		<Username>Administrator</Username>
		<Enabled>true</Enabled>
		<Password>
		<Value>Test1234</Value>
    		<!--
                    hier eigenes Passwort einsetzen
                -->
		<PlainText>true</PlainText>
		</Password>
	</AutoLogon>

            <RegisteredOrganization></RegisteredOrganization>
            <RegisteredOwner>Administrator</RegisteredOwner>
            <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>

            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <Description>Password Never Expires</Description>
                    <CommandLine>cmd /C wmic useraccount where name="Administrator" set PasswordExpires=false</CommandLine>
                    <Order>1</Order>
                    <RequiresUserInput>false</RequiresUserInput>
                </SynchronousCommand>

                <SynchronousCommand wcm:action="add">
                    <Description>Control Panel View</Description>
                    <Order>3</Order>
                    <CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine>
                    <RequiresUserInput>true</RequiresUserInput>
                </SynchronousCommand>

                <SynchronousCommand wcm:action="add">
                    <Order>4</Order>
                    <Description>Control Panel Icon Size</Description>
                    <RequiresUserInput>false</RequiresUserInput>
                    <CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine>
                </SynchronousCommand>

                <SynchronousCommand wcm:action="add">
                    <Order>9</Order>
                    <CommandLine>REG ADD "HKLM\System\CurrentControlSet\Control\Network\NewNetworkWindowOff" /F</CommandLine>
                    <Description>No New Network Block</Description>
                    <RequiresUserInput>false</RequiresUserInput>
                </SynchronousCommand>

		<SynchronousCommand wcm:action="add">
                    <Order>15</Order>
                    <Description>Allow RDP</Description>
                    <RequiresUserInput>false</RequiresUserInput>
                    <CommandLine>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0</CommandLine>
                </SynchronousCommand>


	<SynchronousCommand wcm:action="add">
		<Order>20</Order>
		<Description>old context menu</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>21</Order>
		<Description>TaskbarMn</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v TaskbarMn /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>22</Order>
		<Description>Explorer1</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v Hidden /t REG_DWORD /d 1</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>23</Order>
		<Description>Explorer2</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v HideFileExt /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>24</Order>
		<Description>Explorer3</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v ShowSuperHidden /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>


	<SynchronousCommand wcm:action="add">
		<Order>25</Order>
		<Description>Explorer4</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v TaskbarGlomLevel /t REG_DWORD /d 1</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>26</Order>
		<Description>Lockscreen</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization" /f /v NoLockScreen /t REG_DWORD /d 1</CommandLine>
	</SynchronousCommand>


	<SynchronousCommand wcm:action="add">
		<Order>27</Order>
		<Description>Widget</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Dsh" /f /v AllowNewsAndInterests /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>


	<SynchronousCommand wcm:action="add">
		<Order>30</Order>
		<Description>Disable_Shutdown_Event_Tracker</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\Reliability" /f /v ShutdownReasonOn /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>31</Order>
		<Description>AudioService1</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>sc config Audiosrv start=Auto</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>32</Order>
		<Description>AudioService2</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>net start "AudioSrv"</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>33</Order>
		<Description>WLANService</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>powershell Enable-WindowsOptionalFeature -Online -FeatureName "WirelessNetworking" -NoRestart</CommandLine>
	</SynchronousCommand>


	<SynchronousCommand wcm:action="add">
		<Order>39</Order>
		<Description>Telemetry</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\DataCollection" /f /v AllowTelemetry /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>40</Order>
		<Description>WindowUpdate</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /f /v NoAutoUpdate /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>41</Order>
		<Description>WindowUpdate2</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /f /v AUOptions /t REG_DWORD /d 4</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>42</Order>
		<Description>WindowUpdate3</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /f /v ScheduledInstallDay /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>43</Order>
		<Description>WindowUpdate4</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /f /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1</CommandLine>
	</SynchronousCommand>

       <SynchronousCommand wcm:action="add">
          <Order>46</Order>
	    <Description>AzureArcSetup</Description>
	    <RequiresUserInput>false</RequiresUserInput>
          <CommandLine>powershell -NoProfile -ExecutionPolicy Bypass Remove-WindowsFeature AzureArcSetup</CommandLine>
        </SynchronousCommand>

	<SynchronousCommand wcm:action="add">
		<Order>47</Order>
		<Description>TaskbarAL</Description>
		<RequiresUserInput>false</RequiresUserInput>
		<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v TaskbarAl /t REG_DWORD /d 0</CommandLine>
	</SynchronousCommand>


             </FirstLogonCommands>


            <TimeZone>W. Europe Standard Time</TimeZone>
        </component>
    </settings>

</unattend>
Erklärungen/Ausfüllhinweise findest dort unter <!--
Weißt du schon, wie du sie integrierst?
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 07.04.2024, 13:35

Vielen Dank,
und ja hatte mich ja schon damit befasst und selber schon ne autounattend erstellt für WS22 und W10Enterprise.
Die Win10 lief bis zum reboot durch, nur dann ging nix mehr weiter.

Aber bastel erstmal mein Skript fertig, bis auf die PS7 Installation laufen jetzt alle GPOs

Benutzeravatar
g-force
Elite
Elite
Beiträge: 2052
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 282 Mal
Danke erhalten: 248 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von g-force » 07.04.2024, 14:14

Ich hatte mir was überlegt und daran herumgebastelt: http://gofile.me/7buP9/XTz5ovIJS (entpacken nach "C:\ISO2VM")

Leider funktioniert was nicht: Die neue ISO wird nicht in die VM eingebunden. Die VM wird erstellt und startet, aber bootet natürlich nicht. Alle anderen Schritte funktionieren.Ich finde den Fehler nicht.
Ich habe getestet mit einer Window10.iso direkt von MCT (Media Creation Tool). Man kann auch jede andere ISO nehmen - entweder in "Windows10.iso" umbenennen oder im Script ändern.

Hier das Hauptscript:

Code: Alles auswählen

# Pfade definieren
$WorkPath = "C:\ISO2VM" # Hier den Pfad zum Arbeitsordner angeben
$ISOname = "Windows10" # Hier den Namen der Quell-ISO angeben (ohne .iso)
$VMPath = "C:\ISO2VM" # Hier den Pfad zu den VM angeben
$PCName = "Win10-WORK" # Hier den Namen des Host-PC angeben
$SwitchName = "VLAN_1" # Hier den Namen der VM-NIC angeben

$ISOPath = "$WorkPath\$ISOname.iso"
$XMLpath = "$WorkPath\autounattend.xml"
$TempPath = "$WorkPath\Temp"
$Toolspath = "$WorkPath\tools"
$ISOOutput = "$ISOName-Unattend.iso"

# Funktion zum Entpacken der ISO in ein temporäres Verzeichnis mit 7-Zip
function Extract-IsoWith7Zip {
    param (
        [string]$IsoPath,
        [string]$TempPath
    )

    # Pfad zur 7-Zip-Executable (anpassen, falls erforderlich)
    $zipExe = "$ToolsPath\7-Zip\7z.exe"

    # Erstelle das temporäre Verzeichnis, falls es nicht existiert
    if (-not (Test-Path $TempPath)) {
        New-Item -ItemType Directory -Path $TempPath | Out-Null
        Write-Host "Temp-Verzeichnis erstellt" -ForegroundColor Green
    }

    # Entpacke die ISO in das temporäre Verzeichnis mit 7-Zip
    & $zipExe x "$ISOPath" -o"$TempPath" -aoa | Out-Null
    Write-Host "ISO wurde entpackt" -ForegroundColor Green
}

# Funktion zum Kopieren der XML-Datei
function Copy-XMLToTempPath {
    param (
        [string]$XmlPath,
        [string]$TempPath
    )

    # Kopiere die XML-Datei nach $TempPath
    Copy-Item -Path $XMLPath -Destination $TempPath | Out-Null
    Write-Host "Autounattend.xml wurde kopiert" -ForegroundColor Green

}

# Funktion zum Erzeugen des Ausgabe-ISO mit oscdimg.exe
function Erzeuge-OutputISO {
    param (
        [string]$TempPath,
        [string]$ISOOutput
    )

    # oscdimg.exe-Befehl zum Erzeugen des Ausgabe-ISO
    & "$ToolsPath\oscdimg\oscdimg.exe" -b"$ToolsPath\oscdimg\efisys_noprompt.bin" -h -m -o -u2 -udfver102 "$TempPath" "$WorkPath\$ISOOutput" | Out-Null

    # Meldung ausgeben, wenn der Vorgang abgeschlossen ist
    Write-Host "Neue ISO wurde erfolgreich erstellt: $ISOOutput" -ForegroundColor Green
}

# Erstelle neue VM
function New-MyVirtualMachine {
    param (
        [string]$VMName,             # Name der virtuellen Maschine
        [string]$VMPath,             # Pfad, in dem die virtuelle Festplatte gespeichert wird
        [string]$WorkPath,           # Pfad zum ISO-Image
        [string]$ISOOutput,          # Name des ISO-Images
        [string]$PCName              # Name des PCs
    )

    # Überprüfen, ob eine VM mit dem angegebenen Namen vorhanden ist
    $existingVM = Get-VM -Name $VMName -ErrorAction SilentlyContinue

    # Falls eine VM mit dem angegebenen Namen vorhanden ist, stoppen und entfernen
    if ($existingVM) {
        Stop-VM -Name $VMName -Force -Confirm:$false
        Remove-VM -Name $VMName -Force -Confirm:$false
        Remove-Item "$VMPath\$VMName.vhdx" -Force -ErrorAction SilentlyContinue
    }

    # Neue VM erstellen
    New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMPath\$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName $SwitchName

    # DVD-Laufwerk hinzufügen und ISO mounten
    Add-VMScsiController -VMName $VMName
    Set-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput
    $DVDDrive = Get-VMDvdDrive -VMName $VMName 
    Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive

    # VM-Einstellungen konfigurieren
    Set-VMProcessor -VMName $VMName -Count 2
    Set-VM -VMName $VMName -AutomaticCheckpointsEnabled $false -CheckpointType Disabled
    Enable-VMIntegrationService -VMName $VMName -Name 'Gastdienstschnittstelle'
    Set-VMVideo -VMName $VMName -ResolutionType Maximum -HorizontalResolution 1366 -VerticalResolution 768
    Set-VM -VMName $VMName -DynamicMemory -MemoryMinimumBytes 1024mb -MemoryMaximumBytes 4GB -Confirm:$false
    Set-VM -VMName $VMName -AutomaticStartAction StartIfRunning -AutomaticStopAction Save -Confirm:$false

    # TPM aktivieren
    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName
    Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
    Enable-VMTPM -VMName $VMName
    Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true

    # VM starten und darauf zugreifen
    Start-VM -Name $VMName
    vmconnect $PCName $VMName
}



# Starte Funktionen
Extract-IsoWith7Zip -IsoPath $ISOPath -TempPath $TempPath # ISO mit 7-Zip entpacken
Copy-XMLToTempPath -XmlPath $XMLPath -TempPath $TempPath # Kopiere die XML-Datei in das temporäre Verzeichnis
Erzeuge-OutputISO -TempPath $TempPath -ISOOutput $ISOOutput # Neue ISO mit OSCDIMG erstellen
Remove-Item -Path $TempPath -Recurse -Force # Lösche Temp-Ordner
New-MyVirtualMachine -VMName "$ISOName" -VMPath "$VMPath" -WorkPath "$WorkPath" -ISOName "$ISOOutput" -PCName "$PCName"

PAUSE
Windows VISTA x64 - Integration ALLER Updates: viewtopic.php?t=29624
Windows 7 x86/x64 - Integration ALLER Updates: viewtopic.php?t=26485
Windows 8.1 x86/x64 - Integration ALLER Updates: viewtopic.php?t=28193
Windows XP x86/x64 ISO mit allen Updates: viewtopic.php?t=28348
Windows XP x86/x64 - Setup von WIM (XP2ESD): viewtopic.php?t=28372

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2217
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 231 Mal
Danke erhalten: 309 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Holgi » 07.04.2024, 18:33

hab´ jetzt den ganzen Nachmittag damit verbracht, den Fehler zu finden. Erfolglos!
Ist wahrscheinlich ganz einfach. Aber ich komme nicht drauf. Alles Mögliche getestet.
Sorry!
Aber vlt. wäre es sowieso einfacher, aus der ISO direkt eine VHDX zu machen und darin dann die autounattend.xml einzupflanzen?

viewtopic.php?p=364135#p364135
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Cyber-Mike
Nullposter
Beiträge: 0
Registriert: 30.03.2024, 00:19
Hat sich bedankt: 11 Mal
Danke erhalten: 2 Mal
Gender:

Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs

Beitrag von Cyber-Mike » 07.04.2024, 18:39

g-force hat geschrieben: 07.04.2024, 14:14 Ich hatte mir was überlegt und daran herumgebastelt: http://gofile.me/7buP9/XTz5ovIJS (entpacken nach "C:\ISO2VM")

Leider funktioniert was nicht: Die neue ISO wird nicht in die VM eingebunden. Die VM wird erstellt und startet, aber bootet natürlich nicht. Alle anderen Schritte funktionieren.Ich finde den Fehler nicht.
Ich habe getestet mit einer Window10.iso direkt von MCT (Media Creation Tool). Man kann auch jede andere ISO nehmen - entweder in "Windows10.iso" umbenennen oder im Script ändern.

Hier das Hauptscript:

Code: Alles auswählen

# Pfade definieren
$WorkPath = "C:\ISO2VM" # Hier den Pfad zum Arbeitsordner angeben
$ISOname = "Windows10" # Hier den Namen der Quell-ISO angeben (ohne .iso)
$VMPath = "C:\ISO2VM" # Hier den Pfad zu den VM angeben
$PCName = "Win10-WORK" # Hier den Namen des Host-PC angeben
$SwitchName = "VLAN_1" # Hier den Namen der VM-NIC angeben

$ISOPath = "$WorkPath\$ISOname.iso"
$XMLpath = "$WorkPath\autounattend.xml"
$TempPath = "$WorkPath\Temp"
$Toolspath = "$WorkPath\tools"
$ISOOutput = "$ISOName-Unattend.iso"

# Funktion zum Entpacken der ISO in ein temporäres Verzeichnis mit 7-Zip
function Extract-IsoWith7Zip {
    param (
        [string]$IsoPath,
        [string]$TempPath
    )

    # Pfad zur 7-Zip-Executable (anpassen, falls erforderlich)
    $zipExe = "$ToolsPath\7-Zip\7z.exe"

    # Erstelle das temporäre Verzeichnis, falls es nicht existiert
    if (-not (Test-Path $TempPath)) {
        New-Item -ItemType Directory -Path $TempPath | Out-Null
        Write-Host "Temp-Verzeichnis erstellt" -ForegroundColor Green
    }

    # Entpacke die ISO in das temporäre Verzeichnis mit 7-Zip
    & $zipExe x "$ISOPath" -o"$TempPath" -aoa | Out-Null
    Write-Host "ISO wurde entpackt" -ForegroundColor Green
}

# Funktion zum Kopieren der XML-Datei
function Copy-XMLToTempPath {
    param (
        [string]$XmlPath,
        [string]$TempPath
    )

    # Kopiere die XML-Datei nach $TempPath
    Copy-Item -Path $XMLPath -Destination $TempPath | Out-Null
    Write-Host "Autounattend.xml wurde kopiert" -ForegroundColor Green

}

# Funktion zum Erzeugen des Ausgabe-ISO mit oscdimg.exe
function Erzeuge-OutputISO {
    param (
        [string]$TempPath,
        [string]$ISOOutput
    )

    # oscdimg.exe-Befehl zum Erzeugen des Ausgabe-ISO
    & "$ToolsPath\oscdimg\oscdimg.exe" -b"$ToolsPath\oscdimg\efisys_noprompt.bin" -h -m -o -u2 -udfver102 "$TempPath" "$WorkPath\$ISOOutput" | Out-Null

    # Meldung ausgeben, wenn der Vorgang abgeschlossen ist
    Write-Host "Neue ISO wurde erfolgreich erstellt: $ISOOutput" -ForegroundColor Green
}

# Erstelle neue VM
function New-MyVirtualMachine {
    param (
        [string]$VMName,             # Name der virtuellen Maschine
        [string]$VMPath,             # Pfad, in dem die virtuelle Festplatte gespeichert wird
        [string]$WorkPath,           # Pfad zum ISO-Image
        [string]$ISOOutput,          # Name des ISO-Images
        [string]$PCName              # Name des PCs
    )

    # Überprüfen, ob eine VM mit dem angegebenen Namen vorhanden ist
    $existingVM = Get-VM -Name $VMName -ErrorAction SilentlyContinue

    # Falls eine VM mit dem angegebenen Namen vorhanden ist, stoppen und entfernen
    if ($existingVM) {
        Stop-VM -Name $VMName -Force -Confirm:$false
        Remove-VM -Name $VMName -Force -Confirm:$false
        Remove-Item "$VMPath\$VMName.vhdx" -Force -ErrorAction SilentlyContinue
    }

    # Neue VM erstellen
    New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMPath\$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName $SwitchName

    # DVD-Laufwerk hinzufügen und ISO mounten
    Add-VMScsiController -VMName $VMName
    Set-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput
    $DVDDrive = Get-VMDvdDrive -VMName $VMName 
    Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive

    # VM-Einstellungen konfigurieren
    Set-VMProcessor -VMName $VMName -Count 2
    Set-VM -VMName $VMName -AutomaticCheckpointsEnabled $false -CheckpointType Disabled
    Enable-VMIntegrationService -VMName $VMName -Name 'Gastdienstschnittstelle'
    Set-VMVideo -VMName $VMName -ResolutionType Maximum -HorizontalResolution 1366 -VerticalResolution 768
    Set-VM -VMName $VMName -DynamicMemory -MemoryMinimumBytes 1024mb -MemoryMaximumBytes 4GB -Confirm:$false
    Set-VM -VMName $VMName -AutomaticStartAction StartIfRunning -AutomaticStopAction Save -Confirm:$false

    # TPM aktivieren
    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName
    Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
    Enable-VMTPM -VMName $VMName
    Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true

    # VM starten und darauf zugreifen
    Start-VM -Name $VMName
    vmconnect $PCName $VMName
}



# Starte Funktionen
Extract-IsoWith7Zip -IsoPath $ISOPath -TempPath $TempPath # ISO mit 7-Zip entpacken
Copy-XMLToTempPath -XmlPath $XMLPath -TempPath $TempPath # Kopiere die XML-Datei in das temporäre Verzeichnis
Erzeuge-OutputISO -TempPath $TempPath -ISOOutput $ISOOutput # Neue ISO mit OSCDIMG erstellen
Remove-Item -Path $TempPath -Recurse -Force # Lösche Temp-Ordner
New-MyVirtualMachine -VMName "$ISOName" -VMPath "$VMPath" -WorkPath "$WorkPath" -ISOName "$ISOOutput" -PCName "$PCName"

PAUSE
Was mir auf die Schnelle aufgefallen ist, dass Du zwei Variablen drinnen hast die es so nicht gibt, hab die mal abgeändert und poste Dir das komplette Skript

Code: Alles auswählen

# Pfade definieren
$WorkPath = "C:\ISO2VM" # Hier den Pfad zum Arbeitsordner angeben
$ISOname = "Windows10" # Hier den Namen der Quell-ISO angeben (ohne .iso)
$VMPath = "C:\ISO2VM" # Hier den Pfad zu den VM angeben
$PCName = "Win10-WORK" # Hier den Namen des Host-PC angeben
$SwitchName = "VLAN_1" # Hier den Namen der VM-NIC angeben

$ISOPath = "$WorkPath\$ISOname.iso"
$XMLpath = "$WorkPath\autounattend.xml"
$TempPath = "$WorkPath\Temp"
$Toolspath = "$WorkPath\tools"
$ISOOutput = "$ISOName-Unattend.iso"

# Funktion zum Entpacken der ISO in ein temporäres Verzeichnis mit 7-Zip
function Invoke-IsoExtraction {
    param (
        [string]$IsoPath,
        [string]$TempPath
    )

    # Pfad zur 7-Zip-Executable (anpassen, falls erforderlich)
    $zipExe = "$ToolsPath\7-Zip\7z.exe"

    # Erstelle das temporäre Verzeichnis, falls es nicht existiert
    if (-not (Test-Path $TempPath)) {
        New-Item -ItemType Directory -Path $TempPath | Out-Null
        Write-Host "Temp-Verzeichnis erstellt" -ForegroundColor Green
    }

    # Entpacke die ISO in das temporäre Verzeichnis mit 7-Zip
    & $zipExe x "$ISOPath" -o"$TempPath" -aoa | Out-Null
    Write-Host "ISO wurde entpackt" -ForegroundColor Green
}

# Funktion zum Kopieren der XML-Datei
function Copy-XMLToTempPath {
    param (
        [string]$XmlPath,
        [string]$TempPath
    )

    # Kopiere die XML-Datei nach $TempPath
    Copy-Item -Path $XMLPath -Destination $TempPath | Out-Null
    Write-Host "Autounattend.xml wurde kopiert" -ForegroundColor Green

}

# Funktion zum Erzeugen des Ausgabe-ISO mit oscdimg.exe
function New-OutputISO {
    param (
        [string]$TempPath,
        [string]$ISOOutput
    )

    # oscdimg.exe-Befehl zum Erzeugen des Ausgabe-ISO
    & "$ToolsPath\oscdimg\oscdimg.exe" -b"$ToolsPath\oscdimg\efisys_noprompt.bin" -h -m -o -u2 -udfver102 "$TempPath" "$WorkPath\$ISOOutput" | Out-Null

    # Meldung ausgeben, wenn der Vorgang abgeschlossen ist
    Write-Host "Neue ISO wurde erfolgreich erstellt: $ISOOutput" -ForegroundColor Green
}

# Erstelle neue VM
function New-MyVirtualMachine {
    param (
        [string]$VMName,             # Name der virtuellen Maschine
        [string]$VMPath,             # Pfad, in dem die virtuelle Festplatte gespeichert wird
        [string]$WorkPath,           # Pfad zum ISO-Image
        [string]$ISOOutput,          # Name des ISO-Images
        [string]$PCName              # Name des PCs
    )

    # Überprüfen, ob eine VM mit dem angegebenen Namen vorhanden ist
    $existingVM = Get-VM -Name $VMName -ErrorAction SilentlyContinue

    # Falls eine VM mit dem angegebenen Namen vorhanden ist, stoppen und entfernen
    if ($existingVM) {
        Stop-VM -Name $VMName -Force -Confirm:$false
        Remove-VM -Name $VMName -Force -Confirm:$false
        Remove-Item "$VMPath\$VMName.vhdx" -Force -ErrorAction SilentlyContinue
    }

    # Neue VM erstellen
    New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMPath\$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName $SwitchName

    # DVD-Laufwerk hinzufügen und ISO mounten
    Add-VMScsiController -VMName $VMName
    Set-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput
    $DVDDrive = Get-VMDvdDrive -VMName $VMName 
    Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive

    # VM-Einstellungen konfigurieren
    Set-VMProcessor -VMName $VMName -Count 2
    Set-VM -VMName $VMName -AutomaticCheckpointsEnabled $false -CheckpointType Disabled
    Enable-VMIntegrationService -VMName $VMName -Name 'Gastdienstschnittstelle'
    Set-VMVideo -VMName $VMName -ResolutionType Maximum -HorizontalResolution 1366 -VerticalResolution 768
    Set-VM -VMName $VMName -DynamicMemory -MemoryMinimumBytes 1024mb -MemoryMaximumBytes 4GB -Confirm:$false
    Set-VM -VMName $VMName -AutomaticStartAction StartIfRunning -AutomaticStopAction Save -Confirm:$false

    # TPM aktivieren
    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName
    Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
    Enable-VMTPM -VMName $VMName
    Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true

    # VM starten und darauf zugreifen
    Start-VM -Name $VMName
    vmconnect $PCName $VMName
}



# Starte Funktionen
Extract-IsoWith7Zip -IsoPath $ISOPath -TempPath $TempPath # ISO mit 7-Zip entpacken
Copy-XMLToTempPath -XmlPath $XMLPath -TempPath $TempPath # Kopiere die XML-Datei in das temporäre Verzeichnis
Erzeuge-OutputISO -TempPath $TempPath -ISOOutput $ISOOutput # Neue ISO mit OSCDIMG erstellen
Remove-Item -Path $TempPath -Recurse -Force # Lösche Temp-Ordner
New-MyVirtualMachine -VMName "$ISOName" -VMPath "$VMPath" -WorkPath "$WorkPath" -ISOName "$ISOOutput" -PCName "$PCName"

PAUSE
vllt klappt es ja dann

Antworten