在使用非管理员用户运行时,我的C#应用程序在某些情况下崩溃。
我遇到了Windows Server 2003的问题,我正在尝试查找有关它的更多信息。这可能是其他Windows操作系统的问题。
似乎如果我创建一个非管理员用户,然后使用“Run as ...”命令在此用户下运行我的应用程序,则无法正确设置用户环境,以及TEMP环境变量指向C:\ Windows \ Temp而不是文档和设置配置文件中具有自己的Temp文件夹的用户。用户没有此文件夹的权限,因此应用程序崩溃.Net JIT编译器尝试写入/读取此文件夹。
如果我以此用户身份登录,情况仍然是错误的。在登录新用户时,我通常无法获得环境准备,并且我的应用程序在启动期间仍然无法运行而不会崩溃。事实上,我意识到用户无法在Windows文件夹中运行calc.exe或其他程序。看起来他们的环境永远搞砸了,我想前进的唯一方法是删除他们的个人资料。
如果我创建一个非管理员用户,并在执行“Run as ..”之前以其身份登录,那么他们的环境设置正常,我的应用程序正常工作。
我无法找到有关此问题的任何信息或有关Microsoft是否承认此问题的说明。你有没有经历过这个,或者你知道我在哪里可以找到更多关于它的信息吗?
答案 0 :(得分:3)
如果不是,请考虑为用户使用带有配置文件的runas。
C:\temp>runas RUNAS USAGE:
RUNAS [ [/noprofile | /profile] [/env] [/netonly] ] /user: program RUNAS [ [/noprofile | /profile] [/env] [/netonly] ] /smartcard [/user:] program/ noprofile指定 用户的个人资料不应该是 加载。 这会导致应用程序加载更快,但是 会导致某些应用程序出现故障 / profile指定 应加载用户的个人资料。 这是默认值。 / env使用 当前环境而不是用户。 / netonly使用如果 指定的凭据用于远程 只访问。 / savecred使用凭据 以前由用户保存。 Windows XP Home上不提供此选项 版 并将被忽略。 /智能卡使用if 凭证将被提供 来自a 智能卡。 /用户应该 在表单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兼容。注意: / profile不兼容 / netonly。