Узнайте, достаточно ли места на диске для установки в общую папку - PullRequest
0 голосов
/ 22 сентября 2009

Мне нужно иметь возможность установить программу в общую папку на компьютере в локальной сети.

Сначала я должен выяснить, какие папки являются общими на компьютере, а затем проверить, достаточно ли места на диске для продолжения установки.

Вот мой метод.

public static void FindShares()
    {
        try
        {
            ConnectionOptions options = new ConnectionOptions();
            options.Authentication = AuthenticationLevel.PacketPrivacy;
            options.Impersonation = ImpersonationLevel.Impersonate;
            string path = "\\\\COMPUTERNAME\\root\\cimv2";
            ManagementScope scope = new ManagementScope(path, options);

            scope.Connect();
            ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Share");

            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection queryCollection = searcher.Get();

            foreach (ManagementObject m in queryCollection)
            {
                // Display shared folder information

                Console.WriteLine("Share Name : {0}", m["Name"]);
                Console.WriteLine("Share Path : {0}", m["Path"]);
                Console.WriteLine("AccessMask: {0}", m["AccessMask"]);
                Console.WriteLine("Type: {0}", m["Type"]);
                Console.WriteLine("Status : {0}", m["Status"]);
                Console.WriteLine();
            }

            string line;
            line = Console.ReadLine();
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }
    }

Когда я запускаю это, я получаю эту ошибку: Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))

Я думаю, что я должен установить свою имперонацию иначе, но я не знаю, как.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 сентября 2009

Ваш доступ запрещен, потому что поставщик WMI подражает вам, когда он подключается к удаленному компьютеру, а вы не являетесь администратором на удаленном компьютере.

Является ли ПК, на котором вы запускаете этот код, и ПК, на котором вы пытаетесь получить доступ к части домена Windows?

Является ли ваша учетная запись пользователя прямым или косвенным членом локальной группы администраторов на целевом компьютере?

...