簡體   English   中英

使用Powershell重新啟動VM

[英]Restarting VM Using Powershell

我正在嘗試使用C#中的Powershell重新啟動VM。

首先,我嘗試運行GET-VM命令。 它在以下行給出了例外:

PSSnapInInfo psinfo = runspaceConfig.AddPSSnapIn("System.Management.Automation", out snapEx);

在下面給出的代碼中。 有人可以告訴我我在哪里做錯了。

異常消息:Windows PowerShell版本2尚未注冊任何管理單元

我的代碼:

Command command = new Command("Get-VM");
            command.Parameters.Add("Name", "PIE01010299");
            RunspaceConfiguration runspaceConfig = RunspaceConfiguration.Create();
            PSSnapInException snapEx = null;
            PSSnapInInfo psinfo = runspaceConfig.AddPSSnapIn("System.Management.Automation", out snapEx);
            Runspace runSpace = RunspaceFactory.CreateRunspace(runspaceConfig);
            runSpace.Open();
            Pipeline pipeline = runSpace.CreatePipeline();

            pipeline.Commands.Add(command);
            Collection<PSObject> output = pipeline.Invoke();
            runSpace.Close();
            foreach (PSObject psObject in output)
            {
               Console.WriteLine(psObject.ToString());
            }

System.Management.Automation不是管理單元。 它是PowerShell核心引擎程序集。 默認情況下已加載它,因為您的C#項目需要引用該程序集。 您可能要導入Hyper-V模塊,例如:

pipeline.Commands.AddCommand("Import-Module").AddArgument("Hyper-V");
pipeline.Invoke();
pipeline.Clear();

或者使用InitialSessionState.ImportPSModule方法,然后關聯與運行空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM