У меня есть приложение С#, которое нужно запускать от имени администратора. Наряду со многими другими вещами, приложение должно читать подключенные сетевые диски.
Я хотел сделать это с помощью WMI и Win32_NetworkConnection, НО это работает только без прав администратора.
Есть ли обходной путь? Какой был бы мой лучший вариант?
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Вот код, который у меня есть, который возвращает пустой список, даже если подключены 3 сетевых диска:
public IEnumerable<NetworkConnection> GetNetworkConnections()
{
List<NetworkConnection> networkConnections = new List<NetworkConnection>();
try
{
var path = new ManagementPath();
path.NamespacePath = "\\ROOT\\CIMV2";
path.ClassName = "Win32_NetworkConnection"; //https://msdn.microsoft.com/en-us/library/aa394220(v=vs.85).aspx
var management = new ManagementClass(path);
foreach (ManagementObject obj in management.GetInstances())
{
NetworkConnection networkConnection = new NetworkConnection()
{
LocalName = (string)obj.Properties["LocalName"].Value,
Name = (string)obj.Properties["Name"].Value,
RemotePath = (string)obj.Properties["RemotePath"].Value,
UserName = (string)obj.Properties["UserName"].Value,
IsPersistent = (bool)obj.Properties["Persistent"].Value,
ConnectionState = (string)obj.Properties["ConnectionState"].Value
};
networkConnections.Add(networkConnection);
}
}
catch (Exception ex)
{
log.Error($"Failed to get network connections.", ex);
}
return networkConnections;
}
1 ответ
Я пробовал несколько вещей, но это единственный обходной путь, который я нашел.
Как включить EnableLinkedConnections
Нажмите Пуск, введите regedit в поле Пуск программ и файлов и затем нажмите ВВОД.
Найдите и щелкните правой кнопкой мыши подраздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.
Наведите курсор на Создать и нажмите Значение DWORD.
Введите EnableLinkedConnections и нажмите ВВОД.
Щелкните правой кнопкой мыши EnableLinkedConnections и выберите Изменить.
В поле "Значение" введите 1 и нажмите ОК.
Закройте редактор реестра и перезагрузите компьютер.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.