Seite 3 von 7
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 18:52
von DK2000
Das sind halt Skripte, welche im PowerShell Terminal oder Konsole ausgeführt werden sollten. Wenn Du die durch anklicken, erscheint nur für die Dauer der Laufzeit ein PowerShell Fenster und beendet sich dann wieder. Es hat ja keinen Grund, geöffnet zu bleiben, wenn der Skript nicht mehr läuft.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 19:00
von g-force
Windows-Explorer biete mir bei PS-Scripten per Rechtsklick "Öffnen" an: Es öffnet sich "Notepad"
Windows-Explorer biete mir bei PS-Scripten per Rechtsklick "Bearbeiten" an: Es öffnet sich (nach kurzer Ladezeit) ein PS-Editor
Windows-Explorer biete mir bei PS-Scripten per Rechtsklick "Mit PS ausführen" an: PS-Fenster (blau) öffnet sich kurz und schließt wieder
Wenn ich "Ausführen" wähle, sollte das Script doch abgearbeitet werden, oder nicht?
Ich hatte so auch mal das ursprüngliche Script von Holgi gestartet, das blieb mit vielen Fehlermeldungen offen. Ich vermute also einen Fehler in meinem Script.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 19:07
von DK2000
Nein, Du muss die PowerShell direkt im Startmenü öffnen und dann zum Ordner mit dem Skript wechseln und dann in diesem Fenster das Skript ausführen. Dann bleibt es geöffnet und Du kannst die Fehler sehen.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 19:33
von g-force
@DK2000
Habe ich so gemacht, nun kommt auch eine Fehlermeldung:
PS-Fehler_1.JPG
Nun ist die Frage, wie ich weitermachen muß?
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 19:48
von Holgi
ich glaube es gab/gibt ein Problem mit dem Netzwerk Switch. Habe ich zur Zeit auch, seit dem ich diesen VLAN Switch aus dem WDS-Server Projekt drin habe. Mit einer kleinen Anpassung ging es jetzt mit deinem Script bei mir.
Ggf. also den Switch Namen im Script anpassen!!
Wichtig: alle Ordner bereits vorhanden? Leerzeichen?
1. g-force_VM_Script.bat
Code: Alles auswählen
@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"
2. g-force_VM_Script.ps1
Code: Alles auswählen
$VMName="TESTVM"
$VMPath="C:\NTLITE\VM"
$ISOPath="C:\NTLITE\ISO"
$ISOName="WINDOWS11_22H2.iso"
# $PCName="Win10-WORK"
$PCName="DARKSTAR"
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
$Switch = "Default Switch"
# 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 $Switch
# 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:COMPUTERNAME $VMName
beide scripte im gleichen Ordner und bat starten
wenn es Probleme gibt, mit dem PS Script, dann einfach mal "pause" zwischen den Schritten einsetzen.
Dann kann man schauen, wie/ob die Befehle verarbeitet wurden. So bin ich jetzt auch drauf gekommen.
Ansonsten gerne noch mal fragen.
PS: die Variablen noch mal nach deinen Gegebenheiten anpassen! Computername, ISO-Name etc.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 20:35
von g-force
"Diese App kann auf deinen PC nicht ausgeführt werden" - großer blauer Hinweis. Mein PC mag kein PS - wie kann ich das ändern?
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 20:37
von DK2000
Das hatte ich noch nicht. PowerShell 5.1 gehört ja zu Windows. PowerShell 7 gibt es extra.
Aber wie auch immer. Im Moment wirklich keine Ahnung, warum PowerShell bei Dir nicht ausgeführt werden kann, aber die SKripte anscheinen starten. Das ist ein Wiederspruch in sich.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 20:41
von g-force
Mein "Arbeits-Windows" (Win10-WORK) ist natürlich auch nicht ganz original, das ist auch etwas reduziert mit NTlite und DISM++.
Ich habe aber nie aktiv irgendwelche Sperren gesetzt, eher im Gegenteil (kein Defender).
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 21:02
von DK2000
Ist schwer zu sagen. Eventuell mit DISM++ und NTlite irgendetwas beschädigt, so das PowerShell 5.1 nicht mehr ausgeführt werden kann. Aber kann ich im Moment wirklich nichts weiter zu sagen. Eventuell würde ein Inplace Upgrade mit einer modifizierten ISO funktionieren.
Was passiert eigentlich, wenn Du in der Eingabeaufforderung mal "powershell" eingibst. Das sollte in der Eingabeaufforderung zu PowerShell wechseln. Falls Du PowerShell 7 installiert hast, wäre das "pwsh". Aber "powershell" sollte immer starten, da es zu Windows gehört. Oder hast Du diese in den optionalen Features deinstalliert?
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 21:21
von g-force
Ich kann PS über Startmenü aufrufen (auch als Administrator), hatte ich ja schon in einem obigen Post beschrieben (wo ich dann den Pfad zum PS-Script eingegeben habe):
viewtopic.php?p=405547#p405547
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 22:06
von DK2000
Ach so, Missverständnis. Dachte es geht um die PowerShell an sich und nicht nur um den Skript. Ja, solange die nicht signiert sind, muss man das Ausführen erst erlauben (als Admin ausführen in der PowerShell ausführen).
Code: Alles auswählen
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Das schaltet das für den gerade angemeldeten Benutzer frei. Für alle Benutzer, also systemweit wäre das:
Code: Alles auswählen
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Danach sollte sich die Skripte ausführen lassen. Sorry, das hatte ich ganz übersehen.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 23:18
von Holgi
mit meiner Batch
Code: Alles auswählen
@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"
erübrigt sich aber das vorherige signieren.
Gerade mal in einer VM ausprobiert:
get-ExecutionPolicy zeigt "Restricted" auf.
Dann das Doppel aus .bat und .ps1 Script ausgeführt > läuft!
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 23:32
von DK2000
In der Batch hast Du auch "-ExecutionPolicy Bypass". Da wird die ebenfalls Signierung umgangen. Das kann man halt auch Permanent für den Benutzer/System setzen. Habe das bei mir hat auf "-ExecutionPolicy RemoteSigned" eingestellt. Da kann ich die Skripte auch direkt in der PowerShell ausführen. Ansonsten wäre mein Profil auch blockiert.
Screenshot 2023-02-28 233321.png
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 28.02.2023, 23:44
von Holgi
ja, muss eben jeder wissen, was für ihn passt. Viele Wege führen nach ROM.
Mal sehen, ob wir @g-force irgendwie helfen können, das PS Script zum Laufen zu bekommen.
Re: Hyper-V Virtuelle Maschine per Script erstellen; mein Lösungsansatz
Verfasst: 01.03.2023, 00:43
von g-force
Lässt sich das nicht auch komplett über CMD lösen? Geht bei VirtualBox doch auch?