2016年8月18日木曜日

Windows起動時にbatファイルを管理者権限で実行する方法

僕のPC、どうもおかしい。


DellのLatitude E6220というPCを使っているのですが、このPCにはSDカードスロットが装備されています。

ところが、Windows10の環境下において起動時に何故か毎回SDカードスロットが無効化されてしまいます。正確に言えば、SDカードスロットがぶら下がっているPCI Express Root Portが無効化されてしまいます。

有効化してみると普通に使えるのでデバイスに致命的な問題があるとは思えないのですが、未だに原因は分からずじまい。

さあ、どうするか。それなら、起動時に毎回SDカードスロット(Root Port)を有効化するバッチファイルを実行すればいいじゃない!





というわけで、実際にやってみましょう。

1. バッチファイルの作成

デバイスの有効化を行うプログラムはdevcon.exeというもので、バッチファイルはこれに引数を渡して特定のデバイス(ここではRoot Port)を有効化するために用います。devcon.exeは予めダウンロードしておき、Windowsフォルダとかに入れましょう。バッチファイルは以下のように作成します。

----sd_on.bat----

devcon enable "PCI\VEN_8086"

たったこれだけです。簡単でしょう?第二引数はハードウェアIDで、デバイスマネージャーから参照することが可能です。作成したバッチファイルはCドライブ直下に置いておきましょう。

2. タスクスケジューラにタスクを登録

コンピュータの管理からタスクスケジューラ→タスクスケジューラライブラリを開きましょう。
画面右のメニューの基本タスクの作成をクリックします。



全般タブで、一番下の「最上位の特権で実行する」にチェックを入れてください。devcon.exeは管理者権限でなければ実行できません。



トリガータブに移り、新規よりトリガーを作成します。この時、ログオン時に設定し、任意のユーザーのラジオボタンにチェックを入れてください。





操作タブに移り、新規より操作を作成します。操作はプログラムの開始、プログラムのパスは先程のバッチファイルを指定してください。


これで完了です。次回ログオン時にバッチファイルが実行されることを確認してください。

0 件のコメント:

コメントを投稿