Finden Sie heraus, ob es genügend Speicherplatz ist in einem freigegebenen Ordner zu installieren

StackOverflow https://stackoverflow.com/questions/1459434

  •  12-09-2019
  •  | 
  •  

Frage

Ich muß in die Lage, ein Programm in einem freigegebenen Ordner auf einem Computer im LAN zu installieren.

Zuerst muß ich herausfinden, welche Ordner auf einem Computer gemeinsam genutzt werden, und dann prüfen, ob genügend Speicherplatz für die Installation fortzusetzen.

Hier ist meine Methode.

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);
        }
    }

Wenn ich diese laufen bekomme ich diese Fehlermeldung: Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))

ich glaube, ich meine imperonation einrichten müssen Diferently, aber ich weiß nicht, wie.

Vielen Dank für Ihre Hilfe.

War es hilfreich?

Lösung

Ihr Zugriff verweigert, da der WMI-Anbieter Sie Identitätswechsel, wenn es auf den entfernten Rechner verbindet, und Sie sind nicht als Administrator auf dem entfernten Rechner.

Ist der PC Sie diesen Code laufen auf, und der PC Sie versuchen, Teil einer Windows-Domäne zu schlagen?

Ist Ihr Benutzerkonto direkt oder indirekt ein Mitglied der lokalen Administrator-Gruppe auf dem Zielcomputer?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top