我有一个有两台机器(两台 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