C# 如何在远程计算机c上创建文件夹#

C# 如何在远程计算机c上创建文件夹#,c#,.net,C#,.net,我想使用远程计算机管理员凭据,使用Directory.CreateDirectory在远程计算机上创建文件夹。如何传递用于创建目录的用户名和密码。首先检查您是否有权访问该文件夹以及是否允许写入。 如果有,请使用以下方法: var directorypath = @"\\172.16.136.35\SharedFolder1\"; (!Directory.Exists(directorypath)) { Directory.CreateDirectory(directorypath); }

我想使用远程计算机管理员凭据,使用Directory.CreateDirectory在远程计算机上创建文件夹。如何传递用于创建目录的用户名和密码。

首先检查您是否有权访问该文件夹以及是否允许写入。 如果有,请使用以下方法:

var directorypath = @"\\172.16.136.35\SharedFolder1\";
(!Directory.Exists(directorypath))
{
    Directory.CreateDirectory(directorypath);
}
其中“172.16.136.35”必须由远程计算机ip或dns替换。 看看这个

现在,如果您希望以管理员身份执行,您可以在清单中声明它,请参阅

下面的代码是在同一篇文章中发布的,您可以检查自己是否以管理员身份运行

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;
}
真的,我不知道这是否是一种程序化的方式来强制应用程序提升自己的perm。根据我的经验,这个应用程序应该在一开始就升级。 让我们举一个例子:

  • 命令提示符:很多时候,我们发现程序、进程或其他需要作为管理员安装的东西,如果我以普通用户身份打开cmd,通常会抛出异常。然后你必须关闭cmd并以admin的身份再次打开它,对吗
如果我是一个操作系统,允许任何人将自己提升为管理员,我会考虑很多安全风险


我希望您能解决这个问题。

首先检查您是否有权访问该文件夹以及是否允许写入。 如果有,请使用以下方法:

var directorypath = @"\\172.16.136.35\SharedFolder1\";
(!Directory.Exists(directorypath))
{
    Directory.CreateDirectory(directorypath);
}
其中“172.16.136.35”必须由远程计算机ip或dns替换。 看看这个

现在,如果您希望以管理员身份执行,您可以在清单中声明它,请参阅

下面的代码是在同一篇文章中发布的,您可以检查自己是否以管理员身份运行

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;
}
真的,我不知道这是否是一种程序化的方式来强制应用程序提升自己的perm。根据我的经验,这个应用程序应该在一开始就升级。 让我们举一个例子:

  • 命令提示符:很多时候,我们发现程序、进程或其他需要作为管理员安装的东西,如果我以普通用户身份打开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

如果您可以访问远程计算机,则可以使用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

您有权访问远程计算机吗?正如@PratikGaikwad所建议的,首先你需要知道你是否有权访问该文件夹,以及你是否被授权写入该文件夹。如果你有远程访问权,那么你必须查看class@PratikGaikwad,是的,我可以远程登录到计算机,我有管理员用户名和密码。@FacundoLaRocca,由于我正在c-drive中创建一个新文件夹,我认为不需要权限。您有权访问远程计算机吗?正如@PratikGaikwad所建议的,首先你需要知道你是否有权访问该文件夹,以及你是否被授权写入该文件夹。如果你有远程访问权,那么你必须查看class@PratikGaikwad,是的,我可以远程登录到计算机,我有管理员用户名和密码。@FacundoLaRocca,因为我在c-drive中创建了一个新文件夹,我想不需要权限。我想使用管理员凭据在此处创建文件夹。我编辑答案是为了帮助您了解我认为它的工作方式。我想使用管理员凭据在此处创建文件夹。我编辑答案是为了帮助您了解我认为它的工作方式。您实际指的是哪里您的帖子中的psexec.exe假定该文件是本地安装的,但如果我想使用存储在应用程序资源文件夹中的psexec.exe运行该文件,该怎么办?您的帖子中假定该文件是本地安装的,但如果我要使用存储在应用程序资源文件夹中的psexec.exe运行该文件,该怎么办。。?