SCCMで機種名でフィルタしたデバイスコレクションを作成する

SCCMで、機種を限定してパッケージをデプロイすることになりました。

このため、機種名でフィルタしたデバイスコレクションを作成します。

下記の情報が参考になりました。

learn.microsoft.com

 

バイスコレクションを作成する際、メンバシップルールとしてクエリルールを作成し、下記のようなクエリを設定します。

OptiPlex 7000 でフィルタする例:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Model="OptiPlex 7000"

クエリルールでは、GUIを使ってクエリを作成することができますが、SQLがわかればShow Query Languageボタンを押して直接SQLを書いたほうが速いです。

キーボードで音量調整

こちらの記事を参考に、音量調整のショートカットキーが存在しないPCで音量調整できるようにしました。

qiita.com

qiita.com

ChangeKey, AutoHotKey を使用します。

ChangeKeyを使用して、CAPS LOCKをF13(0x0064)に、AutoHotKey Ver.1のスクリプトを使用して、音量調整ができるようにします。

以下引用

F13 & u::Send,{Volume_Up 2}      ;Caps Lock(F13) + uを1回押すごとに音量が2あがる
F13 & d::Send,{Volume_Down 2} ;Caps Lock(F13) + dを1回押すごとに音量が2さがる
F13 & m::Send,{Volume_Mute}    ;Caps Lock(F13) + mでミュートのON/OFF切り替え

とても助かりました。

 

Windows11のリモートデスクトップ接続で毎回パスワードを聞かれる

こちらの情報で解決したので覚え書き。

www.orangeitems.com

 

検索すると、グループポリシーで資格情報の委任を許可する方法は多数出てくるが、自分の環境では解決しなかった。

以下引用

レジストリーエディターの起動(regedit)

②以下のキーに移動

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard

③以下の値を追加

EnableVirtualizationBasedSecurity(DWORD) →値は0

RequirePlatformSecurityFeatures(DWORD) →値は0

④以下のキーに移動

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

⑤以下の値を追加

LsaCfgFlags(DWORD) →値は0

⑥再起動した後、一度パスワードを手入力でログインする

 

ICINGA2 + Check WMI Plus でWindowsホストの監視(3)

今回は、ひととおり監視の設定が出来るようになったIcingaでメール通知の設定をします。

メール送信には mailx パッケージが必要なので、あらかじめインストールしておきます。

sudo yum -y install mailx


  1. ユーザーの作成
    メールの送信先となるユーザーを作成します。

    1. ユーザーテンプレートの作成
      まず、ユーザーテンプレートを作成する必要があります。
      Icinga Directorから、Users / Contacts を選択します。

    2. User templates を選択して、下記のようにユーザーテンプレートを作成します。

    3. ユーザーの作成

      再度 Users / Contacts を選択して、ユーザーを作成します。この中で、先ほど作成したユーザーテンプレートを指定します。


  2. Notification templateの作成

    次に、Notification templateを作成します。
    Icinga Directorから、Notification - Notification templates を選択して、Host template, Service template をそれぞれ作成します。

    必要に応じ、State and transition state filterを設定することで、通知する内容をフィルタすることが出来ます。

  3. Notificationの作成

    最後に、Notificationを作成します。
    Icinga Directorから、Notification - Notification templates を選択して、下記のように作成します。
    ここで、先ほど作成したNotification Templateを指定します。


以上をDeployすることで、通知が有効になります。

デフォルトでは、サーバがMXレコードを引きメールを送信しようとします。
SMTPサーバを指定したい場合は、スクリプトを修正する必要があります。

  • /etc/icinga2/scripts/mail-service-notification.sh
  • /etc/icinga2/scripts/mail-host-notification.sh

#!/usr/bin/env bash
#
# Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/)
# Except of function urlencode which is Copyright (C) by Brian White (brian@aljex.com) used under MIT license

PROG="`basename $0`"
ICINGA2HOST="`hostname`"
MAILBIN="mail"

このMAILBINの内容に、SMTPサーバの指定を追加してしまいます。
MAILBIN="mail -S smtp=[smtpserver] "

ICINGA2 + Check WMI Plus でWindowsホストの監視(2)

(1)で、Icinga Web 2, Check WMI Plus のセットアップが完了しましたので、実際にWindowsのホストを監視する設定を行っていきます。

Icinga Directorでの設定は、DeployをすることでIcingaのコンフィグに反映します。エラーがある場合はその際に分かりますので、Deploymentsメニューから、途中途中でDeployしておくと良いと思います。


  1. Command Templateの作成

    Plugin Check Command用のCommand Templateを作成します。

    コマンドとなるスクリプトのファイルは check_wmi_plus.pl ですので、Commandタブはこちらのようになります。

    Argumentsタブで、引数を設定します。
    この中で、固定の値になる --inidir, --inifile は直接記述してしまいます。それ以外はすべて1.で作成したData Field変数です。


  2. Commandの作成

    2.で作成したテンプレートを使用して、Commandを作成します。

  3. Service Templateの作成

    3.で作成したCommandを使用して、Service Templateを作成します。

    Fieldsタブで、check_wmi_plus.pl の引数を追加していくと、上のように引数が表示されます。サービスによって引数の有無が違うので、Mandatoryかどうかは、必要に応じて設定します。

  4. Service Ruleの作成
    監視したい項目ごとに、Service Ruleを作成していきます。

    それぞれしたの画面のような設定になっています。
    このService Ruleの場合、

    host.vars.OS_Type = Windows
    host.vars.AD = True

    のときに自動的に監視項目となるようにしています。この変数は後述するHostの中で設定します。

    Custom Propertiesは、こちらの情報が参考になると思います。

    Check WMI Plus - Can you show me some example command lines?


  5. Host Templateの作成
    Host Templateを作成します。

    Fieldsタブで、こちらのように3つの変数を追加しています。
    それぞれ、下記のような目的で使用しています。

    • host_address
    • OS_Type
      • Windowsホストかどうか識別してService Ruleを適用するため。上の画面で、Windows という値を設定しています。
    • wmi_authfile_path
      • ホストの認証情報を書いたファイルを指定するため

  6. Hostの作成

    最後に、監視したいホストを作成します。
    ホストテンプレートで作成したhost_address, wmi_authfile_pathを指定しています。

    わざわざhost_addressを指定している理由は、Icingaサーバが監視したいホストのアドレスを解決できない場合、WMIクエリが失敗してしまうためです。

    wmi_authfile_pathは、ホストにより認証情報が異なることがあるため、あらかじめファイルを必要に応じ用意しておき、ホストごとに指定しています。同じ認証情報しか使用しない場合は不要です。

これでひととおりWindowsホストを監視するための設定が出来ました。

ICINGA2 + Check WMI Plus でWindowsホストの監視(1)

Check WMI Plus プラグインを使用して、Windowsホストの監視をします
参考にしたのは主に下記のサイトです。

  1. How to Install Icinga 2 and Icinga Web 2 on CentOS 7
  2. Install Icinga2, Icinga Web 2 and Icinga Director under EL7
  3. Check WMI Plus - edcint.co.nz
  4. Icinga2 and Windows monitoring (WMI)

いまのところ、情報がひとつのサイトにまとまっていないので苦労しますが、順番に見ていきます。

  1. Icinga, Icinga Web 2のセットアップ

     1.のサイトを参考に、Apatch, MariaDB, PHP, Icinga2をセットアップしていきます。

     途中、PHPのインストールで注意が必要です。
     CentOS7系の場合、デフォルトで古いPHP5.4がインストールされますが、Icingaweb2はPHP5.6を要求します。
    また、サイトの情報だと不足している、php-fpmも必要です。

    ここまで正常に進められれば、Icinga Webが利用できるようになりますので、サイトに従いWebからセットアップを行います。

    The directory /etc/icingaweb2 is not writable. というエラーが出ます。これは、SELinux status を permissive モードに変更することで回避します。


  2. Icinga Directorのセットアップ

     Icinga Directorモジュールをインストールすることで、GUIから各種設定ができるようになります。
     2.のサイトの後半 Icinga Director セクションからの手順を進めます。一通りインストールができたら、Kickstart Wizard を実行します。

  3. Check WMI Plusのセットアップ

     4.のサイトを参考に、Check WMI Plusプラグインをインストールします。Check WMI Plusはperlで書かれていますが、perlのモジュールが不足している場合があります。必要に応じ、モジュールをインストールします。

    yum install perl-Number-Format -y
    yum install perl-Config-IniFiles -y
    yum install perl-DateTime -y

     Step 4. Configuration for Icinga2 以降は、Check WMI Plusプラグインを使用するためのIcingaの設定になります。設定をIcinga Directorを使用して行う場合は、この手順はスキップして構いませんが、Icingaの設定の概念を理解しておかないとIcinga Directorの設定も難しいので、一度ここで試しておくのが良いかもしれません。

    ※ /etc/icinga2/conf.d/commands.conf の部分はソースが間違っていますので注意して下さい。

(2)で、実際にIcinga DirectorでCheck WMI Plusを使用するための設定方法を解説します。

vSphere 4.1 にWindows Server 2012 R2の仮想サーバを構築

vSphere 4.1 はWindows Server 2008までしか対応していないため、そのままではWindows Server 2012 R2の仮想サーバは構築できません。インストールの途中で、ブルースクリーンになってしまいます。
仮想サーバのBIOSEFIでないことと、CPUIDのマスクが必要だそうです。

こちらのページを参考に設定したところ、無事起動できるようになりました。

[参考] ソフトウェア開発者の日常 - Windows Server 2012 R2をvSphere ESXi環境にインストールする場合の注意点

【追記】

情報が不足していましたので、追記します。

  1. BIOSEFIに変更

このスレッドを参考に、BIOS ROMをアップロードし、これを使用するようにコンフィグに追記します。
[参考] How to install windows 8 on esxi 4.1 ?

bios440.filename = ""

  1. CPUIDマスクを変更

このページを参考に、CPU IDを修正します。

  1. Power off the virtual machine.
  2. Right-click the virtual machine and click Edit Settings.
  3. Click the Options tab.
  4. Select CPUID Mask under Advanced.
  5. Click Advanced.

For Intel:

Under the Register column, locate the edx register under Level 80000001.
Paste this into the value field:

        • :0---:----:----:----:----:----:----

For example:

cpuid.80000001.edx = ----:0---:----:----:----:----:----:----

For AMD:

Select the AMD Override tab.
Change cpuid.80000001.edx.amd = -----------H-------------------- to
cpuid.80000001.edx.amd = ----0---------------------------