質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

環境変数

環境変数とは、WindowsやUNIXなどのOSが提供しているデータ共有機能の一つ。OSが動作するときに使用する変数を指します。異なる設定値などのデータを記録し、設定・参照することが可能です。

Q&A

解決済

2回答

877閲覧

他ユーザーの環境変数をコマンドプロンプトで変更するには、どのようなコマンドが必要でしょうか?

TOMO6181

総合スコア40

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

環境変数

環境変数とは、WindowsやUNIXなどのOSが提供しているデータ共有機能の一つ。OSが動作するときに使用する変数を指します。異なる設定値などのデータを記録し、設定・参照することが可能です。

0グッド

1クリップ

投稿2024/08/26 10:16

他ユーザーの環境変数をコマンドプロンプトで変更するには、どのようなコマンドが必要でしょうか?

実行環境はWindows10です。
他ユーザー(ローカルユーザーとして定義済み)として、特定のプログラムを実行しようとしています。
runas /user:ユーザー名 プログラム.exe
のようにして実行しましたが、対象のプログラムでは環境変数を必要とするdllファイルを参照しており、エラーになりました。(実行させたいユーザー環境には環境変数がない)

set 環境変数名=dllファイルのパス
を実行してからrunasコマンドを使用しましたが、現環境の環境変数が設定されるだけで、実行先のユーザー環境には環境変数を作ってくれないようで、同様にエラーになりました。

対象のユーザーで実行させ、環境変数も設定できるコマンドはありませんでしょうか?
分かる人がいましたら、宜しく御願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

サインインユーザーのDLLパスの環境変数が登録されていて、RunAsコマンドで指定するユーザーには登録されていない環境の場合、RunAsコマンドのオプションである「/noprofile」オプションを付けて実行してみてはどうでしょうか?
noprofileオプションが無い場合は、Userオプションで指定されているユーザーの環境変数などを含むプロファイルが読み込まれて実行されますので、これが問題になっていると予想しました。
オプションの詳しくは「RunAs /?」で確認してみてください。

投稿2024/08/26 23:54

Takeda_Kazuhito

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TOMO6181

2024/08/28 09:52

御回答ありがとうございます。 noprofileを指定しなかった場合にuserオプションで指定したユーザーのプロファイルが影響することがあるのですね。確認してみます。
guest

0

ベストアンサー

プログラム.exeを実行するんじゃなくて、

CMD

1set 環境変数名=dllファイルのパス 2プログラム.exe

と書いたBATファイルをrunasで実行すれば良いのでは?(BAT以外の何者かでも良いですが)

あるいは、システム環境変数に追加して良いなら、環境変数名 と dllファイルのパス を追加しておけば、全ユーザーに効くと思います。

投稿2024/08/26 10:38

otn

総合スコア85785

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2024/08/26 16:58

上記の方法が良いと思いますが、 > 他ユーザーの環境変数をコマンドプロンプトで変更するには、どのようなコマンドが必要でしょうか? を、文字通りには、setx コマンドで /u で出来そうです(他ユーザーの指定は、やろうと思ったことないですが)。 詳しい説明は setx /? にあります。
otn

2024/08/27 03:26

「runasを実行したユーザーの環境変数を『全て』引き継ぐ」なら、runas /env で良いのですが、 プログラム.exeの実行ユーザこそ別ユーザーですが(whoamiの結果も別ユーザー)、 環境変数のUSER、USERPROFILE、APPDATA、LOCALAPPDATA、HOMEPATHなどその他ユーザーに関する環境変数情報が全部「runasを実行した元のユーザー」になるので、「元のユーザーでプログラム.exeを実行した」のと変わらない結果かも知れません。 まあ、"プログラム.exe"の仕様と、「何故別ユーザーで実行したいのか」の理由次第ですが。 > set 環境変数名=dllファイルのパス を実行してからrunasコマンドを使用しましたが、 をやったと言うことは、「どのユーザーでもその環境変数は同じ値を設定して良い」ということですかね? であれば、 > システム環境変数に追加 がベストでしょう。 「自分の環境変数にはその設定を入れたくないが、runas先の環境には入れたい」であれば、 回答の前半の方法です。あるいは setx /u を使うか。
TOMO6181

2024/08/28 12:16

御回答ありがとうございます。 他ユーザーで実行する理由としては、OPCサーバーと接続する場合、セキュリティのレベルによってはサーバーと同じユーザー名、パスワードでないと繋がらないためです。 しかし、OPC側の運用としてはパスワードを変えない方針であり、そこでクライアント側はパスワードを変更しない、接続用のユーザーで実行する必要があるためです。 なので、ログインした環境と同じように実行できる方が良く、/envを使った方法が目的に合っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問