
表題の件で、一人で考えていて煮詰まってきたので、皆様のお知恵を貸して頂けないでしょうか?
今、ある社内プログラムのWIndows7,8向けインストール用batファイルを作成しています。
元々の手順では、手動でフォルダの作成,ファイルのコピー&実行,フォルダの共有を行っていたので、
パソコンの操作に詳しくない人達が、インストール作業を行うのに苦労していたため、
全てbatファイルで自動化しようとしています。
一通り作成したのですが、フォルダの共有の処で詰まってしまいました。
フォルダを共有する際は、管理者権限でコマンドプロンプトを立ち上げる必要があることはわかりました。
ショートカットを作成し、詳細プロパティの「管理者として実行」にチェックを入れたのですが、batファイルをUSBメモリで配布するので、ショートカットのパスが変わってしまう端末が出てきて、この方法はダメでした。
また、batファイルを右クリックして、「管理者として実行」をクリックする方法もあるのですが、パソコンに詳しくない人でもインストールしやすいように、出来ればダブルクリックで起動させたいです。
さらに、Administratorを有効にしていないパソコンが多いので、RUNASも使用できません。
上記以外の方法で、何かいい方法はありませんか?
No.3ベストアンサー
- 回答日時:
バッチファイルが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も問題無く動作すると思いますが、検証はしていませんのでご了承下さい。
ご回答ありがとうございます。
試してみて、うまくいきました(#^.^#)
出来ればbatファイル一つで行えた方が分かりやすいでしょうが、そこはファイル名等で何とかしてみます。
本当にありがとうございました(*'▽')
No.4
- 回答日時:
探せば色々出てくるけど以下をパクるとか。
https://christopherlaw.com/wp-content/uploads/20 …
あるいは以下をVBSにして実行する。PROG_NAMEはバッチ等に置き換える。
(サンプル:普通はWindows\Prefetchはdirできないのでこれが成功するかどうかを見る)
================
PROG_NAME="dir /w c:\Windows\Prefetch"
CreateObject("Shell.Application").ShellExecute"cmd.exe", "/k " & PROG_NAME , "", "runas", 1
================
No.2
- 回答日時:
追記。
ちゃんとしたインストーラーを使えば「アプリケーションの追加と削除」にちゃんと表示されますし、アンインストールも簡単に出来ます。
「バッチでコピー」なんかしたら、アプリケーションの追加と削除に出ないし、アンインストールも手動でやらないといけません。
「バッチでインストール」なんて、よっぽど特殊なシステムか、20年前の思想です。
ご回答ありがとうございます。
仰る事は重々承知しているのですが、それも行いづらい状況です。
インストーラは既にあるのですが、それがなぜか複数に分かれており、さらにフォルダの作成や共有はインストーラではしてくれないのです。
インストーラにはなっているので、プログラムと機能の一覧には表示されています。ここで、それらのexeをまとめるインストーラを作成すると、さらにプログラムと機能の一覧に追加で表示されてしまい、ややこしい事になってしまいます。
じゃあ開発者にインストーラを作り直してもらえばよいとも思ったのですが、社内システムと言っても、他社で作成されたもので、その担当者は既に退職されており、サポートも受けられない状態です。
そんなシステムをなぜ使わなければならないのかと言われても困ります。
代替のシステムを作れるほどプログラムに精通しておりませんし。
なので、少しでもインストール作業を楽にしようとbatファイルを作成しているのです。
別にbatファイルでなくとも、VBS等でもよいと思っています。私の知識では、batで行うのが一番楽だったので、batを選択しただけです。
No.1
- 回答日時:
>上記以外の方法で、何かいい方法はありませんか?
「バッチでやる」ってのが、基本的に大間違いです。
こういう場合は、以下のページにある「InstallShield」などを使って「インストーラー」を作成するのが普通。
http://www.networld.co.jp/is/main.htm
インストール先は「インストーラーの初期値」として設定可能ですし、インストーラーが勝手にフォルダを作りますし、フォルダの共有なども気にしなくて良いです。
インストーラーを「管理者として実行」すれば、そのパソコンの全ユーザーが使える状態にインストールされます。
インストーラーを「一般ユーザーとして実行」すれば、そのユーザーだけが使える状態にインストールされます。
インストーラーで作られるのは、アプリケーション本体、アプリケーションが使用する付属ファイル、起動に必要なレジストリ情報などで、インストーラーが終了する際に、PCを再起動したりアプリケーションを起動するように指定する事も可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- ネットワーク 瞬快 コンソール操作 ローカル端末のファイルをリモート端末にコピーする方法がない? 1 2023/03/17 18:56
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Google Drive GoogleWorkspaceについての質問 1 2022/12/16 17:57
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルを実行後、終了...
-
バッチファイルでPC情報を取得する
-
コマンドの結果を変数に入れたい
-
DOSコマンドのforで空白行をス...
-
WMICでリモートでバッチが実行...
-
バッチファイルを常に管理者権...
-
バッチ実行時にバッチのファイ...
-
Windows10のタスクスケジューラ...
-
FOR文ないでの判定処理
-
バッチファイルで無限ループ
-
バッチでEnterを認識させ...
-
ネットワークドライブを見るバ...
-
WindowsのRANDOM関数を用いたバ...
-
複数のバッチを同時並行で起動...
-
実行結果を戻り値で取得したい
-
コマンドプロンプトで別ユーザ...
-
リモートデスクトップの取り合...
-
バッチファイルでエクセルのマ...
-
バッチ実行を意図的に失敗させ...
-
今時、バッチファイルは古い?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
リモートデスクトップの取り合...
-
バッチファイルを実行後、終了...
-
batファイルで、call使っても戻...
-
バッチ実行を意図的に失敗させ...
-
oracleのimp-00002エラーについて
-
コマンドの結果を変数に入れたい
-
DHCP設定バッチnetshコマンドに...
-
DOSコマンドのforで空白行をス...
-
バッチファイルでPC情報を取得する
-
batファイルを実行してコマンド...
-
バッチでEnterを認識させ...
-
バッチファイルを常に管理者権...
-
WMICでリモートでバッチが実行...
-
コマンドプロンプトで最新のフ...
-
バッチ実行時にバッチのファイ...
-
バッチプログラムについて(編...
-
bat実行中に引数1の内容を変更...
-
ログオンユーザを簡単に切り替え
-
実行結果を戻り値で取得したい
おすすめ情報