Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Deine Frage passt nicht in die anderen Bereiche, dann stelle sie hier.
Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 26.03.2021, 20:14

ich habe jetzt mit dem Script von ct mal ein wenig rumgespielt. Funktioniert grds. gut.
Es ist zu beachten, dass zunächst eine Verknüpfung zum Script (*.cmd) hergestellt werden sollte/muss. Diese Verknüpfung dann mit Admin-Rechten ausstatten. Dann einfach z.B. die ISO auf die Verlinkung ziehen und schon geht es los. :)
Was mich stört:
ich habe mit einer Server vNExt Standard (Desktopdarstellung) experimentiert. Da wird der Dateiname der vhdx ellenlang und auch noch abgeschnitten. Darüberhinaus landet die vhdx nicht in meinem Standardverzeichnis für die Virtual Hard Disks (C:\Users\Public\Documents\Hyper-V\Virtual hard disks), sondern in "C:\ProgramData\Microsoft\Windows\Hyper-V\Windows_Server_2022_Standard_(Desktopdars_x64_de-DE_Gen2_10.0.20317"
Ich sag ja: viel zu lang!
Weiß jemand, wie man das ändern kann?
Noch ein Verbesserungvorschlag von mir zu dem ct-Script:
Die VM nicht nur starten, sondern auch gleich verbinden und bei den Integrationsdiensten auch gleich die Gastdienste mit integrieren:
english: Guest Service Interface
deutsch: Gastdienstschnittstelle

Code: Alles auswählen

set operation=*** Temporaere Laufwerke wieder aushaengen ***
echo %weiss%%operation%%gruen%
echo.
if exist %workdir%%folder% rd /q /s %workdir%%folder%
if not %efilw%.==. if not %vhdlw%.==. if not %efilw%.==%vhdlw%. mountvol %efilw%: /d >nul 2>nul
if exist %vhdlw%: powershell dismount-vhd -path '%vmpfad%%vmname%\%vmname%.%format%'
if exist %isolw%: powershell "dismount-diskimage '%iso%'"

powershell Enable-VMIntegrationService -VMName '%vmname%' -Name 'Gastdienstschnittstelle'

set operation=*** Starte VM ***
echo %weiss%%operation%%gruen%
echo.
powershell Start-VM -name '%vmname%'
powershell vmconnect $env:COMPUTERNAME '%vmname%'
echo %weiss%*** Fertig! ***
echo.
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

Tante Google

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Tante Google » 26.03.2021, 20:14


ecerer

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von ecerer » 27.03.2021, 12:39

Naja im Prinzip weißt du doch wie es geht. Selbst ist die Frau.
Das mit ISO auf … ziehen wollte ich dir auch für deine .msu Kürzung empfehlen.

Hier kann man doch einfach was weg löschen...
Zeile x: if "%vmpfad%."=="." set vmpfad=%allusersprofile%\Microsoft\Windows\Hyper-V\
Zeile y: echo create vdisk file=%vmpfad%%vmname%\%vmname%.%format% maximum=%vhdsize% type=%typ% > %workdir%%folder%\diskpart.txt

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 27.03.2021, 16:33

Naja im Prinzip weißt du doch wie es geht.
Aber eben nur im Prinzip.
Ich bin jetzt soweit:
den Namen der VM habe ich in den Variablen des Scripts festgelegt > läuft!
Aber:
beim Verzeichnis für die VM gibt es Probleme. Liegt wohl irgendwie an den Leerzeichen von meinem Wunschverzeichnis (C:\Users\Public\Documents\Hyper-V\Virtual hard disks).
Mit dem u.a. abgeänderten Script schaffe ich es, die VM in "C:\Users\Public\Documents\Hyper-V\" abzulegen. Leider aber nicht in den Unterordner "Virtual hard disks". Da kommt immer eine Fehlermeldung. Ich habe schon hier und da Anführungszeichen gesetzt, aber leider ohne Erfolg.
Vlt hast du darüberhinaus auch noch eine Lösung parat, wie man die VM-Dateien mit der Endung .vmcx, .vmrs und .vmgs in das Standardverzeichnis bekommt (bei mir "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines").
Das Script von ct trägt die Dateien zusammen mit der .vhdx-Datei ein (also im Augenblick
"C:\Users\Public\Documents\Hyper-V\" (Virtual hard disks)

Code: Alles auswählen

@echo off
setlocal enabledelayedexpansion

set Hinweis=Bitte lesen Sie unbedingt die Anleitung zu diesem Skript in c't 20/2020!


rem --------- Variablen fuer das Skript setzen  -----------

rem *** Arbeitsverzeichnis ***
rem Pfad des Ordners, in dem das Skript liegt.
rem Falls eine Antwortdatei in die VHD-Datei soll, muss sie 
rem als "autounattend.xml" ebenfalls hier liegen.
set workdir=%~d0%~p0

rem *** Temporaerer Unterordner ***
rem Wird standardmaessig im Arbeitsverzeichnis erstellt.
set folder=%~n0-tmp

rem --------- Variablen fuer die VM setzen  -----------

rem *** VM: Anzahl der virtuellen CPUs
set cpu=4

rem *** VM: Start-RAM-Groesse in MByte ***
set startram=2048

rem *** VM: Minmale RAM-Groesse in MByte ***
set minram=1024

rem *** VM: Maximale RAM-Groesse in MByte ***
set maxram=4096

rem *** VM: Netzwerkswitch auswaehlen. Zum Aktivieren "rem" vor der naechsten Zeile entfernen und bei Bedarf Switchname in Anfuehrungsstrichen (') anpassen
set switch=-switchname 'default switch'

rem *** VM: Automatische Pruefpunkte an (1) oder aus (0)
set autocheckpoints=0

rem *** VM: Generation 1 (Legacy BIOS) oder 2 (UEFI)? ***
set gen=2

rem *** Namen der VM festlegen ***
set vmname=Server_vNext

rem --------- Variablen fuer die VHD(x) setzen  -----------

rem *** VHD: (maximale) Dateigroesse in MByte ***
set vhdsize=127000

rem *** VHD-Typ: 0 (feste Groesse) oder 1 (dynamisch wachsend) ***
set vhdtyp=1

rem *** VHD: Partitionsgroesse Boot-/EFI-Partition ***
set partboot=500

rem *** VHD: Partitionsgroesse MSR-Partition ***
set partmsr=128

rem *** VHD: Partitionsgroesse Recovery-Partition ***
set partre=1000

rem --------- Variablen fuer die unbeaufsichtigte Installation -----------

rem *** 64-Bit-Antwortdatei ***
set autox64=Autounattendx64.xml

rem *** 32-Bit-Antwortdatei ***
set autox86=Autounattendx86.xml

rem ------------- Ende der Anpassungen -----------

set operation=*** Hilfe erwuenscht? ***
if /i %1.==. goto hilfe
if /i %1.==/?. goto hilfe
if /i %1.==-?. goto hilfe
if /i %1.==/h. goto hilfe
if /i %1.==-h. goto hilfe
if /i %1.==--h. goto hilfe
if /i %1.==/help. goto hilfe
if /i %1.==-help. goto hilfe
if /i %1.==--help. goto hilfe

rem *** Optik anpassen ***
cls
color 0F
set farbtmp=
for /f "tokens=3" %%b in ('reg query ^"HKLM^\Software^\Microsoft^\Windows NT^\CurrentVersion^" /v ^"ReleaseID^" 2^>nul') do set farbtmp=%%b >nul 2>nul
if "%farbtmp%."=="." goto start

set ESC=
set weiss=%esc%[97m
set gruen=%esc%[92m
set rot=%esc%[91m
set gelb=%esc%[93m

:start
echo.%gelb%
echo ****************************************************
echo ***        Willkommen bei c't-Win2Hyper-V        ***
echo ****************************************************
echo.
echo %hinweis%%weiss%
echo.

echo *** Einige Pruefungen vorab ... ***
echo.

set operation=*** Temporaerer Ordner bereits vorhanden? ***
if not exist %workdir%%folder% goto istfrei
set /a foldernr=1
set tempfolder=%folder%
:ring
set /a foldernr=%foldernr%+1 
set folder=%tempfolder%-%foldernr%
if exist %workdir%%folder% goto ring
:istfrei

set operation=*** Skript braucht mindestens Windows 10 Versin 1709 ***
for /f "tokens=3" %%a in ('reg query ^"HKLM^\SOFTWARE^\Microsoft^\Windows NT^\CurrentVersion^" /v ^"ReleaseID^"') do set versionhost=%%a
if %versionhost% lss 1709 goto fehler1

set operation=*** Skript muss mit Administratorrechten laufen ***
whoami /groups | find "S-1-16-12288" > nul
if errorlevel 1 goto fehler1

set operation=*** Hyper-V muss aktiviert sein ***
dism /online /get-features /format:table | find "Microsoft-Hyper-V " | find "Aktiviert" > nul
if errorlevel 1 goto fehler1

set operation=*** Hyper-V-Modul fuer Windows PowerShell muss aktiviert sein ***
dism /online /get-features /format:table | find "Microsoft-Hyper-V-Management-PowerShell" | find "Aktiviert" > nul
if errorlevel 1 goto fehler1

set operation=*** Es muss eine ISO-, WIM- oder ESD-Datei uebergeben werden ***
set pfad=%*
set pfad="%pfad:"=%"
if .%pfad:~-4,3% neq .wim if .%pfad:~-4,3% neq .esd if .%pfad:~-4,3% neq .iso goto fehler1

echo *** Keine Probleme gefunden, jetzt geht es los ***
echo.

if .%pfad:~-4,3% neq .iso (
  set wim=%pfad%
  goto wahl
)

set operation=*** ISO-Datei einbinden ***
echo %weiss%%operation%%gruen%
set iso="%pfad:"=%"
powershell "mount-diskimage '%iso%'"
if errorlevel 1 goto fehler2
set isolw=
for /f "skip=3" %%i in ('powershell "get-diskimage '%iso%' | get-volume | select driveletter"') do set isolw=%%i
if "%isolw%."=="." goto fehler2

set operation=*** ISO-Datei muss WIM- oder ESD-Datei enthalten ***
if exist %isolw%:\sources\install.esd (
  set wim=%isolw%:\sources\install.esd
) else if exist %isolw%:\sources\install.wim (
  set wim=%isolw%:\sources\install.wim
) else (
  goto fehler1
)
if errorlevel 1 goto fehler2

:wahl
set operation=*** Image auswaehlen ***
echo %weiss%%operation%%gruen%
set index=1
set letztenummer=1
for /f "tokens=1,2* delims=: " %%L in ('%windir%\system32\dism /get-wiminfo /wimfile:%wim%') do (
   if "%%L"=="Index" set /a letztenummer=%%M
)
if %letztenummer% equ 1 goto weiter
%windir%\system32\dism /english /get-wiminfo /wimfile:%wim% 
if errorlevel 1 goto fehler2
echo.%gelb%
set /p Index=Nummer des Images eingeben:
echo.

set operation=*** Pruefe ausgewaehltes Image ***
echo %weiss%%operation%%gruen%

set operation=*** Ausgewaehltes Image muss vorhanden sein ***
if %index% gtr %letztenummer% goto fehler1
if %index% lss 1 goto fehler1
echo.
:weiter

set Operation=*** In Generation-2-VMs laeuft nur x64-Windows ***
for /f "tokens=*" %%L in ('%windir%\system32\dism /english /get-wiminfo /wimfile:%wim% /index:%index% ^| find "Architecture"') do (set archtmp=%%L)
set architektur=%archtmp:~15%
if %gen%==2 if not %architektur%==x64 goto fehler1

set Operation=*** In Generation-2-VMs laufen weder Vista noch Windows 7 ***
for /f "tokens=*" %%L in ('%windir%\system32\dism /english /get-wiminfo /wimfile:%wim% /index:%index% ^| find "Version"') do (set vertmp=%%L)
set version=%vertmp:~10%
set alter=neu
if not %version:~0,3%==6.2 if not %version:~0,3%==6.3 if not %version:~0,3%==6.4 if not %version:~0,3%==10. set alter=alt
if %gen%==2 if %alter%==alt goto fehler1

echo %gruen%OK
echo.

set Operation=*** Speicherpfad fuer VMs auslesen ***
echo %weiss%%operation%%gruen%
echo.
set vmpfad=
for /f "tokens=3" %%a in ('reg query ^"HKLM^\SOFTWARE^\Microsoft^\Windows NT^\CurrentVersion^\Virtualization^" /v ^"DefaultExternalDataRoot^" 2^>nul') do set vmpfad=%%a
if "%vmpfad%."=="." set vmpfad=%public%\Documents\Hyper-V\
echo Gespeichert wird die VM unter: %vmpfad%
echo.
pause
set Operation=*** Temporaeren Ordner anlegen *** 
echo %weiss%%operation%%gruen%
echo.
md %workdir%%folder%
echo Temporaerer Ordner angelegt: %workdir%%folder%
echo.

set operation=*** Release-ID auslesen ***
echo %weiss%%operation%%gruen%
echo.
%workdir%7z.exe e %wim% -o%workdir%%folder% %index%\Windows\System32\config\Software >nul 2>nul
reg load HKLM\VHD %workdir%%folder%\software >nul 2>nul
if errorlevel 1 goto fehler2
set reltmp=
for /f "tokens=3" %%b in ('reg query ^"HKLM^\VHD^\Microsoft^\Windows NT^\CurrentVersion^" /v ^"ReleaseID^" 2^>nul') do set reltmp=%%b >nul 2>nul
if "%reltmp%."=="." echo Keine Release-ID gefunden. && goto unload
echo Release-ID ist %reltmp% 
set release=%reltmp%_
:unload
reg unload HKLM\VHD >nul 2>nul
if errorlevel 1 goto fehler2
echo.


md %vmpfad%%vmname%
echo Als Name der VM wird festgelegt: %vmname%
echo.

set operation=*** Freien Laufwerksbuchstaben fuer Windows-Partition in VHD(X) suchen ***
echo %weiss%%operation%%gruen%
echo.
for %%l in (P Q R S T U V W X Y Z D E F G H I J K L M N O) do (  
  set vhdlw=%%l
  mountvol %%l: /L >nul
  if errorlevel 1 (
    subst | findstr /B "%%l:" >nul
    if errorlevel 1 (
      net use %%l: >nul 2>&1
      if errorlevel 1 goto weiter2
    )
  )
)
goto fehler1
:weiter2
echo Verwende %vhdlw%:
echo.

subst %vhdlw%: %workdir%%folder% 
set operation=*** Freien Laufwerksbuchstaben fuer Boot-Partition in VHD(X) suchen ***
echo %weiss%%operation%%gruen%
echo.
for %%l in (P Q R S T U V W X Y Z D E F G H I J K L M N O) do (  
  set efilw=%%l
  mountvol %%l: /L >nul
  if errorlevel 1 (
    subst | findstr /B "%%l:" >nul
    if errorlevel 1 (
      net use %%l: >nul 2>&1
      if errorlevel 1 goto weiter3
    )
  )
)
goto fehler1
:weiter3
subst %vhdlw%: /d
echo Verwende %efilw%:
echo.

set operation=*** VHD erzeugen ***
echo %weiss%%operation%%gruen%
if %vhdtyp%==1 (set typ=expandable) else set typ=fixed
set format=vhd
if %gen%==2 set format=vhdx
echo create vdisk file=%vmpfad%%vmname%\%vmname%.%format% maximum=%vhdsize% type=%typ% > %workdir%%folder%\diskpart.txt
echo attach vdisk >> %workdir%%folder%\diskpart.txt
if %gen%==2 (
  echo convert gpt >> %workdir%%folder%\diskpart.txt
  echo create partition efi size=%partboot% >> %workdir%%folder%\diskpart.txt
  echo format fs=fat32 quick label="System" >> %workdir%%folder%\diskpart.txt
) else (
  echo create partition primary size=%partboot% >> %workdir%%folder%\diskpart.txt
  echo format quick fs=ntfs label="System" >> %workdir%%folder%\diskpart.txt
  echo active >> %workdir%%folder%\diskpart.txt
)
echo assign letter=%efilw% >> %workdir%%folder%\diskpart.txt
if %gen%==2 echo create partition msr size=%partmsr% >> %workdir%%folder%\diskpart.txt
echo create partition primary >> %workdir%%folder%\diskpart.txt
echo shrink minimum=%partre% >> %workdir%%folder%\diskpart.txt
echo format fs=ntfs quick label="Windows" >> %workdir%%folder%\diskpart.txt
echo assign letter=%vhdlw% >> %workdir%%folder%\diskpart.txt
echo create partition primary >> %workdir%%folder%\diskpart.txt
echo format quick fs=ntfs label="Recovery" >> %workdir%%folder%\diskpart.txt
if %gen%==1 (
  echo set id=27 >> %workdir%%folder%\diskpart.txt
) else (
  echo set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" >> %workdir%%folder%\diskpart.txt
  echo gpt attributes=0x8000000000000001 >> %workdir%%folder%\diskpart.txt
)
echo exit >> %workdir%%folder%\diskpart.txt
diskpart /s %workdir%%folder%\diskpart.txt
if errorlevel 1 goto fehler2

echo.
set operation=*** Image in VHD kopieren ***
echo %weiss%%operation%%gruen%
dism /apply-image /imagefile=%wim% /index:%index% /applydir=%vhdlw%:
if errorlevel 1 goto fehler2

echo.
set auto=%autox64%
if not %architektur%==x64 set auto=%autox86%
if not exist %~d0%~p0%auto% goto bcdboot
set operation=*** autounattend.xml ergaenzen ***
echo %weiss%%operation%%gruen%
echo.
md %vhdlw%:\windows\panther\unattend
copy %~d0%~p0%auto% %vhdlw%:\windows\panther\unattend\unattend.xml

:bcdboot
echo.
set operation=*** Bootloader ergaenzen ***
echo %weiss%%operation%%gruen%
echo.
if %gen%==1  bcdboot /d %vhdlw%:\windows /s %efilw%: /addlast /l de-de /f BIOS
if %gen%==2  bcdboot /d %vhdlw%:\windows /s %efilw%: /addlast /l de-de /f UEFI
if errorlevel 1 goto fehler2
echo.

set operation=*** Entfernen von Registry-Schluessel "MountedDevices" aus der VHD ***
reg load HKLM\VHD %vhdlw%:\windows\system32\config\system >nul 2>nul
if errorlevel 1 goto fehler2
reg query HKLM\VHD\MountedDevices >nul 2>nul
if errorlevel 1 goto unload 
echo %weiss%%operation%%gruen%
echo.
reg delete HKLM\VHD\MountedDevices /f >nul 2>nul
if errorlevel 1 goto fehler2
echo Registry-Schluessel entfernt
echo.
:unload
reg unload HKLM\VHD >nul 2>nul
if errorlevel 1 goto fehler2

set operation=*** VM erzeugen ***
echo %weiss%%operation%%gruen%
powershell new-vm -name '%vmname%' -path '%vmpfad%%vmname%' -VHDpath '%vmpfad%%vmname%\%vmname%.%format%'  -MemoryStartupBytes %startram%MB -generation %gen% %switch%
powershell set-vm -name '%vmname%' -ProcessorCount %cpu% -DynamicMemory -MemoryMaximumBytes %maxram%MB -MemoryMinimumBytes %minram%MB -AutomaticCheckpointsEnabled %autocheckpoints%
if %alter%==alt (
  powershell Remove-VMNetworkAdapter -vmname '%vmname%'
  powershell Add-VMNetworkAdapter -vmname '%vmname%' -IsLegacy $true
)

set operation=*** Temporaere Laufwerke wieder aushaengen ***
echo %weiss%%operation%%gruen%
echo.
if exist %workdir%%folder% rd /q /s %workdir%%folder%
if not %efilw%.==. if not %vhdlw%.==. if not %efilw%.==%vhdlw%. mountvol %efilw%: /d >nul 2>nul
if exist %vhdlw%: powershell dismount-vhd -path '%vmpfad%%vmname%\%vmname%.%format%'
if exist %isolw%: powershell "dismount-diskimage '%iso%'"

powershell Enable-VMIntegrationService -VMName '%vmname%' -Name 'Gastdienstschnittstelle'

set operation=*** Starte VM ***
echo %weiss%%operation%%gruen%
echo.
powershell Start-VM -name '%vmname%'
powershell vmconnect $env:COMPUTERNAME '%vmname%'
echo %weiss%*** Fertig! ***
echo.

goto :eof

rem *** Fehlerbehandlung ***

rem Bedingung nicht erfuellt
:fehler1
set text=Folgende Bedingung wurde nicht erfuellt: 
goto Fehlerausgabe

rem Fehler bei der Durchfuehrung
:fehler2
set text=Operation fehlgeschlagen:
goto Fehlerausgabe


:fehlerausgabe
echo.
echo %rot%%text%
echo.
echo %rot%%operation%
echo.
echo %rot%%hinweis%
echo.

:aufraeumen
set operation=*** Raeume hinter mir auf ***
pause
echo.
echo %weiss%%operation%%gruen%
echo.
if exist %workdir%%folder% rd /q /s %workdir%%folder%
if not %efilw%.==. mountvol %efilw%: /d >nul 2>nul
if exist %vhdlw%: powershell dismount-vhd -path '%vmpfad%%vmname%\%vmname%.%format%' >nul 2>nul
if exist %isolw%: powershell "dismount-diskimage '%iso%'" >nul 2>nul
echo.
set operation=*** Fertig! ***
echo %weiss%%operation%%gruen%
echo.
pause
echo.
goto :eof

:hilfe
echo.
echo %~nx0 erzeugt Hyper-V-VMs
echo.
echo Als Quelle akzeptiert %~nx0 WIM- und ESD-Dateien sowie 
echo ISOs und DVDs, die solche Dateien im Ordner "Sources" enthalten.
echo.
echo %~nx0 muss mit Administratorrechten gestartet werden!
echo.
echo %Hinweis%
echo.
pause
goto :eof
;
REM Erstellt 2020 von Axel Vahldiek/c't
REM mailto: axv@ct.de
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

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 30.03.2021, 19:28

Für alle diejenigen, welche auch gerne mit Hyper-V arbeiten und so wie ich täglich diese
neues Netzwerk gefunden: möchten sie...
-Anzeige hatten.
Ich habe jetzt endlich eine Lösung dafür gefunden, diese Anzeige nicht mehr (oder höchtens einmalig) sehen zu müssen:
ein Eintrag in der Registry macht es möglich

Code: Alles auswählen

REG ADD "HKCU\System\CurrentControlSet\Control\Network\NewNetworkWindowOff" /F
bzw.

Code: Alles auswählen

REG ADD "HKLM\System\CurrentControlSet\Control\Network\NewNetworkWindowOff" /F
Nicht wundern: es ist nur der Eintrag in der Registry; kein DWORD, Zeichenfolge o.ä.
ehrlich gesagt, ich weiß nicht, welcher von beiden der richtige ist; deshalb lasse ich beide eintragen (per SetupComplete).

Noch ein Tip:
wer gerne mit RDP arbeitet, um auf die VM zuzugreifen, muss nicht unbedingt erst in die Einstellungen gehen um dort RemoteDesktop zu aktivieren. Ich lasse das mit 2 Powershell Befehlen (per SetupComplete) erledigen:

Code: Alles auswählen

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remotedesktop"
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

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 06.05.2021, 19:27

ein weitere Möglichkeit, eine .vhd(x) Datei aus einer ISO (mit Wim!) oder direkt aus einer WIM zu erstellen, bietet MS selbst an.
Die haben mal ein Powershell-Script mit dem Namen Convert-WindowsImage.ps1 entwickelt. Das war wohl seinerzeit für die Nano-Server entwickelt worden. Zu finden ist das Script auf dem Server 2016 Bereitstellungsmedium, aber auch im Netz z.B. hier:
https://github.com/x0nn/Convert-WindowsImage
Beispiele hier: https://catonrug.blogspot.com/2019/12/w ... 0-vhd.html
die grafische Oberfläche von dem Script funktioniert nicht mehr. MS entwickelt es nicht mehr weiter!
Vorgehensweise:
1. open Powershell as admin
2. ins Verzeichnis mit dem PS-Script (Convert-WindowsImage.ps1) wechseln
3. ". .\Convert-WindowsImage.ps1" eingeben (Punkt, Leerzeichen, Punkt, Backslash); der Vorgang nennt sich DotSource(ing)
4. dann PS-Script mit Schaltern aufrufen
Beispiel:
Convert-WindowsImage -SourcePath $pwd\install.wim -Edition "Windows Server 2019 DataCenter (Desktopdarstellung)" -VHDFormat VHDX -VHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Server 2019.vhdx" -SizeBytes 40GB -DiskLayout UEFI -ExpandOnNativeBoot:$false -UnattendPath "$pwd\autounattend.xml" -RemoteDesktopEnable -Passthru

$pwd ist das aktuelle Verzeichnis (mit dem PS-Script). Dort also die WIM (oder ISO) und ggf. die autounattend.xml ablegen.
Schon wird aus der WIM (oder ISO mit WIM) eine Hyper-V virtuelle Maschine.
Wenn hier jemand mitliest und sich mit Powershell auskennt, hätte ich gerne mal folgende Frage beantwortet:
a) im Netz habe ich mal eine Abwandlung von dem Script gesehen, wo das Dotsourcing nicht mehr nötig war. Das Script war aber ansonsten veraltet. Weiß jemand, wie man die .ps verändern muss, damit das funktioniert? Hintergrund:
ich möchte nicht erst eine Powershell öffnen, sondern das ganze automatisiert per Batch machen.
b) Meine anderen PS-Scripte rufe ich per
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"
auf. Wenn das Script selbst keine Schalter zum Funktionieren braucht läuft das prima.
weiß jemand, wie/wo/an welcher Stelle in dem Strang ich bei dem Convert-Image.ps1 Script da die Schalter (z.B. -SourcePath, -VHDFormat etc.) hierzu unterbringe? Was in Klammern, was in Anführungszeichen?
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

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 09.01.2022, 13:50

nun ist wieder fast ein Jahr ins Land gegangen. Mittlerweile ist Windows 11 erschienen. Seit Windows 11 Build 22458 wird auch in der VM TPM (Trusted Platform Module) vorausgesetzt (sofern man nicht eine angepasste Version verwendet, die diese Beschränkung umgeht).
Also habe ich mein PS-Script entsprechend angepasst und stelle es euch hier zur Verfügung. Viel Spaß!

Code: Alles auswählen

param($VMName)
Get-VM "$VMName" | select -Property VMName, State

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

cls

# Switch is nothing but network adapter
$Switch = (Get-VMSwitch).Name
# OS Iso file should be assigned to InstallMedia
# $InstallMedia = 'Hyper V.iso'

# Create New Virtual Machine
# MemoryStartupBytes contents the RAM size of VM.
# NewVHDSizeBytes contents the size of HD.


New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName (Get-VMSwitch).Name


# Add DVD Drive to Virtual Machine
Add-VMScsiController -VMName $VMName

Add-VMDvdDrive -VMName $VMName -Path "C:\Users\Darth Vader\Downloads\Create VM Hyper-V\$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 1024mb -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
$owner = Get-HgsGuardian UntrustedGuardian
$kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName

Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
# Set-VMSecurityPolicy -VMName $VMName -Shielded $true
Enable-VMTPM -VMName $VMName

Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true


# Start the VM and connect to it
Start-VM -Name $VMName
vmconnect $env:COMPUTERNAME $VMName
Zuletzt geändert von Holgi am 18.01.2022, 08:17, insgesamt 1-mal geändert.
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

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 09.01.2022, 15:37

nicht zu vergessen:
das Script von MS zur Erstellung einer VHD(x) aus einer WIM (Convert-WindowsImage.ps1) https://github.com/x0nn/Convert-WindowsImage wurde aktualisiert und funktioniert jetzt auch mit Windows 11. Darüberhinaus geht jetzt auch der PARAMETER ShowUI wieder.
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

Benutzeravatar
Holgi
Elite
Elite
Beiträge: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 10.01.2022, 13:30

c’t hat sein Script c’t-Win2Hyper-V ebenfalls an Windows 11 angepasst:
https://www.heise.de/ratgeber/c-t-Win2H ... 21599.html
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

Benutzeravatar
g-force
Alleswisser
Alleswisser
Beiträge: 1983
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 268 Mal
Danke erhalten: 236 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von g-force » 28.02.2023, 14:12

Holgi hat geschrieben: 09.01.2022, 13:50

Code: Alles auswählen

param($VMName)
Get-VM "$VMName" | select -Property VMName, State

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

cls

# Switch is nothing but network adapter
$Switch = (Get-VMSwitch).Name
# OS Iso file should be assigned to InstallMedia
# $InstallMedia = 'Hyper V.iso'

# Create New Virtual Machine
# MemoryStartupBytes contents the RAM size of VM.
# NewVHDSizeBytes contents the size of HD.


New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName (Get-VMSwitch).Name


# Add DVD Drive to Virtual Machine
Add-VMScsiController -VMName $VMName

Add-VMDvdDrive -VMName $VMName -Path "C:\Users\Darth Vader\Downloads\Create VM Hyper-V\$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 1024mb -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
$owner = Get-HgsGuardian UntrustedGuardian
$kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName

Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
# Set-VMSecurityPolicy -VMName $VMName -Shielded $true
Enable-VMTPM -VMName $VMName

Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true


# Start the VM and connect to it
Start-VM -Name $VMName
vmconnect $env:COMPUTERNAME $VMName
Wo trage ich denn die Pfade und Namen für die Variablen ein? Es wäre schön, wenn das direkt oben im Script wäre.
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
DK2000
Legende
Legende
Beiträge: 9120
Registriert: 03.04.2018, 00:07
Hat sich bedankt: 149 Mal
Danke erhalten: 463 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von DK2000 » 28.02.2023, 14:23

Da param($VMName) verwendet wurde, wird $VMName beim starten des Scripst übergeben, also

Script BlaBla bzw. Script -VMName BlaBla

Wenn das nicht gewünscht ist. Dann param($VMName) löschen und direkt $VMName="BlaBla" schreiben.

Benutzeravatar
g-force
Alleswisser
Alleswisser
Beiträge: 1983
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 268 Mal
Danke erhalten: 236 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von g-force » 28.02.2023, 14:58

Kann ich auch Variablen setzen für "InstallMedia" und "VMPath"? Etwa so:

Code: Alles auswählen

$VMName="MeineNeueVM"
$VMPath="C:\NTLITE\VM"
$ISOPath="C:\NTLITE\ISO"
$ISOName="NTLITE.iso"
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
DK2000
Legende
Legende
Beiträge: 9120
Registriert: 03.04.2018, 00:07
Hat sich bedankt: 149 Mal
Danke erhalten: 463 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von DK2000 » 28.02.2023, 15:07

Ja, das geht so.

Benutzeravatar
g-force
Alleswisser
Alleswisser
Beiträge: 1983
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 268 Mal
Danke erhalten: 236 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von g-force » 28.02.2023, 15:26

Das ist mein aktueller Stand, funktioniert leider nicht, das PS-Fenster schließt sich sofort wieder:

Code: Alles auswählen

$VMName="MeineNeueVM"
$VMPath="C:\NTLITE\VM"
$ISOPath="C:\NTLITE\ISO"
$ISOName="PREMIUM_ESD.iso"
$PCName="Win10-WORK"


Get-VM "$VMName" | select -Property VMName, State

Stop-VM -Name "$VMName" -Force | out-null
Remove-VM -Name "$VMName" -Force | out-null
Remove-Item "$VMPath\$VMName.vhdx" -Force | out-null

cls

# Switch is nothing but network adapter
$Switch = (Get-VMSwitch).Name
# OS Iso file should be assigned to InstallMedia
# $InstallMedia = §ISOName

# Create New Virtual Machine
# MemoryStartupBytes contents the RAM size of VM.
# NewVHDSizeBytes contents the size of HD.


New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "$VMName.vhdx" -NewVHDSizeBytes 50GB -SwitchName (Get-VMSwitch).Name


# Add DVD Drive to Virtual Machine
Add-VMScsiController -VMName $VMName

Add-VMDvdDrive -VMName $VMName -Path $ISOPath\$ISOName

# 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 1024mb -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
$owner = Get-HgsGuardian UntrustedGuardian
$kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
Set-VMMemory -DynamicMemoryEnabled $false -VMName $VMName

Set-VMKeyProtector -VMName $VMName -KeyProtector $kp.RawData
# Set-VMSecurityPolicy -VMName $VMName -Shielded $true
Enable-VMTPM -VMName $VMName

Set-VMSecurity -VMName $VMName -EncryptStateAndVmMigrationTraffic $true


# Start the VM and connect to it
Start-VM -Name $VMName
vmconnect $env:$PCName $VMName
Mag da mal jemand drüberschauen?
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: 2113
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 207 Mal
Danke erhalten: 273 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von Holgi » 28.02.2023, 17:24

ich kann dein Script gerade nicht testen, da ich selber gerade einer neue VM erstelle.
Aber schau mal hier:
https://my330space.wordpress.com/2017/0 ... owershell/
danach:
Open PowerShell window as admin.
Paste below script and hit enter.

Meine Vorgehensweise ist ja eine andere:
cmd-batch mit u.a diesem Inhalt:

Code: Alles auswählen

@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"
demnach müsen die Batch und das Powershell Script den selben Namen haben und im gleichen Ordner liegen.
Oder den Namen des PS-Scripts angeben:

Code: Alles auswählen

    pushd "%CD%"
    CD /D "%~dp0"
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%dein_gewählter_PS-Script_Name.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -file "%PowerShellScriptPath%" 
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

Benutzeravatar
g-force
Alleswisser
Alleswisser
Beiträge: 1983
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 268 Mal
Danke erhalten: 236 Mal
Gender:

Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz

Beitrag von g-force » 28.02.2023, 18:25

Mit "Powershell" habe ich keine Erfahrung, selbst bei CMD blicke ich nur ansatzweise durch, nie richtig gelernt.
Eine CMD wäre mir tatsächlich lieber, weil ich da etwas besser durchblicke bei Veränderungen. Für "VirtualBox" bekomme ich das einigermaßen hin, da hatten Holgi und ich mal was gebastelt. Nun würde ich das gerne auf "Hyper-V" übertragen. Leider gibt mir das PS-Script keine Fehlermeldung aus, sondern schließt sich sofort wieder. Ich habe das "Mein Script.ps1" per "Rechtsklick - Ausführen" gestartet, vielleicht liege ich ja schon da falsch?

EDIT: Mit der CMD (um die .ps1 zu starten) leider derselbe Effekt.
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

Antworten