Hi stack переполнение ers!
Я хочу прочитать IP-адрес моих виртуальных машин.Для этого я создал приложение для WindowsForms и в данный момент могу переключаться между своими виртуальными машинами, приостанавливать или возобновлять их, и все работает нормально.Для этого я запускаю команды powershell в коде C #.Моя единственная проблема - получить IP-адреса моих виртуальных машин.Причина в том, что я хочу получить доступ к виртуальным машинам через удаленный рабочий стол после их запуска.
До сих пор я пытался создать элемент PowerShell и запустить команду для доступа к IP-адресам.Пока все хорошо, я могу видеть IP-адрес всех своих машин, если взгляну на PSObject, но не могу извлечь его в переменную.
Я пытался преобразовать его в объекти перебирать все типы, что не сработало, потому что я теряю всю информацию.Я также попытался запустить несколько команд Powershell, к сожалению, не удалось.Я пытался найти правильную сборку для создания отдельного объекта для чтения этих значений, но не могу.
В соответствии с Visual Studio я должен иметь возможность доступа к нему с помощью моего объекта PSMemberInfo.И он должен быть типа Microsoft.HyperV.PowerShell.VMNetworkAdapter , что вы можете видеть на прикрепленном мною изображении.Но я не могу найти такой тип, и я не могу найти конкретную сборку, чтобы включить то, что позволяет мне создавать такой тип.https://i.imgur.com/Ligb1J4.jpg
Кто-нибудь уже пробовал что-то подобное или есть другая идея, как я могу получить доступ к IP-адресам?
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-VM").AddParameter("Name", _name);
ps.AddStatement().AddCommand("Select").AddParameter("ExpandProperty", "Networkadapters");
ps.AddStatement().AddCommand("Select").AddParameter("IPAddresses");
Collection<PSObject> _c;
_c = ps.Invoke();
foreach (PSObject o in _c)
{
PSMemberInfo s = o.Members["Networkadapters"];
//Type listType = s.Value.GetType();
//var values = s.Value;
}