Windows

Bginfoを全ユーザログオン時に実行する方法【実装方法】

Windows

Windowsを利用している皆さん「Bginfo」というツールはご存知でしょうか。

Windowsデスクトップの壁紙にシステム情報(ホスト名やCPU、メモリなどなど)を表示することができるツールです。古くからあるツールではありますが、今はMicrosoft Azureでも採用されていツールです。

Bginfoを使うと一度に複数台サーバへRemoteDesktop接続しているときに、どのサーバで作業をしているかがに分かりやすいため作業効率アップとミス軽減を図ることができます。また、システムのリソースやディスクの空き容量などの確認もすることができます。

Bginfo自体のインストールや使い方は非常に簡単なのですが、壁紙を更新するには、毎回ユーザログオン後にユーザ自身でBginfoを実行しないと最新の情報が取得できません。

そこで、今回は全てのユーザがログオンしたタイミングで自動的にBginfoを実行する方法について紹介します。

意外と大変だったので自分へのメモの意味も含めてます。

Bginfoを全ユーザのログオン時に実行する方法3つ

ざっくりBginfoを自動実行する方法は以下の3パターンあります。※細かく言えばローカルグループポリシーなど他にもあります。

今回、2と3のやり方を具体的に説明いたします。基本的には同じ動作となりますのでどちらを選択してもいいかと思います。

  1. グループポリシーからログオンスクリプトで実行
  2. タスクスケジューラから実行
  3. スタートアップ(StartUp)で実行

1. グループポリシーからログオンスクリプトで実行

公式ではグループポリシーを使う方法が紹介されていますが、規模が大きい会社によってはグループポリシーの設定が権限上できなかったり他システムへの影響も考慮する必要があるためあまり使いたくない場合もあるかと思います。グループポリシーを使う方法については公式でも紹介しているサイトがありますので参考にしてください。

Group Policy: Apply BgInfo using a Logon Script

2. タスクスケジューラから実行

次にタスクスケジューラで実行する方法です。全ユーザに対してログオン時にBginfoを実行するようにします。詳細は後述いたします。

3. スタートアップ(Startup)で実行

クライアントOSでもおなじみのスタートアップでの方法になります。全ユーザに対してログオン時にBginfoを実行するようにします。詳細は後述いたします。

Bginfoのダウンロード、インストール

Microsoft公式サイトからBginfoをダウンロードします。

BgInfo - Sysinternals
This fully-configurable program automatically generates desktop backgrounds that include important information about the system.

ダウンロードしたファイルを解凍します。解凍すると以下の3つのファイルがあります。

その中でBginfo.exeが実行ファイル本体です。

適当な場所にBGInfoの解凍したフォルダを移動します。

例としてCドライブ直下へBGInfoフォルダへ配置してます。

次にBginfo.exeをダブルクリックで実行します。

初回は使用許諾EULAなどの画面が出ますが承認して下さい。

そうするとBginfoの設定ダイヤログが表示されます。OKもしくは10秒経過するとデスクトップの壁紙にシステム情報が表示されます。

表示項目やフォントなども細かく調整できますので公式の解説などを確認してみてください。

Bginfoの設定ファイル(.bgi)の準備

Bginfoでは自分で表示などをカスタマイズしたファイルを外部ファイルとして書き出すことができます。

Bginfoの設定ダイヤログが表示されている間に[File]->[Save as]を開いてファイルとして保存します。ファイル名は任意でOKです。

例としてこんな感じで設定してます。

Host Name:	<Host Name>
-------------------------------------------------------------
User Name:	<User Name>
OS Version:	<OS Version>
CPU:	<CPU>
Memory:	<Memory>
Volumes:	<Volumes>
Free Space:	<Free Space>
Boot Time:	<Boot Time>
------------------------------------------------------------
IP Address:	<IP Address>
Subnet Mask:	<Subnet Mask>
Default Gateway:	<Default Gateway>
MAC Address:	<MAC Address>
DNS Server:	<DNS Server>
-------------------------------------------------------------
Snapshot Time:	<Snapshot Time>
-------------------------------------------------------------

こんな感じで表示されます。好きなように修正してください。

Bginfoが実行された時間を表示したい場合はSnapshot Time: <Snapshot Time>の項目で表示できます。

Bginfo自動実行Batファイルの準備

Bginfoを自動実行するためのバッチファイルを準備します。

引数には、先ほど準備した.bgiファイルを指定し、オプションとして「/TIMER’00 /nolicprompt /silent」をしてすることでbgiの設定画面やEULAのダイヤログなどが表示されることなく実行されます。

@echo off
"C:\BGInfo\Bginfo.exe" "C:\BGInfo\Template.bgi" /TIMER'00 /nolicprompt /silent

タスクスケジューラーへの登録方法

まず、タスクスケジューラに登録する方法について説明します。タスクスケジューラからタスクを作成します。

[全般]から「タスクの実行時に使用するユーザーアカウント」を変更します。[ユーザーまたはグループの変更]から[Domain Users]グループを指定するようにします。※Bginoを実行させたいユーザが含まれるグループであれば何でもOKです。

最上位の特権で実行するへのチェックも忘れないようにしてください。

実行するユーザアカウントを特定ユーザとして指定するとうまく動きません。

別ユーザの権限でタスクが実行された場合はそのユーザとしてBginfoが実行されてしまうため、ログオンしたユーザでBginfoが実行されないためです。

実行ユーザをグループを指定してログオンユーザの権限で実行するのがコツです。結構ハマったポイントです。

[トリガー]はログオン時に任意のユーザーで実行するように設定します。

操作としては先程のBginfo自動実行バッチを指定します。

それ以外はデフォルト設定でOKです。タスクが作成されていることを確認します。(私はBginfoフォルダを作成してその下にタスクを登録しています。)

設定が完了したら、再度ログオンしてください。

ログオン後、少しするとコマンドプロントが一瞬だけ表示されてBginfoが実行されるはずです。Snapshot Timeで実行時間を確認してみてください。

スタートアップ(StartUp)への登録方法

次にスタートアップに登録する方法について説明します。

全ユーザー用のスタートアップフォルダにバッチファイル登録します。Windows Server 2016の場合には以下のパスに先ほどのバッチをコピーします。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

スタートアップを使っても同様のことが行なえますが、1点だけ注意点があります。

それはスタートアップの場合には特権での実行ができないということです。今回のBginfoの場合には問題は発生しないと思いますが、他のアプリなどをスタートアップで自動実行しようとする場合は注意が必要です。

ログオン後、少しするとタスクスケジューラーと同様にコマンドプロントが一瞬だけ表示されてBginfoが実行されるはずです。Snapshot Timeで実行時間を確認してみてください。

共有フォルダにバッチを配置すれば共有可能

これでBginfoを全ユーザがログオン時に実行できるようになりました。

ただし、管理サーバが複数台あった場合には、これらの設定を個々のサーバにBginfo.exeを配置したりそれぞれ設定するのは面倒ですよね。

そのような場合には、共有フォルダ上にBginfoや設定、バッチファイルを配置しておくことで共有の設定を使うことが可能です。

今回は以上となります。

コメント