2013-03-08 3 views
0

Как я могу сделать код .NET для преобразования Z: диска в путь UNC для учетной записи SVNdatamgmt?Путь UNC может отображаться из командной строки, но не из приложения .NET Console

Я пытаюсь сопоставить локальный диск с сетевым UNC-контуром в консольном приложении .NET. Код, похоже, работает из командной строки для учетной записи службы (# 2 и # 3) и моих учетных данных (# 4). Но при запуске из приложения Console с использованием исходного кода .NET учетная запись службы не работает (# 5), но мои учетные данные работают (# 6).

Вчера вечером я заметил, что у меня есть ошибка (№ 1). После ожидания 30 минут это сработало. Таким образом, вы можете игнорировать # 1. Я думал, что упомянул об этом, если это даст понять, что происходит.

Консольное приложение работает как администратор в окне Windows Server 2008. Оба SVCdatamgmt и macgyver являются администраторами на этом компьютере. Команды также запускаются на этой же машине.

================================================================================================================================== ==========================
1.) Это не сработало вчера вечером:

C:>net use z: \\uwhc-sas2\SASHIMC /USER:SVCdatamgmt thepassword

System error 1909 has occurred. 
The referenced account is currently locked out and may not be logged on to. 

========================================== ==============================
2.) Ожидал 30 минут, а затем t его работы (без домена):

C:>net use z: \\uwhc-sas2\SASHIMC /USER:SVCdatamgmt thepassword

The command completed successfully. 

========================== =============================================
3.) Это также работает (с областью):

C:>net use z: \\uwhc-sas2\SASHIMC /USER:UWHIS\SVCdatamgmt thepassword

The command completed successfully. 

======================================================================================================================================================= ==========================
4.) Это также работает с моими учетными данными:

C:>net use z: \\uwhc-sas2\SASHIMC /USER:macgyver thepassword

The command completed successfully. 

=========================================== =============================
5.) .NET-код, который отображает d разрываться. Учетные данные SVCdatamgmt не работают.

public static void MapNetworkDriveToUNC() 
{ 
    var command = @"net use " + mapDrive + " " + uncPath + " " + uncUser + " " + uncPass; 
    ExecuteCommand(command, 10000); 
} 

public static void UnmapNetworkDriveToUNC() 
{ 
    var command = "net use " + mapDrive + " /delete"; 
    ExecuteCommand(command, 5000); 
} 

========================================= ================================
6.) .NET-код, который отображает диск.Мои учетные работы (МакГайвер)

- тот же код, как # 5 -

========================= ==============================================
FYI: перед выполнением каждой команды выше, я должен отключить (Unmap) диск, используя этот код ...

C:\>net use z: /delete 

z: was deleted successfully. 

ответ

1

Я искал команду, чтобы отобразить путь UNC к сетевому диску из C# и я реализовал это и отлично работает. Его слишком поздно, но может быть полезным для кого-то в будущем:

public static bool MapDrivetoUNC(string DriveName, string Path) 
    { 
    try 
    { 
     bool isMapped = true; 

     System.Diagnostics.Process p = new System.Diagnostics.Process(); 
     p.StartInfo.UseShellExecute = false; 
     p.StartInfo.CreateNoWindow = true; 
     //p.StartInfo.RedirectStandardError = true; 
     //p.StartInfo.RedirectStandardOutput = true; 
     p.StartInfo.FileName = "net.exe"; 
     p.StartInfo.Arguments = " use " + DriveName + ": " + '"' + Path + '"'; 
     p.Start(); 
     p.WaitForExit(); 

     //str errMsg = p.StandardError.ReadToEnd(); 
     // similar for erroutput .. 
     isMapped = true; 
    } 
    catch(Exception ex) 
    { 
     Utility.logError(ex); 
     isMapped = false; 
    } 
    return isMapped; 
    } 
+0

я реализовал это: чистое использование Z: \\ путь \ путь \ путь/USER: the_user the_password ... и снять его, я сделал это: net use Z:/delete – MacGyver