放浪猫

主に技術ネタとか同人とかの雑記

ユーザ環境変数でハマった話(通常ユーザを管理者権限に昇格してプロンプトを起動する)

WindoesPCにはシステム環境変数とユーザ環境変数があり、
PCの変数読み込みの優先順位は ユーザ環境変数>システム環境変数である。

ユーザ環境変数を変更には管理者権限が必要なので、一旦通常ユーザに管理者権限を付与する必要がある。
あるPCの通常ユーザのユーザ環境変数を変更しようとしたら、
UAC(ユーザアクセスコントロール)が働いて、管理者ユーザとしてのログインが求められた。これはいけない。


通常のコマンドプロンプトを管理者として起動すると、管理者ユーザとしてプロンプトが立ち上がる。
そうではなく、現在ログインしているユーザを管理者権限に昇格してプロンプトを立ち上げたい時は以下のようにする。

 

①まず普通にコマンドプロンプトを起動。以下のコマンドで現在ログインしているユーザの正式な名称を確認する。
----------------
whoami
----------------
ドメイン名\ユーザ名 が表示される。

 

②次にrunasコマンドで
>runas /user:ドメイン\ユーザ名 "cmd.exe"
自分のユーザが管理者権限に昇格した状態でプロンプトが立ち上がる。

あとは必要なコマンドを打つ。

 

今回はNO_PROXYを更新したかったので更新する。

----------------

>echo %NO_PROXY%

setx NO_PROXY "localhost,127.0.0.1,foo.local" /m

[Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1,foo.bar", "User")

-----------------------------------------------------
コマンドプロンプトを一時的に管理者ユーザで起動して
net localgroup administrators ユーザ名 /add
して、ログオフ&ログインすれば通常ユーザとして管理者権限が得られる。