最近遇到了一個問題

要利用帳號密碼登入到另一台Server

這次此篇將教大家如何利用net use 指令連接和斷開

 

首先先介紹一下 net use 指令

net use就是連結電腦伺服器或是中斷電腦伺服器跟共享資源的連接 

下方列出幾個常用的...

net use 顯示目前連接的網路List

net use \\ip\資料路徑 " " /user:" "  -->  建立資料路徑的無權限連接

net use \\ip\資料路徑 "密碼" /user:"用戶名"  --> 建立資料路徑的有權限連接

net use k: \\ip\C$ "密碼" /user:"用戶名"    --> 直接連接對方C:到本地為K:

net use \\ip\資料路徑 /delete   -->  刪除資料路徑的連接

net use k: /delete    --> 刪除對方到本地的為K:的路徑

 

那下方會寫一隻程式供大家參考~

 

     Imports System.Diagnostics  --> 加入參考

 

    ''' <summary>
    ''' 連結電腦伺服器
    ''' </summary>
    ''' <param name="path">連結電腦伺服器的路徑</param>
    ''' <param name="userName">使用者名稱</param>
    ''' <param name="passWord">密碼</param>
    ''' <remarks></remarks>
    Protected Sub ConnectState(ByVal path As String, ByVal userName As String, ByVal passWord As String)

        Dim proc As New Process   --> 建立一個新的處理程序
        Dim dosLine As String = ""
        Dim errormsg As String = ""

        Try            

            --> 執行CMD(命令提示字元)          
           proc.StartInfo.FileName = "cmd.exe"    

            --> 允許用戶啟動圖形應用程序或打開文檔        
           proc.StartInfo.UseShellExecute = False  
  
           --> 將讀取應用程序的輸入StandardInput
           proc.StartInfo.RedirectStandardInput = True   

           -->  將應用程序的文本輸出StandardOutput          
           proc.StartInfo.RedirectStandardOutput = True             
   
           -->  將應用程序的錯誤輸出StandardError
           proc.StartInfo.RedirectStandardError = True  

           -->  在新窗口中啟動該進程       
           proc.StartInfo.CreateNoWindow = True              

           proc.Start()    -->  處理程序啟動

            '執行連接資料夾路徑
            dosLine = "net use " + path + " " + passWord + " /user:" + userName

            proc.StandardInput.WriteLine(dosLine)    --> 執行指令
            proc.StandardInput.WriteLine("exit")        --> 關閉指令

            '等待關閉
            While (Not proc.HasExited)
                proc.WaitForExit(1000)
            End While

            '抓取錯誤資訊
            errormsg = proc.StandardError.ReadToEnd()
            proc.StandardError.Close()

            If (String.IsNullOrEmpty(errormsg)) Then

                Throw New Exception(errormsg)

            End If


        Catch ex As Exception
            '可輸出錯誤訊息
            Exit Sub
        Finally
            '關閉程序
            proc.Close()
            proc.Dispose()
        End Try

    End Sub

 

若要斷開則是將指令改成  "net use " + path + " " + " /delete"

 

 

這次的介紹就到這邊囉~希望對大家有所幫助

一樣若有錯誤或問題歡迎留言

 

參考 : https://docs.microsoft.com/en-us/dotnet/?view=netframework-4.6

 

 

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 艾倫先生 的頭像
艾倫先生

艾倫先生的程式生活日記

艾倫先生 發表在 痞客邦 留言(0) 人氣(577)