Использование команды "runas" для программы, которая записывает файл (Windows Server 2008)
Я написал эту простую консольную программу (writeTxt.exe
):
#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
команда (я вошел в систему как другой пользователь из User1
):
runas /user:User1 writeTxt.exe
Но программа не производит файл test.txt
, Если я войду на сервер как User1
и запустить программу, она работает правильно. Должен ли я установить что-то для правильной работы?
1 ответ
Решение
Я полагаю, что runas
всегда запускает программы с установленным рабочим каталогом C:\Windows\System32
(или моральный эквивалент), а не какой-либо текущий рабочий каталог, когда вы вызываете runas
,
Если User1
имеет разрешения на запись в этот каталог, вот где файл будет. Если у них нет такого разрешения, то программа завершится ошибкой.