2023年1月14日土曜日

[ 2023年版 ] 某外資系IT企業サラリーマンがお薦めするキーボードの選び方

みなさま、こんにちは。

高級キーボードについては、色々なところで打鍵感の話とか手首の疲れ方とかが批評されていると思いますが、私が考えるキーボードの選び方、というものを書いていきたいと思います。


まず、私自身、タイピングするときに矢印キーを多様することが多いため、新卒時代から東プレのテンキーレスタイプのキーボードを使っています。


矢印キー多様するのは、Ctrl キーと一緒に利用することが多いです。

コード書くときは emacs ですが、書かないときでコードリーディングするときや、Excel で行列を一気に移動するときによく使います。

また、メール書くときも同じように利用するので、矢印キーは欲しいですね。


ちなみに、私が所属しているチーム(10数名)のキーボード事情ですが東プレ2名、HHKB 1名、FILCO1名、他といった感じです。

他のチームを見ると、これらの他にエルゴノミクスデザインを利用している人も多かったです。


私が利用しているのは少し古いモデルの以下ですが、一番リーズナブルで初めて高級キーボードを利用する人にもお薦めです。(失敗してもHHKB ほどダメージは無いですねw)

東プレ REALFORCE R2 テンキーレス 日本語配列 静電容量無接点方式 USB 変荷重 昇華印刷 かな表記あり アイボリー R2TL-JPV-IV


現時点での最新モデルはこちらになりますかね。

ちなみに、私の高級キーボードデビューは以下です。

ただ、いつも気になるHHKB ですが、以下の日本語配列のものは矢印キーがあるので、次はこれを買おうかなと考えています。
ただ、価格帯だけ見ると、やはり東プレの方がリーズナブル。
HHKB の利点はコンパクトであることだと考えています。
どちらも静電容量無接点方式です。簡単に言うと、特定の箇所までキーが押し込まれると電極軸が近づいて入力を認識する方式になります。

フルリモートでの仕事なのですが、ノートPC と共に持ち運びたい人はHHKB 一択でよいと思います。

余裕があれば2台持ちがよいですね。

2023年1月12日木曜日

KB5015684 について

有効化パッケージ、もしくはイネーブルメントパッケージと呼ばれるWindowsOS のバージョンをアップグレードさせる更新プログラムがあります。


今回は、22H2 にアップグレードさせるための更新プログラムでKB5015684 についての記事になります。


公開情報はこちら。

KB5015684: 有効化パッケージを使用したWindows 10バージョン 22H2 の注目の更新プログラム


こちらですが、動的更新(Dynamic Update)という機能(アップグレード後、自動で必要な更新プログラムを適用してインストールする機能)が動作するのか調べたところ、動的更新はFU(機能更新プログラム)に適用されるものであるため、イネーブルメントパッケージは関係がないようでした。


KB5015684 のイネーブルメントパッケージを適用した場合のOS Version について、公開情報に記載がありませんでしたので、検証してみました。

結果は「19044.2130」から「19045.2130」となります。

つまり、メジャーバージョンが1あがったことになります。

適用前


適用後



また、この有効化パッケージについては、Microsoft カタログには公開がされていないため、このカタログサイトからはダウンロードできず、単体でインストールすることもできませんので、ご注意ください。


有効化パッケージを利用する場合は、WindowUpdate/MicrosoftUpdate やWSUS、ConfigMgr といった製品を利用しての配信が必要になります。

2022年11月23日水曜日

差分ダウンロードのログ解析調査

下記の公開情報にある通り、ダウンロード時にはWindowsUpdateAgent を利用してダウンロードを行う。
また、配信の最適化も有効にしておく必要がある。今回はダウンロードモードを「LAN」で検証している。


**************************
以下、検証環境の設定一覧
**************************
・利用バージョン
CB 2207

・クライアント設定

・WSUS の設定(代替ダウンロードサーバー)

・配信の最適化

**************************
以下はインストール開始時のログ(DeltaDownload.log は流れて採取できなかった)
**************************
ContentTransferManager.log
---------------------------------------------
11-22-2022 20:58:25.281    ContentTransferManager    5672 (0x1628)    CTMJob({0CFC7586-6924-4427-A61F-D80B65F7AE68}): CCTMJob::ProcessDownloadSuccess - successfully processed download completion.
11-22-2022 21:04:50.162    ContentTransferManager    4852 (0x12f4)    This client will report download history every 1440 min.
11-22-2022 21:05:06.115    ContentTransferManager    4320 (0x10e0)    CTM_StartJob - Starting CTM job {139F183F-7F56-4F21-ACD3-184A1C486746}
11-22-2022 21:05:06.147    ContentTransferManager    4320 (0x10e0)    Created CTM job {139F183F-7F56-4F21-ACD3-184A1C486746} for user S-1-5-18
CMBITSManager.log
---------------------------------------------
11-22-2022 20:58:25.289    CMBITSManager    5808 (0x16b0)    For CMBITS job {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, CTM job {0CFC7586-6924-4427-A61F-D80B65F7AE68} entered phase CCM_DOWNLOADSTATUS_DOWNLOAD_SUCCESSFUL
11-22-2022 21:04:50.162    CMBITSManager    3452 (0xd7c)    Loaded persisted job with ID {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, DisplayName Express Job  for content 7ca4f9b0-d72c-4974-9f24-183150df320f.1, on startup
11-22-2022 21:04:50.162    CMBITSManager    3452 (0xd7c)    CCMBITSManagerStartup::FinalRelease()
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Added CMBITS job with ID:{4485462C-66C3-429B-A5C1-5BB976DAC373}, DisplayName:Express Job
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Download manifest for the job 


**************************
ダウンロード中のログ
**************************
ContentTransferManager.log(配信の最適化(DO)を利用して、配布ポイントからコンテンツをダウンロードしている)
---------------------------------------------
11-22-2022 21:17:28.741    ContentTransferManager    4320 (0x10e0)    Created CTM job {792F9C7D-BDF4-4780-86FE-A052CD3AA690} for user S-1-5-18
11-22-2022 21:17:28.944    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_PersistLocations - Persisted locations 
	(SUBNET) http://mpdp.gibson.com/SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f
	(SUBNET) https://mpdp.gibson.com/CCMTOKENAUTH_SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f
11-22-2022 21:17:28.959    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_DownloadContent - Created corresponding DTSJob({624860B5-17D8-45D3-A644-EDC5B6718521})
11-22-2022 21:17:28.959    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_DownloadContent - DTSJob({624860B5-17D8-45D3-A644-EDC5B6718521}) started to download from 'http://mpdp.gibson.com/SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f' for full content download.
11-22-2022 21:17:28.959    ContentTransferManager    4788 (0x12b4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessProgress - entered phase CCM_DOWNLOADSTATUS_PREPARING_DOWNLOAD
11-22-2022 21:17:28.991    ContentTransferManager    3540 (0xdd4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessProgress - entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA
11-22-2022 21:17:29.413    ContentTransferManager    3540 (0xdd4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessDownloadSuccess - successfully processed download completion.
11-22-2022 21:24:50.231    ContentTransferManager    3540 (0xdd4)    CTMAggregateDownloadHistoryTask::HandleDownloadHistory: preparing to aggregate and send download history to server.
CMBITSManager.log
---------------------------------------------
11-22-2022 21:17:29.475    CMBITSManager    3540 (0xdd4)    CCMBITSManager::NotifyDownloadComplete
11-22-2022 21:17:29.475    CMBITSManager    3540 (0xdd4)    For CMBITS job {C7CE0550-B5BE-4EA6-8F25-48E9F1413632}, CTM job {792F9C7D-BDF4-4780-86FE-A052CD3AA690} entered phase CCM_DOWNLOADSTATUS_DOWNLOAD_SUCCESSFUL
11-22-2022 21:46:45.760    CMBITSManager    2756 (0xac4)    Loaded persisted job with ID {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, DisplayName Express Job  for content 7ca4f9b0-d72c-4974-9f24-183150df320f.1, on startup

差分コンテンツダウンロードは BITS ではなく、DO で実現しているので、BITS Explorer に表示されない。
ただし、CMBITS job は、BITS Explorer に表示される前の CM 内で生成される Job のようなので、ログには「Express Job」記録される。
CMBITSManager.log
---------------------------------------------
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Added CMBITS job with ID:{4485462C-66C3-429B-A5C1-5BB976DAC373}, DisplayName:Express Job
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Download manifest for the job 


**************************
ダウンロード完了のログ
**************************
DeltaDownload.log
---------------------------------------------
11-22-2022 21:17:28.694    DeltaDownload    4320 (0x10e0)    CDeltaBitsManager::ProcessRanges - batched 1048576 bytes
11-22-2022 21:17:33.756    DeltaDownload    4320 (0x10e0)    Bytes Transferred: 1048576
11-22-2022 21:17:33.756    DeltaDownload    4320 (0x10e0)    CDeltaBitsManager::DownloadRanges - updated m_workingJobMap for request -720575938231795590, BGJobState = 6
11-22-2022 21:46:47.198    DeltaDownload    3788 (0xecc)    ===========================================================

2022年4月14日木曜日

Configuration Manager で配布ポイントを構築する場合の確認点

 下記の公開情報の前提となる役割が追加されていること

サイトの前提条件 - Configuration Manager | Microsoft Docs

リモート差分圧縮(RDC)

DP の IIS 構成

アプリケーション開発:

ISAPI 拡張機能

セキュリティ:
Windows 認証

IIS 6 管理互換性:
IIS 6 メタベース互換
IIS 6 WMI 互換

ネットワーク的に接続できない場合も構築できないので、DNS で配布ポイントの名前解決ができないといけません。

AD サーバーのDNS の設定も確認しましょう。以前、原因は不明ですがドメイン参加しているのにDNS のA レコードにDP の IP Address が登録されずにハマったことがあります。

プライマリサイトサーバーからping やnslookup で疎通できるか確認しておきましょう。

また、プライマリサイトサーバーと配布ポイントに、互いのコンピューターアカウントを[Administrator]グループに追加しておきましょう。

以下は配布ポイント側でプライマリサイトサーバーCM のコンピューターアカウントを追加している様子です。プライマリサイトサーバー側にも忘れずDP 側のコンピューターアカウントを追加しましょう。

プライマリサイトサーバー側では、SQL Server Management Studio を開いて、Login アカウントに、DP のコンピューターアカウントを追加しましょう。これはアカウント参照ができないので、直接指定しないと追加できません。

リモートレジストリサービスも起動しているかチェックしておきましょう。

もし、WMI に問題がありそうな場合は、以下のファイルがプライマリサイトサーバーにありますので、こちらを配布ポイントまで持っていってください。

C:\Program Files\Microsoft Configuration Manager\bin\X64\smsdpprov.mof

配布ポイントに持っていったら、管理者権限でコマンドプロンプトを開いていただき、下記のコマンドを実行してみましょう。

mofcomp smsdpprov.mof

WMIExplorer で確認すると、下記のWMI が生成されていることが確認できます。

こちらが作成されていることを確認して、プライマリサイトサーバーから、配布ポイントの役割を削除後、再度追加してみましょう。

また、WMI 空間にプライマリサイトサーバーからリモートでアクセスできるかどうかも確認できますので、こちらも確認しておきましょう。

2022年4月8日金曜日

Configuration Manager で、SQL Server Reporting Services を追加する方法

SQL Server 2017 以降から、Reporting Services が SQL Server セットアップ時に選択ができなくなりました。

以下の画面でいうところの黄色い箇所になります。


そのため、Configuration Manager を利用する場合に、SQL Server 2017 以降を利用する場合は、別途、Reporting Services をインストールする必要があります。

まずは、以下のリンクから、SQL Server 2019 Reporting Services をダウンロードしましょう。


ダウンロードした「SQLServerReportingServices.exe」を実行して、上記公開情報にある通り、下記の箇所を参考にインストールを進めます。

こちらの手順を終えたら、下記を参考にして、レポートサーバーデータベースを作成します。



レポートサーバーデータベースが作成されると、SSMS より、下記のデータベースが作成されていることが確認できます。

ここまで来ましたら、次はローカルのレポートサーバーデータベースを作成します。これは、具体的には、下記にある通り、Reporting Services を利用して、データベースの変更をします。


上記手順にあるデータベースの変更は、具体的には以下から実行します。




こちらの処理が完了したら、Web Service URL を構成します。
Apply ボタン押すだけですが、以外と気づかないので、忘れずに実行しましょう。

ここまでの作業が完了したら、ReportingServer への接続を確認しましょう。


接続が完了したら、MECM 管理コンソールから、レポートサービスポイントの役割を追加しましょう。
役割を追加する際、上記の手順でレポート機能の準備ができていれば、下記の黄色の箇所にSSRS が選択できるようになります。これでレポート機能を使えるようになります。

ccmcache をパッケージ展開を利用してスクリプトでコンテンツを削除

 ccmcache の最大キャッシュサイズについては、クライアント設定から設定が可能です。


ただし、ソフトウェア更新プログラムについては、こちらの最大キャッシュサイズの制限は効かない動作となっております。
そのため、機能更新プログラムを配信すると、すぐにキャッシュサイズが大きくなる場合があります。
そのような場合、クライアント側であれば、クライアントコンソールから下記のボタンより、ccmcache をクリアすることが可能です。
しかし、サーバー側から直接削除するための指示というのは、標準機能では存在しません。
そのため、このクライアント側の容量をサーバー側からなんとかしたい、ということを管理者は考えます。
その場合、ccmcache のフォルダーを直接削除するスクリプトを配布するのはNG です。
ccmcache フォルダーはWMI 空間で管理されているので、下記のPowerShell コマンドから削除しないといけません。
$UIResourceMgr = New-Object -Com "UIResource.UIResourceMgr"
$Cache = $UIResourceMgr.GetCacheInfo()
$Cache.GetCacheElements() | % {$Cache.DeleteCacheElement($_.CacheElementID)}

あとは、こちらを test.ps1 などのファイルにして、パッケージ展開をするだけです。
パッケージ展開で気をつけるところは、PowerShell コマンドの実行には、下記のようにコマンドを指定しないとうまく動きません。

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File test.ps1

こちらのコマンドは、以下の画面の [コマンド ライン] へ入力します。

こちらのパッケージを作成したら、今度は対象のコレクションへ配信するために展開を作成します。

ここでも注意が必要です。下記のように、配布ポイントの展開オプションで [配布ポイントからプログラムを実行する] を選択する必要があります。

こちらの展開オプションを選択しない場合、クライアントはローカルにスクリプトをダウンロードして実行してしまうため、以下のエラーが execmgr.log に記録されます。

CacheManager: Cache is in Use. DeleteCacheItem cannot proceed.
CacheManager.DeleteCacheItem failed with 0x87d01203

エラーコード:0x87d01203 は、今回のシナリオでは、削除対象のコンテンツがダウンロード中であったり、実行中である場合に記録されるものとなるため、ローカルにスクリプトをダウンロードして実行すると、こちらのエラーが発生します。

そのため、上記の配布ポイントの展開オプションは必須となりますが、こちらは SMB プロトコルで通信をしますので、ポート445 が開放していない環境では利用できませんので、ご注意ください。

2022年2月5日土曜日

ソフトウェア更新ポイント、及びWSUS のSSL 化について

ソフトウェア更新ポイント、及びWSUS のSSL 化についてですが、まずその目的を理解する必要があります。

ここでは簡単のため、主にWSUS サーバーにフォーカスして説明いたします。

WSUS はスタンドアロン構成とリモート構成の2パターンが主にあります。

この内、リモート構成の場合にSSL 化の検討が必要となるかと思います。

これはリモート構成の場合、2拠点間のWSUS の同期時にデータを暗号化するかどうか、という点を検討する必要があるからとなります。

また、クライアントとサーバー間でのデータのやり取りについても同様のことが言えます。

また、WSUS は公開情報にもある通り、メタデータ(WSUS コンソールに表示される情報のデータとお考えください)については、暗号化の対象となりますが、更新プログラムのコンテンツファイル自体は、暗号化の対象となりません。

WSUS をSSL 化する場合、より具体的にはサーバー証明書を導入する場合は、このサーバー証明書を利用して、WSUS はコンテンツファイルに署名をします。(より具体的にいうと、WSUS サーバーは秘密鍵を使ってファイルを署名し、クライアントは公開鍵によってそのファイルの正当性を検証できるようにします)

これに加え、更新プログラムのファイルハッシュを生成し、そのデータをクライアントに送り、クライアントはダウンロードした更新プログラムのファイルハッシュを生成して、サーバーから送られてきたファイルハッシュを比較し、同一であれば、その更新プログラムは正しいものと判断し、更新プログラムのインストールを開始します。

つまり、WSUS をSSL 化することにより、クライアントが更新プログラムをWSUS のサーバー証明書を利用することで検証することができるようになります。

これらの手順について、以下に簡単にまとめました。

基本的には、公開情報にある以下のリンクを見れば導入が可能となりますが、その中であまり具体的に案内がない箇所にフォーカスして手順を記載してありますので、ご参考いただければと思います。

手順 2 - WSUS を構成する | Microsoft Docs


また、WSUS のSSL 化は、Configuration Manager のソフトウェア更新ポイントをTLS/SSL を利用するように構成する手順の一部でもありますので、今回は、下記の公開情報も参考にして、WSUS のSSL 化からソフトウェア更新ポイントのTLS/SSL 化までを試してみたいと思います。

PKI 証明書チュートリアルで TLS/SSL を使用するソフトウェア更新ポイントを構成する - Configuration Manager | Microsoft Docs


しかしながら、上記のWSUS をSSL 化する公開情報で、大前提となる証明書テンプレートの生成方法から、導入までの手順が、かなり分かりづらいものとなっておりますので、下記では、その手順を画面付きで記載してありますので、ご参考にしていただければと思います。


事前準備:ドメインコントローラー上でのサーバー証明書の作成


■概要

ここでは、WSUS サーバーが所属しているドメインのドメインコントローラー上で証明書テンプレートを利用して、証明書を生成する手順を示します。


■手順

1-1) [サーバーマネージャー] > [ツール] > [証明機関] (*1)をクリックします。

*1) 証明機関はデフォルトで役割が存在しないので、役割の追加をしてください。

1-2) [certsrv] で、[証明書テンプレート] を右クリックし、[管理] をクリックします。


1-3) [証明書テンプレート コンソール] 画面で、[Web サーバー] を右クリックし、[テンプレートの複製] をクリックします。


1-4) [新しいテンプレートのプロパティ] の[全般] タブにある、[テンプレートの表示名] に、[WSUS-SUP] と入力します。


1-5) [新しいテンプレートのプロパティ] 画面で、[要求処理] タブをクリックし、[秘密キーのエクスポートを許可する] をクリックします。


1-6) [新しいテンプレートのプロパティ] で、[セキュリティ] タブをクリックし、[Enterprise Admins] グループをクリックして、登録のアクセス許可を外します。



1-7) [新しいテンプレートのプロパティ] で、[追加] をクリックします。

1-8) [ユーザー、コンピューター、サービス アカウントまたはグループの選択] で、[オブジェクトの種類] から[コンピューター] にチェックをつけてOK を押します。



1-9) [ユーザー、コンピューター、サービス アカウントまたはグループの選択] に戻り、WSUS のサーバー名を指定して、[名前の確認] を押し、CM サーバー、もしくはWSUS サーバーが指定できたら、OK を押します。



1-10) [新しいテンプレートのプロパティ] で、1-9) で指定したWSUS サーバーを選択し、[アクセス許可] で、[登録] にチェックを入れてOK を押します。


1-11) [証明書テンプレート  コンソール] で、[WSUS-SUP] テンプレートが追加されたことを確認し、画面を閉じます。


1-12) [certsrv] で、[証明書テンプレート] を右クリックし、[新規作成] > [発行する証明書テンプレート] をクリックします。


1-13) [証明書テンプレートの選択] 画面で、[WSUS-SUP] を選択します。


1-14) [certsrv] で、[WSUS-SUP] が追加されたことを確認します。


事前準備はここまでとなります。
ここまで準備ができれば、後は下記の公開情報の通りに手順を踏めば、WSUS のSSL 化ができます。

PKI 証明書チュートリアルで TLS/SSL を使用するソフトウェア更新ポイントを構成する - Configuration Manager | Microsoft Docs

作成したテンプレートを利用して証明書要求をサーバーからドメインコントローラーに対して行い、IIS に証明書をバインドする手順となります。
確認方法として、MECM のログを確認することになりますが、問題なく確認できるかと思います。