「別のユーザーとして実行」…ユーザー環境を正しく作成しません
-
03-07-2019 - |
質問
管理者以外のユーザーで実行すると、特定の状況でC#アプリケーションがクラッシュします。
Windows Server 2003で問題が発生しているので、それに関する詳細情報を探しています。他のWindows OSでは問題になる可能性があります。
非管理者ユーザーを作成し、このユーザーの下で「実行...」コマンドを使用してアプリケーションを実行すると、ユーザー環境が正しく設定されず、TEMP環境変数がユーザーがDocuments and Settingsプロファイルに独自のTempフォルダーを持っている代わりに、C:\ Windows \ Tempを指します。ユーザーにはこのフォルダーへのアクセス許可がないため、アプリケーションは.Net JITコンパイラーがこのフォルダーへの書き込み/読み取りを試行するとクラッシュします。
このユーザーとしてログオンした場合、状況はまだ間違っています。新しいユーザーのログオン時に通常取得する環境の準備が整っていないため、起動中にクラッシュせずにアプリが実行されません。実際、ユーザーがcalc.exeまたはWindowsフォルダー内の他のプログラムを実行できないことに気付きました。彼らの環境は永久にめちゃくちゃになっているようで、今後の唯一の方法はプロフィールを削除することだと思います。
管理者以外のユーザーを作成し、「別のユーザーとして実行」を実行する前にログオンすると、環境が正しく設定され、アプリケーションが動作します。
この問題に関する情報や、Microsoftがそれを認めているかどうかに関するメモを見つけることができません。これを経験したことがありますか、それについて詳しく調べるためにどこを調べることができるか知っていますか?
解決
実行していない場合は、ユーザーのプロファイルで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では使用できません 版 そして無視されます。 / smartcard use if 資格情報が提供されます から スマートカード。 / userは 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。