- ベストアンサー
バッチファイルを常に管理者権限で起動
- Windows7,8向けインストール用batファイルを作成し、フォルダの共有の処理で詰まっています。
- ショートカットや右クリックでの管理者権限実行が難しいため、他の方法でバッチファイルを管理者権限で起動したいです。
- 特に、パソコンに詳しくない人でも簡単に実行できる方法が望ましいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
バッチファイルが2つになるのであまり良い案ではないかもしれませんが回答します。 あるバッチを管理者権限で実行するバッチを作成するという案です。 実行したいバッチが、例えば test.batであるならば、このバッチを呼び出すバッチを下記のような内容で作成します。 powershell.exe -Command Start-Process """%~dp0%test.bat""" -Verb Runas 難しい内容では無いと思いますが簡単に解説すると PowerShellを実行して、PowerShellのStart-Processコマンドで管理者権限昇格を指示してtest.batを実行します。 %~dp0%は実行したバッチのパス名を取得するおまじないです。 そのため、test.batとこれを呼び出すバッチは同じフォルダにある必要があります。 USBメモリで配布するのであればこれで問題無いはずです。 この呼び出しバッチを普通に実行するとUACのダイアログが出ます。(右クリック「管理者として実行」の時と同じものです。) このダイアログ自体はUACを有効にしている限りは省略することは出来ません。 >今、ある社内プログラムのWIndows7,8向けインストール用batファイルを作成しています。 Windows7以降はPowerShellが標準でインストールされているので削除していない限り問題無いはずです。 Windows7は問題無く動作することを確認しています。 Windows8も問題無く動作すると思いますが、検証はしていませんのでご了承下さい。
その他の回答 (3)
- ahoo_chieokure
- ベストアンサー率52% (34/65)
探せば色々出てくるけど以下をパクるとか。 https://christopherlaw.com/wp-content/uploads/2010/06/ あるいは以下をVBSにして実行する。PROG_NAMEはバッチ等に置き換える。 (サンプル:普通はWindows\Prefetchはdirできないのでこれが成功するかどうかを見る) ================ PROG_NAME="dir /w c:\Windows\Prefetch" CreateObject("Shell.Application").ShellExecute"cmd.exe", "/k " & PROG_NAME , "", "runas", 1 ================
お礼
ご回答ありがとうございます。 こちらも試してみて、うまくいきました。 ベストアンサーは先に回答して下さった方にさせて頂きます。
- chie65536(@chie65535)
- ベストアンサー率44% (8752/19860)
追記。 ちゃんとしたインストーラーを使えば「アプリケーションの追加と削除」にちゃんと表示されますし、アンインストールも簡単に出来ます。 「バッチでコピー」なんかしたら、アプリケーションの追加と削除に出ないし、アンインストールも手動でやらないといけません。 「バッチでインストール」なんて、よっぽど特殊なシステムか、20年前の思想です。
お礼
ご回答ありがとうございます。 仰る事は重々承知しているのですが、それも行いづらい状況です。 インストーラは既にあるのですが、それがなぜか複数に分かれており、さらにフォルダの作成や共有はインストーラではしてくれないのです。 インストーラにはなっているので、プログラムと機能の一覧には表示されています。ここで、それらのexeをまとめるインストーラを作成すると、さらにプログラムと機能の一覧に追加で表示されてしまい、ややこしい事になってしまいます。 じゃあ開発者にインストーラを作り直してもらえばよいとも思ったのですが、社内システムと言っても、他社で作成されたもので、その担当者は既に退職されており、サポートも受けられない状態です。 そんなシステムをなぜ使わなければならないのかと言われても困ります。 代替のシステムを作れるほどプログラムに精通しておりませんし。 なので、少しでもインストール作業を楽にしようとbatファイルを作成しているのです。 別にbatファイルでなくとも、VBS等でもよいと思っています。私の知識では、batで行うのが一番楽だったので、batを選択しただけです。
- chie65536(@chie65535)
- ベストアンサー率44% (8752/19860)
>上記以外の方法で、何かいい方法はありませんか? 「バッチでやる」ってのが、基本的に大間違いです。 こういう場合は、以下のページにある「InstallShield」などを使って「インストーラー」を作成するのが普通。 http://www.networld.co.jp/is/main.htm インストール先は「インストーラーの初期値」として設定可能ですし、インストーラーが勝手にフォルダを作りますし、フォルダの共有なども気にしなくて良いです。 インストーラーを「管理者として実行」すれば、そのパソコンの全ユーザーが使える状態にインストールされます。 インストーラーを「一般ユーザーとして実行」すれば、そのユーザーだけが使える状態にインストールされます。 インストーラーで作られるのは、アプリケーション本体、アプリケーションが使用する付属ファイル、起動に必要なレジストリ情報などで、インストーラーが終了する際に、PCを再起動したりアプリケーションを起動するように指定する事も可能です。
お礼
ご回答ありがとうございます。 試してみて、うまくいきました(#^.^#) 出来ればbatファイル一つで行えた方が分かりやすいでしょうが、そこはファイル名等で何とかしてみます。 本当にありがとうございました(*'▽')