2012-07-16 117 views
0

嘗試編寫WMI類功能以使用登錄的計算機的憑據在任何計算機(遠程或本地)上掛載網絡驅動器。使用WMI掛載網絡驅動器

這是一個較大的項目,我寫了幫助臺工作人員在遠程PC上進行第一線修復。機器名稱或IP地址和應用程序中的技術類型連接到它,並允許技術人員點擊幾個按鈕並修復一些基本項目,而無需遠程(VNC)進入PC。

我已經在互聯網上看過,它比WMI更容易,但由於應用程序的遠程特性,我寧願不使用本地API調用,也不想擔心上傳腳本和執行它雖然是一個過程開始。其他功能也已經在WMI中,所以我想保持代碼基礎相同。

的基本思路是,以安裝H://fileserver.example.com/$username

NetFixer已經在生產中使用,所以我試圖讓我的代碼漂亮和整潔

enter image description here

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Management; 

namespace WMIcontrols 
{ 
    public class Remote 
    { 

    public string target; 

    //Some code skipped here for simplicity sake... 

    public bool MountNetDrive(string DriveLetter, string MountLocation) 
    { 
     try 
     { 
      //Mount the network drive 
      return true; 
     } 
     catch 
     { 
      //Mount Failed 
      return false; 
     } 
    } 
    } 
} 
+0

對不起,如果我錯了,但你的問題是什麼? – hotS85 2012-07-16 16:55:20

+1

你怎麼不使用本地API,但是然後在.Net中編寫一個完整的類來做你想要的?我的意思是,當一個簡單的'Net Use/p:yes h:\\ fileserver.example.com \ $ username'是一行代碼時,它似乎會使事情變得非常複雜。 – 2012-07-16 16:57:05

+0

我如何去做。我已經搜索了一段時間,所有我可以想出的是,使用WScript.Network對象更容易。我發現很多帖子都比較容易,但沒有提示如何在WMI中做到這一點。 – 2012-07-16 17:00:40

回答

2

這不是使用WMI,但會完成你想要的,很簡單

System.Diagnostics.Process.Start("cmd", "/c net use x: \\fileserver.example.com /user:Username Password");