アプリ版:「スタンプのみでお礼する」機能のリリースについて

表題の件で、一人で考えていて煮詰まってきたので、皆様のお知恵を貸して頂けないでしょうか?


今、ある社内プログラムのWIndows7,8向けインストール用batファイルを作成しています。
元々の手順では、手動でフォルダの作成,ファイルのコピー&実行,フォルダの共有を行っていたので、
パソコンの操作に詳しくない人達が、インストール作業を行うのに苦労していたため、
全てbatファイルで自動化しようとしています。


一通り作成したのですが、フォルダの共有の処で詰まってしまいました。
フォルダを共有する際は、管理者権限でコマンドプロンプトを立ち上げる必要があることはわかりました。

ショートカットを作成し、詳細プロパティの「管理者として実行」にチェックを入れたのですが、batファイルをUSBメモリで配布するので、ショートカットのパスが変わってしまう端末が出てきて、この方法はダメでした。

また、batファイルを右クリックして、「管理者として実行」をクリックする方法もあるのですが、パソコンに詳しくない人でもインストールしやすいように、出来ればダブルクリックで起動させたいです。

さらに、Administratorを有効にしていないパソコンが多いので、RUNASも使用できません。


上記以外の方法で、何かいい方法はありませんか?

A 回答 (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も問題無く動作すると思いますが、検証はしていませんのでご了承下さい。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

試してみて、うまくいきました(#^.^#)

出来ればbatファイル一つで行えた方が分かりやすいでしょうが、そこはファイル名等で何とかしてみます。

本当にありがとうございました(*'▽')

お礼日時:2014/06/13 09:23

探せば色々出てくるけど以下をパクるとか。


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
================
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

こちらも試してみて、うまくいきました。

ベストアンサーは先に回答して下さった方にさせて頂きます。

お礼日時:2014/06/13 09:26

追記。



ちゃんとしたインストーラーを使えば「アプリケーションの追加と削除」にちゃんと表示されますし、アンインストールも簡単に出来ます。

「バッチでコピー」なんかしたら、アプリケーションの追加と削除に出ないし、アンインストールも手動でやらないといけません。

「バッチでインストール」なんて、よっぽど特殊なシステムか、20年前の思想です。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

仰る事は重々承知しているのですが、それも行いづらい状況です。

インストーラは既にあるのですが、それがなぜか複数に分かれており、さらにフォルダの作成や共有はインストーラではしてくれないのです。
インストーラにはなっているので、プログラムと機能の一覧には表示されています。ここで、それらのexeをまとめるインストーラを作成すると、さらにプログラムと機能の一覧に追加で表示されてしまい、ややこしい事になってしまいます。

じゃあ開発者にインストーラを作り直してもらえばよいとも思ったのですが、社内システムと言っても、他社で作成されたもので、その担当者は既に退職されており、サポートも受けられない状態です。

そんなシステムをなぜ使わなければならないのかと言われても困ります。
代替のシステムを作れるほどプログラムに精通しておりませんし。

なので、少しでもインストール作業を楽にしようとbatファイルを作成しているのです。

別にbatファイルでなくとも、VBS等でもよいと思っています。私の知識では、batで行うのが一番楽だったので、batを選択しただけです。

お礼日時:2014/06/13 09:16

>上記以外の方法で、何かいい方法はありませんか?



「バッチでやる」ってのが、基本的に大間違いです。

こういう場合は、以下のページにある「InstallShield」などを使って「インストーラー」を作成するのが普通。

http://www.networld.co.jp/is/main.htm

インストール先は「インストーラーの初期値」として設定可能ですし、インストーラーが勝手にフォルダを作りますし、フォルダの共有なども気にしなくて良いです。

インストーラーを「管理者として実行」すれば、そのパソコンの全ユーザーが使える状態にインストールされます。

インストーラーを「一般ユーザーとして実行」すれば、そのユーザーだけが使える状態にインストールされます。

インストーラーで作られるのは、アプリケーション本体、アプリケーションが使用する付属ファイル、起動に必要なレジストリ情報などで、インストーラーが終了する際に、PCを再起動したりアプリケーションを起動するように指定する事も可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!