2016-12-05 94 views
0

我想使用遠程計算機管理員憑據在遠程計算機上創建文件夾,使用Directory.CreateDirectory如何傳遞用戶名和密碼以創建目錄。如何在遠程計算機上創建文件夾c#

+1

您是否有權訪問遠程計算機?在你能做遠程登錄? –

+0

正如@PratikGaikwad建議的,首先你需要知道是否有權訪問該文件夾,以及是否有權寫入該文件夾。 –

+0

如果你有遠程訪問,那麼你必須看看[ConnectionOptions](https://msdn.microsoft.com/en-us/library/system.management.connectionoptions(v = vs.110).aspx? f = 255&MSPPError = -2147217396&cs-save-lang = 1&cs-lang = csharp#code-snippet-2)class –

回答

0

首先檢查您是否有權訪問該文件夾,是否允許寫入。 如果你有,那麼用這樣的方式:

var directorypath = @"\\172.16.136.35\SharedFolder1\"; 
(!Directory.Exists(directorypath)) 
{ 
    Directory.CreateDirectory(directorypath); 
} 

其中「172.16.136.35」必須由遠程計算機IP或DNS更換。 看看這個post

現在,如果你想在執行的管理是什麼,你可能會在清單中聲明它,看this post

下面的代碼被公佈在同一職位,並讓您檢查你正在以管理員身份運行,或者你沒有。

using System.Security.Principal; 
public bool IsUserAdministrator() 
{ 
    bool isAdmin; 
    try 
    { 
     WindowsIdentity user = WindowsIdentity.GetCurrent(); 
     WindowsPrincipal principal = new WindowsPrincipal(user); 
     isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); 
    } 
    catch (UnauthorizedAccessException ex) 
    { 
     isAdmin = false; 
    } 
    catch (Exception ex) 
    { 
     isAdmin = false; 
    } 
    return isAdmin; 
} 

真的,我不知道是否是一種程序化的方式來強制應用程序提升自己的燙髮。根據我的經驗,應用程序應該在開始時提升。 讓我們舉一個例子:

  • 命令提示符:很多時候,我們發現程序,過程,或什麼的,這需要安裝作爲管理員,如果我打開CMD作爲一個普通用戶,通常是它拋出一個異常。然後你必須關閉cmd並以管理員身份再次打開它,對吧?

如果我是某個操作系統,並且我允許任何人以管理員身份提升自己的身份,我可以在許多安全風險中思考。

我希望你能解決這個問題。

+0

我想在這裏使用管理員憑證來創建文件夾。 –

+0

我編輯了答案,以幫助您理解我認爲它的工作方式。 –

1

如果遠程計算機上訪問,那麼你可以使用TCP/IP協議直接創建文件夾,使用下面的代碼:

string _directoryName = @"\\ServerIP\C$\FolderName"; 
(!Directory.Exists(_directoryName)) 
{ 
    Directory.CreateDirectory(_directoryName); 
} 
但是

,如果你想創建的文件夾使用admin用戶只能用特定的權限您可以使用psexec來創建文件夾。我假設你知道如何從c#調用外部exe或進程。您可以通過以下命令參數psexec創建文件夾

psexec \\\IPAddress -u username -p Password cmd /c mkdir c:\FolderName 
相關問題