MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Как удаленно получить инфу о доменной машине?"
Answer 944177
На тех машинах, к которым вы хотите осуществлять удаленный доступ, необходимо:
убедиться, что включена служба удаленного реестра
добавить в список разрешений ключа реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
группу "Пользователи домена", и установить галку "Разрешить" напротив пункта "Чтение".После этого, вы можете получить доступ к любой информации из реестра удаленной машины из-под любой учетной записи домена. Например, список программ, установленных глобально (для всех пользователей компьютера) можно вывести так:
using System; using Microsoft.Win32; namespace ConsoleApp1 { class Program { public static void Main(string[] argv) { RegistryKey remote = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "\\\\compname"); using (remote) { RegistryKey subkeyUninstall = remote.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"); using (subkeyUninstall) { foreach (var subkey_name in subkeyUninstall.GetSubKeyNames()) { RegistryKey subkeyApp = subkeyUninstall.OpenSubKey(subkey_name); using (subkeyApp) { object dispname = subkeyApp.GetValue("DisplayName"); if (!String.IsNullOrEmpty(dispname as string)) Console.WriteLine(dispname as string); else Console.WriteLine(subkey_name); } } } } Console.ReadKey(); } } }
Безопасность такого решения, впрочем, под серьезным вопросом, так как доступ придется открывать ко всему реестру. Существует групповая политика для разрешения доступа на уровне отдельных ключей, но она, насколько я понял, не позволяет дать доступ только на чтение, так что это еще хуже.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.