名古屋で働くユーザ系SEのブログ

ジャンルにこだわりません。

更新プログラム

WSUS環境でクライアントのCPUが100%になる

16年12月のWindowsUpdateからクライアントPCでsvchost.exeが100%で張り付く事象が発生して、社内でスッタモンダしました。調査したところ、原因は「セキュリティ マンスリー品質ロールアップ」でした。

品質ロールアップとは?
16年10月から配信開始したものです。
2016 年 10 月以降、Windows に関してセキュリティおよび信頼性の問題の両方を解決する 1 つの 更新プログラムを月例のロールアップとしてリリースします。

「累積的な更新プログラム」の特徴を持ち、最新版には過去に配信されたものを包含しています。
各月のロールアップは前月のロールアップを置き換えるため、Windows PC を最新の状態にするためには常に 1 つの更新プログラムのみが必要です。たとえば、2016 年 10 月の月例のロールアップには 10 月のすべての更新プログラムが含まれますが、2016 年 11 月のロールアップには 10 月および 11 月の更新プログラムが含まれ、その後の月も続きます。

なぜCPUが上昇する?
累積的な更新プログラムが増加すればするほど、クライアントの検出作業が高負荷にります。
Windows Update による内部的なスキャン処理の実行時には、WSUS にて承認されている更新プログラムの置き換え関係を過去に遡って参照します
累積プログラムのリリース数が増えれば増えるほど、置き換え対象となる更新プログラムの数は増えていき、それに伴いスキャン処理の負荷も増大します。

対処は?
過去の累積的な更新プログラムをWSUS上で拒否済みに設定します。
最新の「IE の累積的なセキュリティ更新プログラム」は、「累積的」に過去の更新プログラムを包含しているため、最新の更新プログラムのみインストールを行えば過去の更新プログラムによる修正も適用される動作となります。最新のみ承認しておけば、古いものはすべて拒否済みに設定して問題ありません。
※上記記事ではIEのみ取り上げていますが、ロールアップも対処は同様です。

拒否する方法その1(WSUSコンソール)
①更新プログラム一覧を開きます。
②カラムを右クリックして「優先」を表示します。

BlogPaint

下真ん中の更新プログラムを拒否します。
真ん中  : この更新プログラムが別の更新プログラムを置き換えた後に、さらに別の更新プログラムによって置き換えられていることを表しています。
 下: この更新プログラムが置き換える更新プログラムはありませんが、別のプログラムによって置き換えられていることを表しています。

なお、 最新 のアイコンやアイコンの表示がない更新プログラムについては、他の更新プログラムによって置き換えられておりませんので、こちらは「拒否済み」に設定しないようご注意ください

拒否する方法2(PowerShell)
①WSUSサーバ上でPowerShellを起動し、以下のコマンドを実行。
※社内の環境で1時間程度要しました。
 
効果
拒否前は3時間以上CPUが100%に張り付くPCがありましたが、それらも数分で終わるようになりました。

(2017-01-15:投稿)

【PowerShell】WSUS管理下のコンピュータ一覧を取得する

ブログネタ
Windows全般 に参加中!

こんにちは、ippan_seです。
WSUS4.0からはPowershellでWSUSを操作できるようになりました。
今回初めて使ったのですが便利だったのでメモしておきます。

#コンピュータの一覧を取得します。(レプリカサーバは含まず)

#レプリカサーバ配下のコンピュータも取得します。

#CSVファイルにエクスポートします。(全項目出力)

#特定の項目のみ、CSVファイルにエクスポートします。(コンピュータ名、IPアドレス、最終同期時刻のみ出力)

ちなみに全項目出力すると以下の内容が出力されました。
  • Id 識別ID
  • FullDomainName コンピュータ名(FQDN)
  • IPAddress IPアドレス
  • Make コンピュータメーカー名
  • Model 機種名
  • BiosInfo -
  • OSInfo -
  • OSArchitecture ビット数
  • ClientVersion OSバージョン
  • OSFamily OS種別
  • OSDescription OS説明
  • ComputerRole -
  • LastSyncTime 最終同期日時
  • LastSyncResult 同期ステータス
  • LastReportedStatusTime 最終レポート日時
  • LastReportedInventoryTime -
  • RequestedTargetGroupName 所属グループ
  • ComputerTargetGroupIds -
  • RequestedTargetGroupNames -
  • ParentServerId -
  • SyncsFromDownstreamServer レプリカサーバか否か
以上、メモでした。
(2016-08-01)

KB3161949、KB3159398による不具合

ブログネタ
Windows全般 に参加中!
キャプチャ

こんにちは。ippan_seです。
6月14日に配信された2つの更新プログラムで、社内でスッタモンダいました(汗)

KB3161949
NetBIOSによるファイル共有を強化する更新プログラムです。
SMB over NetBIOSという古い技術を使っている場合に、共有が失敗してしまいます。
社内で該当パターンは少なかったのですが、発生しまいました。
(サーバ側がWindowsNTサーバでした...)

対応策は以下の2つです。
①レジストリを修正
②KBアンインストール

①は以下のサイトのとおりレジストリを修正すれば復旧しました。

②は直接端末で削除するか、WSUSで「削除の承認」をすればよいでしょう。


KB3159398
グループポリシーがクライアントに適用される際の脆弱性を修正する更新プログラムです。
GPOの設定画面で「委任」のタブに、「Authenticated Users」か「Domain Computers」が入っていない場合に、ポリシーが適用されなくなります。
社内にもいくつか該当するGPOがあり、以下のサイトの通り「委任」タブに「Domain Computers」を追加したら復旧しました。

(2016-07-07追記)
Authenticated Usersが含まれていないGPOを探す方法を追記しておきます。
私の会社では100個程度ポリシーがあり、それらをコンソールで1つずつ確認するのは骨が折れます。
というわけで、慣れないながらもPowerShellを使って調査してみました。

1.PS1ファイルを作成
ADサーバの任意の場所に以下の内容でPS1ファイルを作ります。
ファイル名: getGpo.ps1


2.PS1を実行(リダイレクションを付けて)
PowerShellを起動し以下のコマンド実行します。

3.getGpoResult.txtを確認
こんな感じに結果が表示されます。
  result
これで全GPOの委任内容が確認できます。
Trusteeに Authenticated Usersが含まれていないものを見つければOK。
あとは、エクセルでうまいこと加工してください。

マイクロソフトさん、同じ週に2つも爆弾を投下しないで欲しいですね~。

(2016-06-25投稿)

記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

Feed
follow us in feedly
  • ライブドアブログ