0

我有一个有两台机器(两台 Windows Server 2012)的工作组。我想编写一个程序,让我在远程机器上创建文件/目录和......。我的工作组设置:

机器1:

  • 用户名:W1
  • 名称:WONE
  • 密码:拉拉拉拉
  • 工作组:WLAB

机器2:

  • 用户名:W2
  • 名称:WTWO
  • 密码:拉拉拉拉
  • 工作组:WLAB

我编写了以下在本地文件系统上正常工作的程序,但是当我想从 WTWO 机器上创建远程机器上的文件(即 \WONE\Users\W1\Desktop\Sample.txt)时,它不起作用. 我也以管理员权限运行我的程序,但没有任何改变。我的程序:

#include <windows.h>
#include <iostream>


bool MakeFileOnSystemAbsloute(const wchar_t* arg_path)
{
    SECURITY_ATTRIBUTES sa_FileSecurityAttribute;
    wchar_t c_FilePath[MAX_PATH];


    sa_FileSecurityAttribute.nLength = sizeof(sa_FileSecurityAttribute);
    sa_FileSecurityAttribute.lpSecurityDescriptor = NULL;
    sa_FileSecurityAttribute.bInheritHandle = FALSE;

    wcscpy_s(c_FilePath, MAX_PATH, arg_path);


    HANDLE h_CreatedFile = CreateFileW(c_FilePath, 0, 0, &sa_FileSecurityAttribute, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);

    if (h_CreatedFile)
    {
        CloseHandle(h_CreatedFile);
        return true;
    }
    else
    {
        return false;
    }
    
    return false;
}



int main()
{
    MakeFileOnSystemAbsloute(L"\\WONE\\Users\\W1\\Desktop\\Milad.txt");
    return 0;
}

问题出在哪里?我应该如何解决这个问题?另外,我从互联网上阅读了以下文本,似乎我无法使用本地计算机中的当前帐户访问远程计算机。

引用:

具有共享驱动器的机器不在域中这一事实是您的主要问题所在。为了使它工作,您必须将 Windows 服务配置为以特定用户身份运行,然后您必须在远程系统上创建一个具有相同密码的相同用户。那时它可能会起作用。

问题源于这样一个事实,即为了登录到不在域中的机器,您必须使用该机器上存在的帐户登录该机器。该本地计算机上肯定不存在其他计算机帐户。通过创建具有相同密码的相同用户,您可能能够使登录工作正常。”

-sysadmin1138

4

0 回答 0