我需要在.NET应用程序中映射networking驱动器。 我将需要使用AD用户名和密码进行身份validation。 通常我只是使用net use
命令来使用batch file。 我如何从C#或VB.NET代码中做到这一点?
你看过吗?
http://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357
另外,您可以通过Process.Start()
使用net.exe并将其传递给您始终使用的参数。
System.Diagnostics.Process.Start("net.exe", "use K: \\server\URI\path\here");
看到这个网站: http : //www.blackwasp.co.uk/MapDriveLetter.aspx
它将向您展示如何以编程方式映射来自C#的驱动器,包括用户名和密码等凭据
下面是一些你应该发现的代码,比仅仅在控制台上进行shelling更可靠。
''' <summary> ''' ''' </summary> ''' <param name="driveLetter"></param> ''' <param name="uncName"></param> ''' <remarks>This was hand tested. We cannot automate because it messes with the OS</remarks> Sub MapDrive(ByVal driveLetter As Char, ByVal uncName As String) Dim driveLetterFixed = Char.ToLower(driveLetter) If driveLetterFixed < "a"c OrElse driveLetterFixed > "z"c Then Throw New ArgumentOutOfRangeException("driveLetter") If uncName Is Nothing Then Throw New ArgumentNullException("uncName") If uncName = "" Then Throw New ArgumentException("uncName cannot be empty", "uncName") Dim fixedUncName As String = uncName 'This won't work if the unc name ends with a \ If fixedUncName.EndsWith("\") Then fixedUncName = fixedUncName.Substring(0, fixedUncName.Length - 1) Dim oNetWork As New IWshRuntimeLibrary.IWshNetwork_Class Try 'This usually isn't necessary, but we can't detect when it is needed. oNetWork.RemoveNetworkDrive(driveLetter, True, True) Catch ex As Runtime.InteropServices.COMException 'Ignore errors, it just means it wasn't necessary End Try oNetWork.MapNetworkDrive(driveLetter, fixedUncName, True) End Sub
http://clrextensions.codeplex.com/SourceControl/changeset/view/55677#666894