none
Windows10でPSExecを使用すると指定ユーザーでバッチを実行できない RRS feed

  • 質問

  • Windowsドメイン環境下にWindows7、8、10が混在している環境を構築しています。
    管理者権限を持っていない一般ユーザーにソフトのアンインストールをさせたいと思い、ユーザーが実行するアンインストール用のスクリプトを作成しました。
    Windows10環境で実行すると、バッチが実行できないような挙動をしており、困っています。


    スクリプトの内容は、PSExec経由でアンインストーラーを実行するWSHです。

    Windows7でスクリプトを実行すると、想定どおりアンインストールが実行されます。
    Windows10ではアンインストールのバッチが動作せず、ウィンドウが一瞬開いて閉じてしまいます。
    対象のバッチを直接実行した場合、エラーを出力して終了してしまいます。

    ●入力
    <path_to_psexec>\PsExec.exe /accepteula -u <ローカル管理者> -p <ローカル管理者のパスワード> <path_to_batch_file>\uninstall.bat

    ●実行結果
    <path_to_batch_file>\uninstall.bat exited widh error code 1.


    ・直接このバッチをコマンドプロンプトから実行した場合、アクセスが拒否されます
     →バッチ記載のアンインストーラーへのパスを開くことができないのが理由だと思われます。
    ・コマンドプロンプトを管理者で開いて実行すると、正しくアンインストールは実行されます
    ・スクリプトから呼んでいるバッチは複数ありますが、一部のバッチはエラーを出力するのではなく管理者権限を要求されます


    以上の理由から、指定した管理者ユーザーの権限で実行できていないのではないかと考えています。


    また、検索をしてみたところ、以下のレジストリを登録する方法が記載されていました。
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy 値:1

    レジストリを登録後、PCを再起動して試してみましたが、状況は変わりませんでした。


    何か対応方法をご存知の方はいらっしゃいますでしょうか。
    2017年6月20日 6:35