“运行方式...”无法正确创建用户环境

时间:2008-10-17 13:43:44

标签: c# .net windows-server-2003 user-environment

在使用非管理员用户运行时,我的C#应用​​程序在某些情况下崩溃。

我遇到了Windows Server 2003的问题,我正在尝试查找有关它的更多信息。这可能是其他Windows操作系统的问题。

似乎如果我创建一个非管理员用户,然后使用“Run as ...”命令在此用户下运行我的应用程序,则无法正确设置用户环境,以及TEMP环境变量指向C:\ Windows \ Temp而不是文档和设置配置文件中具有自己的Temp文件夹的用户。用户没有此文件夹的权限,因此应用程序崩溃.Net JIT编译器尝试写入/读取此文件夹。

如果我以此用户身份登录,情况仍然是错误的。在登录新用户时,我通常无法获得环境准备,并且我的应用程序在启动期间仍然无法运行而不会崩溃。事实上,我意识到用户无法在Windows文件夹中运行calc.exe或其他程序。看起来他们的环境永远搞砸了,我想前进的唯一方法是删除他们的个人资料。

如果我创建一个非管理员用户,并在执行“Run as ..”之前以其身份登录,那么他们的环境设置正常,我的应用程序正常工作。

我无法找到有关此问题的任何信息或有关Microsoft是否承认此问题的说明。你有没有经历过这个,或者你知道我在哪里可以找到更多关于它的信息吗?

1 个答案:

答案 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。