«Выполнить как ...» неправильно создает среду пользователя - PullRequest
3 голосов
/ 17 октября 2008

Мой C # приложение падает при некоторых обстоятельствах при запуске с пользователем без прав администратора.

У меня проблема с Windows Server 2003, и я пытаюсь найти дополнительную информацию об этом. Это может быть проблемой в других ОС Windows.

Кажется, что если я создаю пользователя без прав администратора, а затем запускаю свое приложение под этим пользователем с помощью команды «Запуск от имени…», среда пользователей не будет настроена правильно, и переменная среды TEMP указывает на C: \ Windows \ Temp вместо пользователей, имеющих собственную папку Temp в профиле Documents and Settings. У пользователя нет прав доступа к этой папке, поэтому происходит сбой приложения, когда компилятор .Net JIT пытается выполнить запись / чтение в эту папку.

Если я вхожу в систему как этот пользователь, ситуация все равно не так. Я не получаю подготовленную среду, которую вы обычно получаете при входе в систему от нового пользователя, и мое приложение по-прежнему не будет работать без сбоев во время запуска. На самом деле я понял, что пользователь не может запустить calc.exe или другие программы в папке Windows. Похоже, что их среда постоянно испорчена, и я думаю, что единственный путь вперед - это удалить их профиль.

Если я создаю пользователя без прав администратора и регистрируюсь как он, прежде чем выполнить «Запуск от имени…», их среда настраивается нормально, и мое приложение работает.

Я не могу найти информацию об этой проблеме или заметки о том, признает ли ее Microsoft. Вы испытали это или знаете, где я могу найти больше информации об этом?

1 Ответ

3 голосов
/ 17 октября 2008

Подумайте об использовании runas с профилем для пользователя, если вы не.

C:\temp>runas RUNAS USAGE:

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /user: program

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /smartcard [/user:] program

/ noprofile указывает, что профиль пользователя не должен быть загружен. Это заставляет приложение загружаться быстрее, но может вызвать сбой в работе некоторых приложений.
/ профиль указывает, что профиль пользователя должен быть загружен. Это по умолчанию. / env для использования текущая среда вместо пользователя. / использовать только если указанные учетные данные для удаленного доступ только / savecred для использования учетных данных ранее сохраненный пользователем. Эта опция недоступна в Windows XP Home Издание и будут игнорироваться. / использование смарт-карты, если учетные данные должны быть предоставлены из интеллектуальная карточка. / пользователь должен быть в форме USER @ DOMAIN или DOMAIN \ USER
командная строка программы для EXE. Ниже приведены примеры

Примеры:

runas /noprofile /user:mymachine\administrator cmd runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc" runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

ПРИМЕЧАНИЕ. Введите пароль пользователя только тогда, когда ответ на запрос. ПРИМЕЧАНИЕ: USER @ DOMAIN не является совместим с / netonly. НОТА: / профиль не совместим с /netonly.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...