Я пытаюсь получить версию своего приложения, и я могу сделать это для локальной машины, используя приведенный ниже код,
try
{
string path = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products";
RegistryKey key = null;
if (!string.IsNullOrEmpty(path))
{
//get the 64-bit view first
key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
key = key.OpenSubKey(path);
//Couldn't find the value in the 64-bit view so grab the 32-bit view
if (key == null)
{
key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
key = key.OpenSubKey(path);
}
}
foreach (string tempKeyName in key.GetSubKeyNames())
{
RegistryKey tempKey = key.OpenSubKey(tempKeyName + "\\InstallProperties");
if (tempKey != null)
{
if (string.Equals(Convert.ToString(tempKey.GetValue("DisplayName")), "My Application", StringComparison.CurrentCultureIgnoreCase))
{
Console.WriteLine(Convert.ToString(tempKey.GetValue("DisplayVersion")));
break;
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Теперь мне нужно прочитать для удаленной машины, и выше кусок кода не работает, так что ищете решение WMI?
Можем ли мы сделать это через WMI?