none
runasコマンドでuser:Administratorとしても管理者権限で動かせない RRS feed

  • 質問

  • 発生している現象としては下記のようになります。
    1)動作に管理者権限が必要なアプリケーション(IPアドレスの変更操作ができるフリーソフト)を一般権限のユーザーで動かしたい。
    2)下記のコマンドを使い、バッチファイル経由で上記アプリケーションを起動する
     runas /savecred /user:administrator <アプリケーションの実行ファイル>
    3)アプリケーションが起動してきてから操作をしても正常に動作しない
     →ログを見ると、管理者特権がないので動作できない旨の内容が記載されている
    このようにrunasでAdministratorとして動かしても、ユーザー:Administratorとして動いていないように見られる状態です。
    発生する状況もまちまちで、同イメージからクローニング展開した端末同士でも現象が発生する端末としない端末があり、ある時突然現象が発生する端末があるなど、現象が発生する端末の共通点が全くないような状況です。
    またこの現象が発生するとアプリケーションインストール時など管理者特権が必要な場合に、明示的に「右クリック→管理者として実行」を選択しない限りUACのウインドウも表示されなくなってしまいます。

    現象が発生する端末に対してsfcやdismでの修復、ユーザー:Administratorを改めて有効化するなど試してみましたが全く治らない状態です。

    修復方法について何か情報をお持ちの方がいましたら、是非ともご協力いただきたく思います。

    2019年11月13日 1:17

回答

  • チャブーンさまに教えてもらった構文をベースに動作させることができました。
    他の方の参考になればと思うので最終形を記載しておきます。

    Runas /savecred /user:Administrator "powershell start-process <プログラム> -verb runas"

    「Start-Processを-verb Ruasで実行する」だけだと標準ユーザー環境ではUAC昇格のダイアログで管理者ユーザー名とパスワードの入力を求められたので、先に「Runas /user:Administrator」でAdministratorのユーザー名パスワードを渡しておいたら入力なしでそのままプログラムを実行できました。
    今までと同じように初回はパスワードの入力が必要でしたが、とりあえず目的の動作は達成できました。

    • 回答としてマーク tawara-hiro 2020年1月17日 8:06
    2020年1月17日 7:50
  • チャブーンです。

    この件ですが、端的にいうと「runas」コマンドで「昇格済み管理者権限」で起動させることはできません。runasはWindows Server 2003レベルの「UACを含まない管理者スイッチ」を想定しているため、UAC昇格とは連携していません。わからなければ、実行した状態で「whoami /priv」を実行すると、特権名が少ないのでわかります。

    結論としてコマンドで実行するには、以下のように「コマンドプロンプトでStart-Processを-verb Ruasで実行する」必要があります。この場合、UAC昇格のダイアログは必ず表示されます。

    powershell -command start-process cmd -verb runas


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2019年11月18日 6:50

すべての返信

  • Built-in の Administrator ではなく他の管理者権限のある(Administrators グループの)ユーザーで runas するとどのような動作になりますか?

    Hebikuzure aka Murachi Akira

    2019年11月13日 9:35
  • Administratorsグループ属するユーザーを新たに作成してrunasしても同じ挙動でした。
    社内ドメインネットワークに参加しているパソコンなので、ドメインの管理者ユーザー(Built-in含む)も複数試してみましたがいずれも同じです・・・

    使っているアプリの問題かもと思ったのですが、単純にnetshコマンドを記載したバッチファイルを対象にしてrunasで動かしてもIPアドレスを変えられないので、やはり管理者ユーザーアカウントに対する管理者特権の昇格が機能していない?ように思える感じです。

    2019年11月18日 4:18
  • チャブーンです。

    この件ですが、端的にいうと「runas」コマンドで「昇格済み管理者権限」で起動させることはできません。runasはWindows Server 2003レベルの「UACを含まない管理者スイッチ」を想定しているため、UAC昇格とは連携していません。わからなければ、実行した状態で「whoami /priv」を実行すると、特権名が少ないのでわかります。

    結論としてコマンドで実行するには、以下のように「コマンドプロンプトでStart-Processを-verb Ruasで実行する」必要があります。この場合、UAC昇格のダイアログは必ず表示されます。

    powershell -command start-process cmd -verb runas


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2019年11月18日 6:50
  • チャブーンさま、ありがとうございます。
    そもそもrunasの仕様にそういった性質があることを初めて知りました。
    単にAdministratorで動けばいいだけならよいけれど、管理者特権も必要という場合に動作しない理由に納得いきました。

    教えていただいたコマンドを基に目的の動作が達成できるか試してみます。
    うまくいかなければIPアドレスの変更は別の方法を探してみることにします・・・

    ありがとうございました。

    2019年12月5日 7:32
  • チャブーンさまに教えてもらった構文をベースに動作させることができました。
    他の方の参考になればと思うので最終形を記載しておきます。

    Runas /savecred /user:Administrator "powershell start-process <プログラム> -verb runas"

    「Start-Processを-verb Ruasで実行する」だけだと標準ユーザー環境ではUAC昇格のダイアログで管理者ユーザー名とパスワードの入力を求められたので、先に「Runas /user:Administrator」でAdministratorのユーザー名パスワードを渡しておいたら入力なしでそのままプログラムを実行できました。
    今までと同じように初回はパスワードの入力が必要でしたが、とりあえず目的の動作は達成できました。

    • 回答としてマーク tawara-hiro 2020年1月17日 8:06
    2020年1月17日 7:50