3

管理者以外のユーザーで実行すると、特定の状況で C# アプリケーションがクラッシュします。

Windows Server 2003 で問題が発生しており、それに関する詳細情報を探しています。他の Windows OS では問題になる可能性があります。

管理者以外のユーザーを作成し、このユーザーの下で「Run as...」コマンドを使用してアプリケーションを実行すると、ユーザー環境が正しく設定されず、TEMP 環境変数が C を指しているようです。 :\Windows\Temp ユーザーが Documents and Settings プロファイルに独自の Temp フォルダーを持つ代わりに。ユーザーにはこのフォルダーへのアクセス許可がないため、.Net JIT コンパイラーがこのフォルダーへの書き込み/読み取りを試行すると、アプリケーションがクラッシュします。

このユーザーとしてログオンすると、状況は依然として間違っています。新しいユーザーがログオンするときに通常取得するような環境の準備ができていません。また、アプリは起動時にクラッシュせずに実行されません。実際、ユーザーは Windows フォルダーで calc.exe やその他のプログラムを実行できないことに気付きました。彼らの環境は恒久的に台無しにされているようで、今後の唯一の方法はプロファイルを削除することだと思います.

管理者以外のユーザーを作成し、'Run as..' を実行する前にそのユーザーとしてログオンすると、環境が正常にセットアップされ、アプリケーションが動作します。

この問題に関する情報や、Microsoft が認識しているかどうかについてのメモは見つかりません。これを経験したことがありますか、またはそれについてもっと知るために私がどこを見ればよいか知っていますか?

4

1 に答える 1

3

そうでない場合は、ユーザーのプロファイルで runas を使用することを検討してください。

C:\temp>runas RUNAS USAGE:

RUNAS [ [/プロファイルなし | /profile] [/env] [/netonly] ]
        /ユーザー: プログラム

RUNAS [ [/プロファイルなし | /profile] [/env] [/netonly] ]
        /smartcard [/user:] プログラム

/noprofile は、ユーザーのプロファイルを読み込まないように指定します。これにより、アプリケーションの読み込みが速くなりますが、一部のアプリケーションが誤動作する可能性があります。
/profile は、ユーザーのプロファイルを読み込む必要があることを指定します。これがデフォルトです。/env は、ユーザーの代わりに現在の環境を使用します。/netonly 指定された資格情報がリモート アクセス専用である場合に使用します。/savecred は、ユーザーが以前に保存した資格情報を使用します。このオプションは Windows XP Home Edition では使用できないため、無視されます。/smartcard は、資格情報がスマートカードから提供される場合に使用します。/user は、EXE の場合は USER@DOMAIN または DOMAIN\USER
プログラム コマンド ラインの形式である必要があります。例については以下を参照してください

例:

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 と互換性がありません。

于 2008-10-17T14:16:29.467 に答える