• 締切済み

windows7での管理者権限について

お世話になります。 Windows7の管理者権限についてご教示頂けないでしょうか? windows7のA・B2台のパソコンがあるのですが、 Aではバッチファイルが何事もなく (ファイルのダブルクリックで起動しダイアログの表示等なしで) 正常に動作するのですが Bでは「管理者として…」で実行し、 かつ「プログラムがコンピューターに変更を…」 というダイアログが表示されます。 最終的には当方の開発したexeからバッチを起動したいので、 Aの動作にしたいのですが、、、 ABどちらも他者(AB別々の人)がインストールされていて、 こちらでわかる情報は以下の通りです。 BをどうしたらAと同じにできるのか、 また、どうしてAはバッチ処理できるのかご教示頂けないでしょうか? ■取得情報 (Aの以下のレジストリはどれも  設定されてませんでした。) (1)HKEY_CLASSES_ROOT\batfile\shell (2)HKEY_CLASSES_ROOT\cmdfile\shell  の(既定)値はrunasではない。  HKEY_LOCAL_MACHINE\SOFTWARE\  Microsoft\Windows\CurrentVersion\Policies\System (3)ConsentPromptBehaviorAdmin元のまま5 (4)PromptOnSecureDesktop元のまま1  (5)EnableLUA元のまま1) (6)OSはAはwindows7 Professional     Bはwindows7 Ultmateです。 (7)バッチを起動しているユーザは     AもBも「Administrator」です。   制御設定もどちらも   「ユーザーがWindows設定を変更する場合は通知しない」です。

みんなの回答

  • dpl146tt
  • ベストアンサー率0% (0/0)
回答No.3

 私もvistaで普通に動作していたバッチが、Windows7に持っていくと動かなくなる現象が発生して困っていました。  それもあるWin7 PCでは動くが、別のWin7 PCでは動かないという不可解な現象でした。  UACを一番低くしても動作は変わらなかったのですが、動かそうとしていたバッチをNotepadで開いて 上書きしたら、どういうわけか動くようになりました。  逆に何故動くようになったのかの理屈が明確でないのが気に食わないのですが、とりあえずそんな事例も あったとのことで UPしときます。

  • 8ive22ty
  • ベストアンサー率52% (770/1479)
回答No.2

No.1 の補足です。 「Aだけアップグレード環境、などということはないのでしょうか。」 と書いたのは 「AはVista環境->アップグレードインストールしたWin7環境」などということはありませんかね、という単なる質問です。 普通にWin7を新規インストールしていて、特別にカスタマイズなどをしていないのであれば、デフォルトのUAC機能が働くはずです。 > 実はAのほうが製品となりますので通常に戻さないといけないのですが、、、 なんのことか意味が解りません。 > (Aをインストールした人間は別会社の方です。) そこまで解っているのなら、その人に聞いたほうがいいと思います。 例えば、「ポリシー設定でUAC機能を無効にしている」などという回答が、すぐに得られるかもしれません。

alp_tomy
質問者

補足

8ive22ty様ご回答ありがとうございます。 あの後、以下の言葉をヒントに自分なりに いろいろ調査してみました。 >ポリシー設定 下記の考えに至りました。(長文ですので先に質問を記させて頂きます。) そこで再度ご質問なのですが、バッチファイルをダブルクリックした時 の挙動としてUAC機能はどのように判断しているのでしょうか? 単純にバッチファイルというだけでなく、バッチファイルの中のコマンド (例えばsystem32へのファイルのコピーなど)によってダイアログを 出したり出さなかったりするのでしょうか? (1)ユーザの制御設定もポリシー設定もABどちらも同じ   (もしポリシー設定されていれば上述のレジストリの値にも    反映されるはず。。。?) (2)バッチファイルの中で管理者権限でないといけない処理を   Aで実行すると通らないがBで実行すると通るため質問のような   UACの違いが出た??   (これはあくまでも上記の質問がYESの場合です。)   (また、その場合、シェルの中身を見て環境の差異を    再度調査する必要が出てきます。) 追伸: >そこまで解っているのなら、その人に聞いたほうがいいと思います。 Aをインストールされた方は当方と同程度の方で(windows7については) 特殊な設定は何もされていないとのことでした。 (ポリシー設定といっても理解されていないようでした。。。)

  • 8ive22ty
  • ベストアンサー率52% (770/1479)
回答No.1

同一条件下で、AのPCだけがUACダイアログ無しで表示される理由は解りません。 AのPCが普通ではない、と思います。 インストール環境の違いも無いのでしょうか。 Aだけアップグレード環境、などということはないのでしょうか。 --- なお、UACを無理に操作しようとせずに、下記のように対応するのが普通(ノーマル)ではないでしょうか。 任意のアプリケーションついて、任意の「特権タスク」を作成して、 schtasks.exeコマンドを実行するか、 バッチファイルにして実行すればいいです。 特権タスク(特権ユーザーとして実行する)ですので、 UACを「無効」にも「自動昇格」にもせずに、任意のアプリでのみ起動時のUACダイアログを出さないで実行できます。 例えば、 アプリ myapli.exeを実行するタスク mytask01を「最上位の特権で実行する」として作成し、 schtasks.exe /run /tn mytask01 を実行すれば、UACのダイアログ表示を回避できます。 上記をバッチファイルにして実行してもいいです。 タスクを利用する理由は「最上位の特権で実行する」設定ができるからです。 ※添付画像参照。 --- schtasks.exeはヘルプを参照 または マイクロソフトサイト参照。 ---SchTasks.exe を使用してタスクを作成して管理する http://technet.microsoft.com/ja-jp/windows/ff467963 ---Schtasksコマンド http://technet.microsoft.com/en-us/library/cc725744(WS.10).aspx

alp_tomy
質問者

補足

早速のご回答ありがとうございます。 大変勉強になりました。 (UACの変更は通常ではないのですね。。。) ところで以下の言葉気になりましたので、もう少し質問させて 頂いて宜しいでしょうか? >Aだけアップグレード環境 実はAのほうが製品となりますので通常に戻さないといけないのですが、、、 (Aをインストールした人間は別会社の方です。) アップグレードするとUACの機能も変更になるのでしょうか? 素人の質問で申し訳ないのですが、宜しくお願い申し上げます。

関連するQ&A