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

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

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

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

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

1回答

1752閲覧

管理者権限ユーザに変更する前のユーザ名を取得したい

DreamTheater

総合スコア1095

Windows 10

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

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2020/06/18 00:36

経緯

あるプログラムのインストーラーをVBScriptで作成しております。
インストールの流れは
0. 一般ユーザ(管理者権限なし)でログインした状態
0. コマンドプロンプトを管理者権限ユーザーで起動する(UACで管理者権限ユーザーに変更)
0. インストーラー(VBScript)を起動する

という流れなのですが、インストーラー内の処理で、1のユーザ名(管理者権限なし)が必要となります。

問題点

インストーラ内で関連しそうな以下の環境変数を確認したところ、値が管理者権限ユーザに切り替わって
しまっていて、当初のユーザ名(管理者権限なし)が取得できません。
USERNAME
USERPROFILE
HOMEPATH

質問事項

管理者権限ユーザで実行中のVBScriptから、元のユーザ名(管理者権限なし)を取得する方法は
ないでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

管理者権限でCMDを実行することは、管理者ユーザーでログインしてCMDを起動すると同義です。
ですので、起動後のCMDから環境変数等を見たときには管理者ユーザーのものになります。
そのため、手動でCMDを管理者権限で起動してからVBScriptを実行して前のユーザーを実行するのは不可能かと思います。

管理者権限でCMDを起動するのではなくて、VBScriptで一旦現在のユーザー名を変数として保存してから、VBScript内でrunasを使って実行したい処理を管理者権限で実行させるのはどうでしょうか、

投稿2020/06/18 01:29

編集2020/06/18 01:30
Mashiro

総合スコア654

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

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

DreamTheater

2020/06/18 01:36

やはり無理でしたか。 runasを使用する方向でスクリプトを修正しようと思います。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問