Запуск команды PowerShell из приложения C # для изменения виртуального жесткого диска 2012 R @ VM - PullRequest
0 голосов
/ 28 августа 2018

Prelude: я прочитал все ссылки C # -PowerShell-Process-StartInfo и попробовал их в своем коде, ничего не получалось.

Я пишу небольшое персональное приложение для копирования виртуальных машин 2012 R2 (выключенных) из одного места в другое на том же сервере. Я запускаю приложение «Как администратор», используя «XCOPY» для копирования всей папки виртуальной машины из источника в место назначения, удаляю старый SYMLINK и создаю НОВЫЙ SYMLINK, указывающий на новый файл XML, предоставляя всем и дочерним папкам «Все» «Полный доступ» - просто быть в безопасности. Все работает хорошо, КРОМЕ выбора нового местоположения VHD в файле XML.

Сначала я попытался отредактировать файл XML и указать НОВЫЙ путь VHD, но это не сработало - есть некоторые другие базовые вещи - не хочу идти по этому пути.

Что работало вручную / из консольных приложений: если эта команда запущена от имени администратора, она изменяет расположение виртуального жесткого диска виртуальной машины

A) PowerShell: Set-VMHardDiskDrive -VMName C -Path 'O: \ Виртуальные машины \ C \ Виртуальные жесткие диски \ C.vhdx'

B) CommandPromt: PowerShell.exe Set-VMHardDiskDrive -VMName C -Path 'O: \ Виртуальные машины \ C \ Виртуальные жесткие диски \ C.vhdx'

C) Создайте файл PS1 с помощью: Set-VMHardDiskDrive -VMName C -Path 'O: \ Virtual Machines \ C \ Virtual Hard Disks \ C.vhdx', вызовите файл PS1 из PowerShell

D) Создайте BAT-файл с помощью: PowerShell.exe Set-VMHardDiskDrive -VMName C -Path 'O: \ Виртуальные машины \ C \ Виртуальные жесткие диски \ C.vhdx'

К сожалению, всякий раз, когда я пробовал каждый из вышеперечисленных A, B, C & D, ни один не работал из моего OWN C # WinForm приложения (.net 4.6.2). Для каждого a, b, c, d я пробовал ShowNoWindow True / False, с / без Runas, имя пользователя / пароль - почти все комбинации - но ничего не работает. Это не ошибка, но расположение VHD не меняется. Если я сам запускаю команду из cmd / powershell, она меняет путь VHD в XML, и я вижу изменения в приложении VM Manager.

Если кто-то может пролить свет, это будет полезно. Спасибо.

...