Announcement

Collapse
No announcement yet.

Mappen von UNC-Pfaden auf Laufwerksbuchstaben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mappen von UNC-Pfaden auf Laufwerksbuchstaben

    Hallo,<br>
    ich suche eine Möglichkeit, ähnlich dem DOS-Kommando
    <pre>net use lw: \\server\share</pre>
    per Programmcode UNC-Pfade auf Laufwerksbuchstaben zu mappen. Die Suche in Namespaces wie System.IO war bislang leider nicht erfolgreich, den Aufruf einer Batchdatei als externen Prozeß möchte ich vermeiden!!! <br>
    Vorab schonmal danke für die vielen hilfreichen Hinweise!! )<br>
    Uwe

  • #2
    Hallo,

    die zuständigen Klassen sind im Namespace <b>System.Management</b> zu finden - genauer gesagt, müssen diese bei Bedarf generiert werden. Dafür stehen 3 Wege offen: <br>
    a) Kommandozeilen-Tool <i>Microsoft Management Strongly Typed Class Generator</i> (MgmtclassGen.exe) aus dem .NET Framework SDK, oder <br>
    b) Kostenfreie VS.NET-Erweiterung: <i>Management (WMI) Extensions for VS.NET RTM Server Explorer</i> (Microsoft Download Center) oder<br>
    c) direktes Hantieren mit den vorgefertigen Universal-Klassen <i>ManagementObjectSearcher</i> und <i>ManagementObject</i>).

    In der nächsten Ausgabe vom dot.net-Magazin beschreibe ich alle 3 Wege (allerdings am Beispiel der WMI-Klasse <i>Win32_Logicaldisk</i>)

    Comment


    • #3
      Danke für die prompte Antwort! Das werde ich mir ansehen!<br>
      Auf einen weiteren Lösungsansatz bin ich erst nach Absenden meiner Anfrage gekommen. Ich nutze (seit heute nacht ) eine Referenz auf die WSHRuntime-Komponente.
      <pre>IWshRuntimeLibrary.WshNetworkClass wsh = new IWshRuntimeLibrary.WshNetworkClass();</pre>
      Uw

      Comment


      • #4
        Hallo,

        der Windows Scripting Host ist natürlich auch eine Alternative, wobei dieser vermutlich "pflegeleichter" (weil verständlicher) ist :-

        Comment


        • #5
          Ich schätze, dass ich mit dem Scripthost leider etwas voreilig war!?<br>Das Problem der MapNetworkDrive.Methode ist die zwingend notwendige Übergabe von Usernamen und Passwort. Bei Letzterem hänge ich nämlich jetzt in den Seilen (<br>
          Ich habe mir daraufhin den Namespace System.Management vorgenommen. Zumindest bin ich dort schonmal an einem Punkt angekommen, an dem ich jede Menge Informationen über die bestehenden Netzwerk-Mappings und logischen Laufwerke des angefragten Systems erhalte!<br>
          <pre>
          System.Management.ManagementScope ms = new System.Management.ManagementScope("root\\cimv2");
          System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkConnection");
          ManagementObjectSearcher os = new ManagementObjectSearcher(ms,oq);
          ManagementObjectCollection oc = os.Get();
          foreach( ManagementObject mo in oc )
          {
          try
          {
          Console.WriteLine("Name : " + mo["Name"].ToString());
          Console.WriteLine("Resource type : " + mo["ResourceType"].ToString());
          Console.WriteLine("User name : " + mo["UserName"].ToString());
          Console.WriteLine("local Name : " + mo["LocalName"].ToString());
          Console.WriteLine("Connection status : " + mo["Status"].ToString());
          Console.WriteLine("Provider Name : " + mo["ProviderName"].ToString());
          }
          catch (Exception e)
          {
          Console.WriteLine(e.Message.ToString());
          }
          </pre>
          Leider bekomme ich den Bogen zur Erzeugung neuer Objekte nicht hin! Ich schätze, dass ich das in der Klasse "Win32_LogicalDisk" auf die Reihe bekommen muß!?. Leider fehlt mir da absolut der Plan, zumal die bislang gesichteten Beispiele ziemlich bescheiden vom Inhalt sind!<br>Für jeden hilfreichen Hinweis dankbar!<br>
          Uw

          Comment


          • #6
            Hallo,

            die Dokumentation verbirgt sich in der Platform SDK Hilfe unter <b>WMI</b> (Windows Management Intrumentation) - in .NET steht "nur" ein Klassengenerator zur Verfügung, der aus den WMI-Klassen echte .NET-Klassen macht.

            Ich bin zur Zeit in der "heißen" Vorbereitungsphase für die dot.net-Konferenz 2003 bzw. die Entwickler Tage 2003, so dass ich nur noch selten hier im FORUM vorbeischauen kann. Allerdings nach diesen Terminen werde ich ein Beispiel zusammenstellen und hier posten

            Comment

            Working...
            X