Использование команды "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 имеет разрешения на запись в этот каталог, вот где файл будет. Если у них нет такого разрешения, то программа завершится ошибкой.

Другие вопросы по тегам