0
我寫了這個簡單的控制檯程序(writeTxt.exe
):使用「運行方式」命令寫入文件的程序(Windows Server 2008中)
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char *fileName = "test.txt";
ofstream outStream(fileName, ios::out);
outStream << "This is a very simple test." << endl;
return 0;
}
然後我的Windows Server 2008使用runas
控制檯上運行命令(I登錄作爲不同用戶從User1
):
runas /user:User1 writeTxt.exe
但程序不產生文件test.txt
。如果我以User1
的身份登錄到服務器並運行該程序,它可以正常工作。我必須設置一些東西才能正確運行嗎?
我沒有找到一種方法來明確地設置Windows Server 2008中'C:\ Windows \ System32'的權限(使用'屬性 - >安全性'選項卡),甚至以管理員身份。因此,我設置了'User1'帳戶作爲管理員帳戶(我假設它具有對C:\ Windows \ System32的寫權限),並嘗試過這種方式,但該程序仍然不會生成'test.txt'。 – ArthurN
@ArthurN - 在我的回答中,我本可以做得更加開闊 - 而不是試圖讓User1寫入該目錄,我會改變程序,使它不會嘗試寫入它的當前工作目錄(至少,而不是沒有設置其他東西) - 或者傳遞一個完整的路徑作爲參數給程序。 –
謝謝!在代碼中顯式設置完整路徑名稱可解決此問題。 – ArthurN