【问题标题】:'Run As...' doesn't correctly create user environment“运行方式...”无法正确创建用户环境
【发布时间】:2008-10-17 13:43:44
【问题描述】:

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

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

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

如果我以该用户身份登录,情况仍然是错误的。我没有准备好你在登录新用户时通常会得到的环境,而且我的应用程序在启动期间仍然无法运行而不会崩溃。事实上,我已经意识到用户无法在 Windows 文件夹中运行 calc.exe 或其他程序。他们的环境似乎永远混乱了,我想唯一的出路就是删除他们的个人资料。

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

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

【问题讨论】:

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


    【解决方案1】:

    如果不是,请考虑使用带有用户配置文件的 runas。

    C:\temp>runas RUNAS USAGE:

    RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
            /用户:程序
    
    RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
            /smartcard [/user:] 程序
    

    /noprofile 指定 用户的个人资料不应该是 加载。 这会导致应用程序加载更快,但 可能会导致某些应用程序出现故障。
    /profile 指定 应该加载用户的个人资料。 这是默认设置。 /env 使用 当前环境而不是用户的。 /netonly 使用,如果 指定的凭据用于远程 只能访问。 /savecred 以使用凭据 以前由用户保存。 此选项在 Windows XP Home 上不可用 版 并将被忽略。 /智能卡使用 if 将提供凭据 从一个 智能卡。 /用户应该是 格式为 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多