DHCP タイムオフセット オプションを構成する

Polycom CX、VVX シリーズなどデバイス毎にタイムゾーンを設定するのは面倒。
デバイスにもよるが、DHCP から取得したオプションパラメーターでタイムゾーンを自動構成することができる。

Set-DhcpServerv4OptionValue -ComputerName <DHCP_SERVER_NAME> -OptionId 2 -Value 0x00007E90

DHCPオプションID: 2
値の形式: Long 型

JST (GMT+9) なら 、
・3600*9 =32400 >> GMTから32400秒のズレ
・32400を16進数に変換 >> 7E90
・フォーマットに変換すると >> 0x00007E90

 

ドメインに参加していない Windows Server 2012 を DHCP Server にする場合

Active Directory ドメインに参加していない Windows Server を DHCP サーバーとして動かすためにはレジストリの追加が必要。
———————————————————————————————-
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters]
“DisableRogueDetection”=dword:00000001
———————————————————————————————-

あと、固定IPが設定されていないマシンでは、DHCP OfferやACKを返さないので注意。

DHCP

TLS API のエラーが発生しました。 エラー = 0x80090301

先日公開された「ルート証明書の更新」に関するWindows Updateを適用するとTLSによる暗号化通信が失敗することがある。当方の環境ではLync Server 2013、Exchange 2010 UM、EAP-TLSを使う無線LAN(NPSベース)で不具合が発生した。Exchange UMではボイスメールは録音されるが、メールボックスに配信されないという不具合である。その際のイベントログは次の通り。

イベントID 1423
ソース MSExchange Unified Messaging

ユニファイド メッセージング サーバーで、ヘッダー ファイル “C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\voicemail\c644bcd4-5568-4297-aa87-7a99d3bbf57e.txt” のメッセージの処理中にエラーが発生しました。 エラーの詳細: “Microsoft.Exchange.Net.ExSmtpClient.TlsApiFailureException: TLS API のエラーが発生しました。 エラー = 0x80090301

Server stack trace:    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.SmtpSslHelper.Encrypt(Byte[] bytesToEncrypt, Int32 offset, Int32 numberOfBytesToEncrypt)    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.SmtpSslHelper.Encrypt(Byte[] bytesToEncrypt)    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.Write(Byte[] buffer, Int32 offset, Int32 size)    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpTalk.Command(SmtpChunk[] chunks, SmtpCommandType command, Int32 expectedCode)    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpTalk.Ehlo()    場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpClient.Submit(Boolean disableDelayedAck)    場所 Microsoft.Exchange.UM.UMCore.SmtpSubmissionHelper.SubmitMessage(MessageItem message, String senderAddress, String recipientAddress, OutboundConversionOptions submissionConversionOptions, InternalExchangeServer smtpServer)    場所 Microsoft.Exchange.UM.UMCore.SmtpSubmissionHelper.SubmitMessage(MessageItem message, String senderAddress, String recipientAddress, OutboundConversionOptions submissionConversionOptions, String requestId)    場所 Microsoft.Exchange.UM.UMCore.SmtpSubmitStage.InternalDoSynchronousWork()    場所 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)    場所 System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]:    場所 System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)    場所 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)    場所 Microsoft.Exchange.UM.UMCore.SynchronousPipelineStageBase.SynchronousWorkDelegate.EndInvoke(IAsyncResult result)    場所 Microsoft.Exchange.UM.UMCore.SynchronousPipelineStageBase.EndSynchronousWork(IAsyncResult r)”

その他の関連ログ
ソース Schannel
イベントID 36885

クライアントの認証を求めるとき、このサーバーは信頼された証明機関の一覧をクライアントに送ります。クライアントはこの一覧を使って、サーバーによって信頼されているクライアント証明書を選択します。現在、このサーバーによって信頼されている証明機関が多いため、一覧が大きくなりすぎています。そのため、この一覧は切り埋められました。このコンピューターの管理者はクライアントの認証のために信頼された証明機関を確認し、信頼される必要がないものを削除する必要があります。

関連するKB2464556を参照すると、不要なルート証明書を削除しろという記載があるが現実的なアプローチではないため、ためしに以下のレジストリキーを登録することで不具合が解消された。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] “SendTrustedIssuerList”=dword:00000000

出典:
http://support.microsoft.com/kb/2464556

「CBS error 0x80070643 ” reported while operating on UI Language Pack for ja-JP」というエラーが発生し、言語パックのインストールができない。

Windows Server 2008 R2 SP1 英語版に日本語言語パックをインストールしようとすると、以下のようなイベントログが記録され、インストールが失敗する。

イベントID:1003
ソース:LanguagePackSetup
CBS error 0x80070643 ” reported while operating on UI Language Pack for ja-JP」(原文)
「ja-JP 向け UI Language Pack の操作中に CBS エラー 0x80070643 ” が報告されました」(日本語)

上記イベントに続き、こんなログも記録される。
イベントID:1018
ソース:LanguagePackSetup
CBS failed to install the language pack for ja-JP. Returned CBS error code 0x80070643.」(原文)
「CBS は ja-JP 向け言語パックをインストールできませんでした。返された CBS エラー コードは 0x80070643 です。」(日本語)

当方の環境では、ほとんどのサーバーOSはWindows Server 2008 英語版からWindows Server 2008 R2 にインプレースアップグレードを行った。その後、日本語パックを適用したのだが、複数あるサーバーのうち、ドメインコントローラだけがインストールに失敗していることが判明。 “C:\Windows\Logs\CBS\CBS.log” を解析するも複雑すぎて原因がわからない。

http://blogs.technet.com/b/jpwsus/archive/2009/05/11/asp-net-wsus.aspx を参考にすると、インストーラーサービスに関連するパフォーマンスカウンタとレジストリに不整合があると更新プログラムの適用に失敗することがあるとのことだったので、ためしに LODCTR /R コマンドを実行したのち、再度言語パックの適用を行った。

その結果、「Package SP1 Language Pack was successfully changed to the Installed state.」と表示され、正しく適用することができた。

Active Directory ユーザーとコンピューターで特定のユーザーが検索できない

ADUC(Active Directory ユーザーとコンピューター)でグループにユーザーを追加するにも、検索できない場合は、そのユーザーのshowInAdvancedViewOnly 属性が TRUE になっていないかを確認する。ちなみに、名前の一部で検索ができない場合であってもUPNで指定すれば、メンバーとして設定できる。

ディスク クリーンアップ ツール on Windows Server 2008 R2

Windows Server 2008 R2では「デスクトップ エクスペリエンス」を有効にしないと、ディスク クリーンアップ ツールが利用できない。

いちいち、デスクトップ エクスペリエンスを有効にするのも面倒なので、以下のコマンドを実行して利用可能にすることができる。

copy C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe %systemroot%\System32

copy C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui %systemroot%\System32\en-US

cleanmgr.exe

出展:http://technet.microsoft.com/en-us/library/ff630161(WS.10).aspx

ネットワーク デバイス登録サービス (NDES)

Windows Server 2008のCAはSCEP対応デバイスからの証明書要求を受け入れることができるようになった。このため、Cisco Unified CMやらルータやらで証明書が必要になった時に独自署名ではなく、社内のエンタープライズCAによって署名を受けられるので、デバイスアクセス時の証明書警告が表示されなくなる。
Windows Server 2003ではリソースキットのアドインを追加することでSCEPクライアントを受け入れることができる。アドインのダウンロード先は次のとおり。

http://www.microsoft.com/downloads/details.aspx?familyid=9f306763-d036-41d8-8860-1636411b2d01&displaylang=en

DHCPサーバーのIPアドレス競合検出

Windows ServerのDHCPはIPアドレスを配布する前に、そのIPアドレスが使用されているかをチェックしない。通常の環境であれば問題は起きにくいのだが、DHCPで配布される範囲のIPアドレスを、ユーザーがこっそり手動で設定している場合や何らかの理由ですでに使用されているIPアドレスがあると、クライアントはIPアドレスを正しく構成することができない。この場合、以下のコマンドを使ってDHCPサーバーがIPアドレスを配布する前に該当するアドレスにPINGを実行する回数を指定することができる。
 
設定コマンド
netsh dhcp server set detectconflictretry 1 (範囲は0から5)
 
確認コマンド

netsh dhcp server show detectconflictretry
現在のサーバーの再試行の設定を ping する : 1

DHCPを冗長化させたいが、クラスタや80/20ルールとかは嫌だという時に効果が期待できるだろう。当然ながら、PINGを実行する場合、応答確認までに少しモタつくことになるため注意が必要だ。WindowsファイアウォールなどでPINGの応答を返さないホストがいることも忘れてはいけない。

スタンドアロンCAが発行する証明書の有効期限を変更

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA_NAME>]
"ValidityPeriod"="Years"
"ValidityPeriodUnits"=dword:00000010

レジストリキーの変更後はcertsvcサービスの再起動を行う。

出典:http://support.microsoft.com/kb/254632/ja