Intel vPro® Technology Module for Windows PowerShellを使ってみる(2)
前回に引き続き Intel vPro® Technology Module for Windows PowerShell (長い!)を触っていきます。
ファームウェアのバージョンを取得する
まずはファームウェアのバージョンを取得してみます。前回インストールして追加されたコマンドレットの Get-AMTFirmwareVersion を使用します。
Get-AMTFirmwareVersion -ComputerName クライアントPCのFQDN -UserName AMTの管理アカウント -Password パスワードのように入力して実行するとファームウェアのバージョンを取得出来ます。スクリプトで使う場合は変数に結果を入れ、$result.Value のように値を取り出せます。
AMT16.1 の途中(?)のバージョンからは外部との通信に TLS が必須となっています。その際にデフォルトでは自己署名証明書が使用されます。このような場合はコマンドの後ろに -TLS -AcceptSelfSignedCert を追加します。
複数台のPCをまとめて
複数のクライアントPCの FQDN を配列に入れてまとめて取得することもできます。-ComputerName の値に配列を指定することでそれぞれのPCに対する通信を行います。結果を示す変数も配列になっていて各PCからの応答もそれぞれ取得出来ます。
電源状態を取得する
クライアントPCの電源状態を取得するには Get-AMTPowerState を使用します。先程と同じような書式で取得を試みますが、パスワード関連のエラーが出ました。どうやらこのコマンドでは平文のパスワードを直接指定出来ないようです。
そこで、PowerShell で広く使われている Credential(資格情報) オブジェクトを作成してユーザー名/パスワードの代わりに使用します。
ユーザー名とパスワード(SecureString という型に変換します)をそれぞれ変数に入れ、それらを使って Credential オブジェクトを作成します。
コマンドの引数から -UserName や -Password を外し、代わりに -Credential を追加して、先に作成した Credential オブジェクト(ここでは $amtCred)を渡します。これにより今までよりシンプルになっています。
コマンドによってパスワードが使えたり使えなかったりするのは閉口ものですが、Credential オブジェクトであればどのコマンドでも使用できるようです(もちろん先程の Get-AMTFirmwareVersion でも使えます)。スクリプトの場合、一度作成しておけば、そのオブジェクトを使って行けば良いわけです。
電源の状態(On / Off / Standby / Hibernationなど)がそれぞれ取得出来ているかと思います。下の方にある Power Saving State~ はいわゆる Modern Standby の状態をしてしていて、非対応機種は常に Description の値が Unknown です。一番下のPCは「電源が入っていますが、Modern Standby の状態に入っている」という事を示しています。
電源状態の操作
電源状態を変更するには Invoke-AMTPowerManagement を使用します。引数は概ね他と同じですが、 -Operation で変更したい電源状態を指定します。ここでは実行前と実行後で電源状態の取得も行っています。
コマンドレットのヘルプについて
とは言え、数あるコマンドレットに対してそれぞれ引数をどう与えれば良いか、そもそも何をするものなのかを知る必要があります。今回紹介したコマンドレットにも使用しなかった引数があります。ヘルプ機能として Get-Help コマンドが使用できますので、是非チェックしてください。
PowerShell でAMTを操作するスクリプトを書いてタスクスケジューラーに登録することで、例えば「毎朝8時にPCを自動起動させる」といったようないわゆる自動化を行うこともできると思います。
さて次回は
またEMAの話に戻ってしまいますが、先日最新版の1.13.0.0がリリースされました。次回はその差分について触れてみようと思います。