簡體   English   中英

如何在遠程計算機上創建文件夾C#

[英]how to create a folder on remote machine c#

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

首先檢查您是否有權訪問該文件夾以及是否被允許寫入。 如果有,請使用以下方式:

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

其中“ 172.16.136.35”必須由遠程計算機ip或dns代替。 看看這篇文章

現在,如果您要以admin身份執行,則可以在清單中聲明它,請參閱這篇文章

以下代碼發布在同一篇文章中,可讓您檢查您是否以管理員身份運行或不運行。

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;
}

真的,我不知道是否有一種編程方式來強制應用程序提升自身權限。 以我的經驗,該應用程序應在一開始就提升。 讓我們舉個例子:

  • 命令提示符 :很多時候,我們發現需要以Admin身份安裝的程序,進程或其他任何內容,如果我以普通用戶身份打開cmd,通常會引發異常。 然后,您必須關閉cmd並以admin身份再次打開它,對嗎?

我可能會認為,如果我使用的是某些操作系統,並且允許任何人以管理員身份提升自己,那么它會帶來很多安全風險。

希望您能解決問題。

如果您可以訪問遠程計算機,則可以使用tcp / ip協議直接使用以下代碼創建文件夾:

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

但是,如果只想使用具有特定權限的管理員用戶來創建文件夾,則可以使用psexec來創建文件夾。 我假設您知道如何從c#調用外部exe或進程。 您可以將以下命令參數傳遞給psexec來創建文件夾

psexec \\\IPAddress -u username -p Password cmd /c mkdir c:\FolderName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM