簡體   English   中英

以管理員身份發現映射的網絡驅動器

[英]Discover Mapped Network Drives as Administrator

我有一個必須以管理員身份運行的 c# 應用程序。 除了許多其他事情之外,應用程序還必須讀取映射的網絡驅動器。

我想用 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;
}

我嘗試了一些東西,但這是我找到的唯一解決方法。

如何啟用 EnableLinkedConnections

  1. 單擊“開始”,在“開始程序和文件”框中鍵入regedit ,然后按 Enter。

  2. 找到並右鍵單擊注冊表子項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

  3. 指向新建,然后單擊DWORD值。

  4. 鍵入EnableLinkedConnections ,然后按ENTER

  5. 右鍵單擊EnableLinkedConnections ,然后單擊修改

  6. 在數值數據框中,鍵入1 ,然后單擊確定

  7. 退出注冊表編輯器,然后重新啟動計算機

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM