Probleme mit Remot-PowerShell-Sitzung wegen GPOs
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
jetzt geht gar nichts mehr:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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
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
-
Tante Google
-
- Beobachter
- Beiträge: 3
- Registriert: 30.03.2024, 00:19
- Hat sich bedankt: 12 Mal
- Danke erhalten: 3 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Ups ganz übersehen, Du musst dann natürlich am Ende vom Skript deine Starte Funktionen auch umbenennen xD
-
- Beobachter
- Beiträge: 3
- Registriert: 30.03.2024, 00:19
- Hat sich bedankt: 12 Mal
- Danke erhalten: 3 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Zeile 15 Extract-IsoWith7Zip in Invoke-IsoExtraction
Zeile 49 Erzeuge-OutputISO in New-OutputISO
115 und 117 ebenfalls
Zeile 49 Erzeuge-OutputISO in New-OutputISO
115 und 117 ebenfalls
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
jetzt läuft das Script wieder, aber die ISO wird immer noch nicht eingehängt.
Ich stelle hier mal mein Script zur Verfügung. Da läuft das Ganze ohne murren ab. Der Anfang vom Script ist anders, da der VMName aus einer Batch-Datei (mit der das PS-Script aufgerufen wird) übergeben wird.
Vlt. kann jemand von euch - der sich besser mit Powershell auskennt - davon einen Nutzen ziehen und das Script von Kollege @g-force entsprechend umschreiben.
Das mit dem Computer-Host-Namen finde ich in meinem Script ganz gut gelöst:
$env:COMPUTERNAME
So ist man flexibel und muss die Variablen nicht da auch noch anpassen.
Ich stelle hier mal mein Script zur Verfügung. Da läuft das Ganze ohne murren ab. Der Anfang vom Script ist anders, da der VMName aus einer Batch-Datei (mit der das PS-Script aufgerufen wird) übergeben wird.
Vlt. kann jemand von euch - der sich besser mit Powershell auskennt - davon einen Nutzen ziehen und das Script von Kollege @g-force entsprechend umschreiben.
Das mit dem Computer-Host-Namen finde ich in meinem Script ganz gut gelöst:
$env:COMPUTERNAME
So ist man flexibel und muss die Variablen nicht da auch noch anpassen.
Code: Alles auswählen
param($VMName)
Write-Host "der Name der VM ist" $VMName -BackgroundColor Black -ForegroundColor White
Get-VM "$VMName" | select -Property VMName, State
Stop-Process -Name 'vmconnect' | out-null
Stop-VM -Name "$VMName" -Force | out-null
Remove-VM -Name "$VMName" -Force | out-null
# Remove-Item "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\$VMName.vhdx" -Force | out-null
Remove-Item "$env:ProgramData\Microsoft\Windows\Virtual Hard Disks\$VMName.vhdx" -Force
cls
Write-Host "$VMName deleted!!" -BackgroundColor Black -ForegroundColor White
# Switch is nothing but network adapter
# $Switch = (Get-VMSwitch).Name
$Switch = "Default Switch"
# -SwitchName (Get-VMSwitch).Name
# set Switch = 'VLAN'
# set Switch = 'default switch'
# OS Iso file should be assigned to InstallMedia
# $InstallMedia = 'Hyper V.iso'
Set-VMHost -VirtualMachinePath "$env:public\documents\Hyper-V\Virtual hard disks"
# Create New Virtual Machine
# MemoryStartupBytes contents the RAM size of VM.
# NewVHDSizeBytes contents the size of HD.
Write-Host "Erstelle VM $VMName" -BackgroundColor Black -ForegroundColor White
New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMName.vhdx" -NewVHDSizeBytes 60GB -SwitchName $Switch
# New-VM -Name $VMName -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\$VMName.vhdx" -NewVHDSizeBytes 60GB -SwitchName $Switch
# New-VM -Name $VMName -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "$env:public\documents\Hyper-V\Virtual hard disks\$VMName.vhdx" -NewVHDSizeBytes 60GB -SwitchName $Switch
Write-Host "Virtual Maschine anpassen..." -BackgroundColor Black -ForegroundColor Green
# Add DVD Drive to Virtual Machine
Add-VMScsiController -VMName $VMName
Add-VMDvdDrive -VMName $VMName -Path $PSScriptRoot\$VMName.iso
# Mount Installation Media
$DVDDrive = Get-VMDvdDrive -VMName $VMName
# Configure Virtual Machine to Boot from DVD
Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive
# Die VM bekommt 2 virtuelle Prozessoren
Set-VMProcessor -VMName $VMName -Count 2
# Checkpoints nicht automatisch erstellen
Set-VM -VMName $VMName -AutomaticCheckpointsEnabled $false
Set-VM -VMName $VMName -CheckpointType Disabled
# Gastdienste aktivieren (WINDOWS English, WINDOWS German)
# Enable-VMIntegrationService -VMName $VMName -Name 'Guest Service Interface'
Enable-VMIntegrationService -VMName $VMName -Name 'Gastdienstschnittstelle'
# Zeitsynchronisation (WINDOWS English, WINDOWS German)
# Disable-VMIntegrationService -VMName $VMName -Name "Time Synchronization"
# Disable-VMIntegrationService -VMName $VMName -Name "Zeitsynchronistation"
# Videoauflösung einstellen
set-vmvideo -VMName $VMName -ResolutionType Maximum -HorizontalResolution 1366 -VerticalResolution 768
# Dynamischen Arbeitsspeicher einrichten
# Set-VM -VMName $VMName -DynamicMemory -MemoryMinimumBytes 512mb -MemoryMaximumBytes 2GB -Confirm:$false
Set-VM -VMName $VMName -DynamicMemory -MemoryMinimumBytes 512mb -MemoryMaximumBytes 4GB -Confirm:$false
# automatische Start-/StoppAktionen einrichten
Set-VM -VMName $VMName -AutomaticStartAction StartIfRunning -AutomaticStopAction Save -Confirm:$false
# ExposeVirtualizationExtensions
Set-VMProcessor -VMName $VMName -ExposeVirtualizationExtensions $true
# TPM aktivieren
# https://charbelnemnom.com/how-to-enable-virtual-tpm-vtpm-in-windows-server-2016-hyper-v-vm-hyperv-ws2016/
# https://docs.microsoft.com/en-us/answers/questions/566006/hyper-v-2019-server-enable-tpm.html
# https://deploywindows.com/2015/11/13/add-virtual-tpm-in-windows-10-hyper-v-guest-with-powershell/
Set-VMKeyProtector -VMName $VMName -NewLocalKeyProtector
Enable-VMTPM -VMName $VMName
# Set-VMSecurity –VMName $VMName -EncryptStateAndVmMigrationTraffic $true
Write-Host "Virtual Maschine: $VMName... starten" -BackgroundColor Black -ForegroundColor Green
# Start the VM and connect to it
Start-VM -Name $VMName
Write-Host "Der Virenschutz wird wieder aktiviert" -BackgroundColor Black -ForegroundColor White
Set-MpPreference -PUAProtection Enabled
Set-MpPreference -DisableRealtimeMonitoring $false
Set-MpPreference -MAPSReporting Advanced
Set-MpPreference -SubmitSamplesConsent SendAllSamples
Set-MpPreference -EnableControlledFolderAccess Disabled
# powershell.exe -command "Set-MpPreference -EnableControlledFolderAccess enabled
powercfg /setactive 381b4222-f694-41f0-9685-ff5bb260df2e
Set-MpPreference -DisableRealtimeMonitoring $false
vmconnect $env:COMPUTERNAME $VMName
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
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
- g-force
- Elite
- Beiträge: 2702
- Registriert: 07.10.2016, 19:30
- Hat sich bedankt: 403 Mal
- Danke erhalten: 416 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Was soll es bringen, die Funktionen umzubenennen? Bis dahin funktioniert das Script auch, die neue ISO wird erstellt. Auch wird anschließend die neue VM erstellt. Es wird nur die neue ISO nicht als DVD-Laufwerk in der VM eingebaut. Der Fehler liegt irgendwo im Bereich Zeile 85-89:
Code: Alles auswählen
# 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
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
-
- Beobachter
- Beiträge: 3
- Registriert: 30.03.2024, 00:19
- Hat sich bedankt: 12 Mal
- Danke erhalten: 3 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
wegen dem umbenennen kannst Dir vllt mal den Link https://learn.microsoft.com/de-de/power ... ps-modules durchlesen.g-force hat geschrieben: 07.04.2024, 20:29 Was soll es bringen, die Funktionen umzubenennen? Bis dahin funktioniert das Script auch, die neue ISO wird erstellt. Auch wird anschließend die neue VM erstellt. Es wird nur die neue ISO nicht als DVD-Laufwerk in der VM eingebaut. Der Fehler liegt irgendwo im Bereich Zeile 85-89:
Code: Alles auswählen
# 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
Du erstellst eine Gen2 VM was ich raus gelesen hatte, wieso fügst dann noch einen Scsi Controller hinzu ? der is doch Standard dabei, lass die Zeile mal weg, dafür könntest das aber mal testen
Code: Alles auswählen
Add-VMDvdDrive -VMName $VMName-ControllerNumber 0
Set-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput -ControllerLocation 1
Set-VMFirmware -VMName $VMName -FirstBootDevice (Get-VMDvdDrive -VMName $VMName)
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Das könnte es sein. In meiner Vhdx hängen virt. Festplatte und DVD an einem Scsi Controller.
Allerdings konnte ich keinen großen Unterschied diesbezüglich in den Scripten erkennen.
Allerdings konnte ich keinen großen Unterschied diesbezüglich in den Scripten erkennen.
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
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
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
da ist noch ein Fehler drin:
muss lauten:
aber es geht tatsächlich noch einfacher:
irgendwie scheint das Script nicht zurechtzukommen mit
$WorkPath\$ISOOutput
Ich nehme an, weil die beiden Variablen mit Anführungszeichen versehen sind.
Die Ausgabe wäre ja: "C:\ISO2VM"\"Server2022"-Unattend.iso"
So funktioniert das Script, wenn man den Pfad auflöst:
wenn man das Script umschreibt und dabei keine Anführungszeichen benutzt (voraussetzt), müßte es funktionieren.
Code: Alles auswählen
Add-VMDvdDrive -VMName $VMName-ControllerNumber 0
Code: Alles auswählen
Add-VMDvdDrive -VMName $VMName -ControllerNumber 0
Code: Alles auswählen
Add-VMDvdDrive -VMName $VMName -Path XXXXXX
Set-VMFirmware -VMName $VMName -FirstBootDevice (Get-VMDvdDrive -VMName $VMName)
$WorkPath\$ISOOutput
Ich nehme an, weil die beiden Variablen mit Anführungszeichen versehen sind.
Die Ausgabe wäre ja: "C:\ISO2VM"\"Server2022"-Unattend.iso"
So funktioniert das Script, wenn man den Pfad auflöst:
Code: Alles auswählen
# Pfade definieren
$WorkPath = "C:\ISO2VM" # Hier den Pfad zum Arbeitsordner angeben
$ISOname = "Server2022" # Hier den Namen der Quell-ISO angeben (ohne .iso)
$VMPath = "C:\ISO2VM" # Hier den Pfad zu den VM angeben
$PCName = "$env:COMPUTERNAME" # Hier den Namen des Host-PC angeben
$SwitchName = "Default Switch" # 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
Write-Host "ISO wird entpackt" -ForegroundColor Green
& $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-VMDvdDrive -VMName $VMName -Path C:\ISO2VM\Server2022-Unattend.iso
Set-VMFirmware -VMName $VMName -FirstBootDevice (Get-VMDvdDrive -VMName $VMName)
# 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
Invoke-IsoExtraction -IsoPath $ISOPath -TempPath $TempPath # ISO mit 7-Zip entpacken
Copy-XMLToTempPath -XmlPath $XMLPath -TempPath $TempPath # Kopiere die XML-Datei in das temporäre Verzeichnis
New-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
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
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
- g-force
- Elite
- Beiträge: 2702
- Registriert: 07.10.2016, 19:30
- Hat sich bedankt: 403 Mal
- Danke erhalten: 416 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Erstmal vielen Dank für eure Hilfe!
Ich habe mir die letzte Version von @Holgi nochmal vorgenommen und ein paar Sachen angepasst.
Versuch 1:
- $ISIName = "Windows10" (das ist die ISO, die ich verwende)
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput
Ergebnis: funktioniert nicht (wie gehabt)
Versuch 2:
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\Windows10-Unattend.iso
Ergebnis: funktioniert
Versuch 3:
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOName-Unattend.iso
Ergebnis: funktioniert
Fazit: Es liegt also an der Variable "$ISOOutput" bei der VM-Erstellung. Weiter oben im Script wird mit dieser Variablen die neue ISO erstellt, da funktioniert es noch. Egal, die Konfiguration aus Versuch 3 erfüllt den Zweck - es sollten ja so wenig wie möglich Anpassungen des End-Users nötig sein (eigentlich nur "$ISOName = ???")
Hier das funktionierende Script:
Ich habe mir die letzte Version von @Holgi nochmal vorgenommen und ein paar Sachen angepasst.
Versuch 1:
- $ISIName = "Windows10" (das ist die ISO, die ich verwende)
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOOutput
Ergebnis: funktioniert nicht (wie gehabt)
Versuch 2:
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\Windows10-Unattend.iso
Ergebnis: funktioniert
Versuch 3:
- Add-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOName-Unattend.iso
Ergebnis: funktioniert
Fazit: Es liegt also an der Variable "$ISOOutput" bei der VM-Erstellung. Weiter oben im Script wird mit dieser Variablen die neue ISO erstellt, da funktioniert es noch. Egal, die Konfiguration aus Versuch 3 erfüllt den Zweck - es sollten ja so wenig wie möglich Anpassungen des End-Users nötig sein (eigentlich nur "$ISOName = ???")
Hier das funktionierende Script:
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 = "$env:COMPUTERNAME" # Hier den Namen des Host-PC angeben
$SwitchName = "Default Switch" # 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
Write-Host "ISO wird entpackt" -ForegroundColor Green
& $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-VMDvdDrive -VMName $VMName -Path $WorkPath\$ISOName-Unattend.iso
Set-VMFirmware -VMName $VMName -FirstBootDevice (Get-VMDvdDrive -VMName $VMName)
# 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
Invoke-IsoExtraction -IsoPath $ISOPath -TempPath $TempPath # ISO mit 7-Zip entpacken
Copy-XMLToTempPath -XmlPath $XMLPath -TempPath $TempPath # Kopiere die XML-Datei in das temporäre Verzeichnis
New-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"
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
- g-force
- Elite
- Beiträge: 2702
- Registriert: 07.10.2016, 19:30
- Hat sich bedankt: 403 Mal
- Danke erhalten: 416 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Wenn man die Struktur noch etwas ändert, kann man auch einen $OEM$-Ordner incl. Regtweaks, Scripten und SetupComplete mit integrieren. Da die WIM bzw. ESD dabei nicht verändert wird, funktioniert das eigentlich bei allen gängigen ISO, auch AIO. Durch eine eigene "autounattend.xml" kann man das dann wunderbar anpassen.
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Ist das jetzt noch interessant, oder hat sich das für dich erledigt?Cyber-Mike hat geschrieben: 06.04.2024, 20:48 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.
Powershell Befehle lassen sich ja ebenfalls in die autounattend.xml integrieren.
Und das mit den Einstellungen für den Netadapter sollte eigentlich auch möglich sein. Das wäre jedoch Neuland für mich.
Wir haben ja auch schon den Server 2025 mit GUI:Server 2025 (hab übrigens schon ne Version ohne GUI davon)
https://www.deskmodder.de/blog/2024/03/ ... h-als-iso/
Das hat sich ja mit dem Script von @g-force erledigt. Press Any Key entfällt.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"
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
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
- g-force
- Elite
- Beiträge: 2702
- Registriert: 07.10.2016, 19:30
- Hat sich bedankt: 403 Mal
- Danke erhalten: 416 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Hier noch eine kleine Verbesserung zum Script, der "$WorkPath" wird jetzt automatisch ausgelesen - egal, wo man den Ordner "ISO2VM" liegen hat.
Code: Alles auswählen
# Pfade definieren
$ISOname = "Windows10" # Hier den Namen der Quell-ISO angeben (ohne .iso)
$WorkPath = "$PSScriptRoot" # Hier den Pfad zum Arbeitsordner angeben (aktuell: automatisch)
$VMPath = "$PSScriptRoot" # Hier den Pfad zu den VM angeben (aktuell: automatisch)
$PCName = "$env:COMPUTERNAME" # Hier den Namen des Host-PC angeben (aktuell: automatisch)
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
- Holgi
- Guru
- Beiträge: 3084
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 390 Mal
- Danke erhalten: 504 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Hi @g-force; das wäre natürlich genial.g-force hat geschrieben: 08.04.2024, 13:13 Wenn man die Struktur noch etwas ändert, kann man auch einen $OEM$-Ordner incl. Regtweaks, Scripten und SetupComplete mit integrieren. Da die WIM bzw. ESD dabei nicht verändert wird, funktioniert das eigentlich bei allen gängigen ISO, auch AIO. Durch eine eigene "autounattend.xml" kann man das dann wunderbar anpassen.
Könntest du das hier noch integrieren? Du kennst dich ja mittlerweile besser mit Powershell aus als ich.
Wenn ich denn könnte, würde ich eine Abfrage machen in der Art:
if exist $PSScriptRoot Ordner §OEM§ than copy Ordner §OEM§ to TempPath\sources
Dann wäre man flexibel.
Danke!
Holgi
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
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
- g-force
- Elite
- Beiträge: 2702
- Registriert: 07.10.2016, 19:30
- Hat sich bedankt: 403 Mal
- Danke erhalten: 416 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Da bin ich gerade bei. 

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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
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
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU
-
- Beobachter
- Beiträge: 3
- Registriert: 30.03.2024, 00:19
- Hat sich bedankt: 12 Mal
- Danke erhalten: 3 Mal
- Gender:
Re: Probleme mit Remot-PowerShell-Sitzung wegen GPOs
Hallo zusammen,
hab eben mit einem der Dozenten gesprochen und er meinte das mit xml ist zwar schön und gut, aber ist für ein Projekt nicht geeignet.
Es geht darum, dass man nicht die Installation automatisiert, sondern das automatische erstellen der VMs und das anschließende implementieren der GPOs mit dem Skript. Passwörter udg soll der Benutzer selber eintragen.
Sry falls Du schon was in der Richtung wegen Netadapter usw. probiert hättest.
VG Mike
hab eben mit einem der Dozenten gesprochen und er meinte das mit xml ist zwar schön und gut, aber ist für ein Projekt nicht geeignet.
Es geht darum, dass man nicht die Installation automatisiert, sondern das automatische erstellen der VMs und das anschließende implementieren der GPOs mit dem Skript. Passwörter udg soll der Benutzer selber eintragen.
Sry falls Du schon was in der Richtung wegen Netadapter usw. probiert hättest.
VG Mike