Инструментарий развертывания Microsoft из C#
Я пытаюсь использовать MDT из C#, как я уже могу сделать с PowerShell при импорте MicrosoftDeploymentToolkit.psd1
, Например, я могу запустить команду Get-MDTPersistentDrive
прямо из powershell без проблем.
Но я не могу найти способ сделать то же самое из C#, я попытался включить непосредственно Microsoft.BDD.PSSnapIn.dll
(что было в основном то, что делал "MicrosoftDeploymentToolkit.psd1"), тогда я мог получить доступ к GetPersistent
класс, но сообщение об ошибке сообщило мне, что я не могу напрямую вызвать PSCMDlet.
Затем я попытался использовать класс PowerShell
var ps = PowerShell.Create();
ps.AddScript(@"import-module C:\...\MicrosoftDeploymentToolkit.psd1");
ps.Invoke();
ps.AddCommand("Get-MDTPersistentDrive");
var result = ps.Invoke();
Но я получаю это исключение
Термин "Get-MDTPersistentDrive" не распознается как имя командлета, функции, файла сценария или работоспособной программы.
Затем я попытался сделать это
InitialSessionState initial = InitialSessionState.CreateDefault();
initial.ImportPSModule(new string[] { @"C:\...\MicrosoftDeploymentToolkit.psd1" });
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
runspace.Open();
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.Commands.AddCommand("Get-MDTPersistentDrive");
var result= ps.Invoke();
и я получаю ошибку
В экземпляре объекта не задана ссылка на объект
Я действительно заблудился, я не понимаю, что они имеют в виду с этой ошибкой, если бы вы могли показать мне, где я не прав, или способ выполнить PSCmdlet из C# или даже лучше напрямую, как управлять MDT, что было бы здорово.