2 Pluspunkte 0 Minuspunkte

Ich habe diesen C# Code um ein powershell Script auszuführen.

// Definieren Sie den Namen Ihrer neuen VM
string vmName = "NeueVM";

// Definieren Sie den Pfad zum Speichern der VM-Dateien
string vmPath = @"D:\" + vmName;

// Erstellen Sie den PowerShell-Befehl als Skript
string powerShellScript = $@"
New-VM -Name {vmName} -Path {vmPath} -MemoryStartupBytes 2GB -BootDevice CD -SwitchName IhrSwitchName -Generation 2
";

// Pfad zum PowerShell-Exe-Datei
string powerShellExe = @"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";

// Starten Sie den PowerShell-Prozess
using (Process process = new Process())
{
    ProcessStartInfo startInfo = new ProcessStartInfo
    {
        FileName = powerShellExe,
        RedirectStandardInput = true,
        RedirectStandardOutput = true,
        RedirectStandardError = true,
        UseShellExecute = false,
        CreateNoWindow = true
    };

    process.StartInfo = startInfo;
    process.Start();

    // Führen Sie das PowerShell-Skript aus
    process.StandardInput.WriteLine(powerShellScript);
    process.StandardInput.Close();

    // Lesen Sie die Ausgabe und Fehlermeldung
    string output = process.StandardOutput.ReadToEnd();
    string error = process.StandardError.ReadToEnd();

    // Warten Sie darauf, dass der Prozess beendet wird
    process.WaitForExit();

    // Überprüfen Sie die Ausgabe und Fehlermeldung
    if (!string.IsNullOrEmpty(error))
    {
        Console.WriteLine("PowerShell-Fehler: " + error);
    }
    else
    {
        Console.WriteLine("VM erfolgreich erstellt!");
    }
}

Bei der Ausführung endet das Programm aber mit einem Fehler.

PowerShell-Fehler: . : Die Datei "C:\Users\poldi\Documents\WindowsPowerShell\profile.ps1" kann nicht geladen werden, da die Ausführung
von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter "about_Execution_Policies"
(https:/go.microsoft.com/fwlink/?LinkID=135170).
In Zeile:1 Zeichen:3
+ . 'C:\Users\poldi\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : Sicherheitsfehler: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
New-VM : Sie besitzen nicht die erforderliche Berechtigung für diese Aufgabe. Wenden Sie sich an den Administrator der
Autorisierungsrichtlinie für Computer "DESKTOP-HANO6II".
In Zeile:1 Zeichen:1
+ New-VM -Name NeueVM -Path D:\NeueVM -MemoryStartupBytes 2GB -BootDevi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-VM], VirtualizationException
    + FullyQualifiedErrorId : Unspecified,Microsoft.HyperV.PowerShell.Commands.NewVM

Was bedeutet das und wie kann ich das Script richtig ausführen?

von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Mit

set-executionpolicy remotesigned

kannst du lokal unsignierte Scripte zulassen. Aus dem Internet weiterhin nur normale.

von (706 Punkte)