OS」タグアーカイブ

パスワードに”$”を使うのはダメなの?

先日System Centerのイベントがあり、そこでパネルディスカッションに参加してきました。

その際に、興味深いお話がありました。それは、System Center の連携のお話です。System Center Service Manager と System Center Orchestrator との連携がなぜかうまくいかないという話がありました。

単体ではうまく動くのですが、連携ができないということでした。

そして、その原因がパスワードに「$」が含まれているというでした。

どうやら、この理由はPowershellの処理がおかしいらしい。そもそも、Powershellにおいて$は変数を表します。そして、System Center は Powershell ベースで動いている。ここら辺がヒントになりそうです。

Azure SDKでも似たようなのがあって$を入力するとそれ以降の文字を受け付けてくれないということです。

CSEncryptで$が入力できなかったり

現状ではパスワードに「$」を使うのは避けるべきですね。

最新版の System Center 2012 でも直っていません。どうやら、この情報をマイクロソフトも把握していなかったようです。まあ、そのうち直ると思いますが注意が必要ですね。

書籍の紹介

とうとうSysinternalsのツール解説本が日本語の書籍として出るそうです。

Windows Sysinternals徹底解説 ―― Windows管理者必携ツールを使い尽くすためのバイブル (マイクロソフト公式解説書)

著者: Mark E. Russinovich、Aaron Margosis 著
訳者: 山内和朗 (= 山市良です)
価格 : 4,935円(税込み)
ISBN : 978-4-82229-464-9
発行元 : 日経BP社
発行日 : 2012/04/02

これはマイクロソフト製品を扱うSEはバイブルとして持っていたい1冊になると思います。

ということで、私は購入予定!

ちなみに、Computerworld の Windows Sysinternals を使い倒せ(国井さん)も必見ですね!

Windows Server 2008 R2 導入後に行うべき設定~Network編

Windows Server 2008 R2 導入後に行うべき設定 も参考にしていただければ幸いです。

今回はネットワーク編としてやっておいた方がいい設定を記載します。

■SNPの無効化

■DNS動的更新のチェックOFF(複数セグメント)

SNPの無効化に関して

これは以前から話題になっていましたが、改めて復習します。

SNPとは「Scalable Networking Pack」のことで、TCP に関するネットワーク処理を、NIC およびドライバを利用して最適化するためのテクノロジー及びその実装の総称になります。当然のことながらSNPに対応したNICおよびドライバが必要となります。

またPackという単語からもわかるとおり、ネットワークの様々な機能を包括しています。具体的には次に紹介する3つの機能を指します。

1. Receive Side Scaling (RSS)

マルチCPUおよびマルチコアCPUを利用している場合、TCP の受信処理を複数のコアに分散するテクノロジーになります。そもそも、RSSが機能していない状態(通常のネットワーク通信)では、たとえマルチCPUであっても、TCPの受信処理は単一のコアで行われるので、特定のコアのみに処理が集中されるという課題がありました。

A. 対応NIC例

Intel製NIC

Broadcom製NIC

Realtek製NIC

2. TCP Chimney Offload

TCPに関するネットワーク処理をNICで行うことにより、コンピューターのCPUの負荷を軽減するテクノロジーになります。TCPチェックサムの確認と送信データのセグメンテーションについては、以前からTCP の連続的な状態を管理しない簡易的な機能として「TCP Task Offload」や「Large Send Offload」がありました。

3. Network Direct Memory Access (NetDMA)

ネットワークの受信データをネットワーク アダプターの受信バッファーからアプリケーションのバッファーへコピーする作業をCPU によって行うのではなく、チップセットを含むシステム全体が連携し、Direct Memory Access機能により行うためのテクノロジーになります。

要件

  1. BIOSで有効であること。
  2. Intel I/O Acceleration Technology (I/OAT)をサポートしていること。具体的にはIntel 5000 シリーズチップセットなど(サーバー用)が該当するようです。
  3. NetDMAと一緒にTCP Chimney Offloadを使用することはできない。ハードウェアサポートおよび設定が両方とも有効になっていた場合はTCP Chimney Offloadが優先される。

そもそも論として、これらの技術が対象としているのは10Gbitネットワークで、1Gbitネットワークなどではあまり(ほとんど?)恩恵を受けられません。更に、これらがWindows Server 2008 R2ではデフォルトで有効になっていますが、不意なリセットの送出や、パケットレベルでの動作に起因して、パフォーマンスが逆に低下するなどの現象が発生しているようです。要するにまだ成熟されていない状態です。よって、明確に使用する意図がないのであれば、SNPは無効化する方が良いということになります。

 

確認方法

コマンドプロンプトにて次のコマンドを実行

netsh int tcp show global

アクティブ状態を照会しています...

TCP グローバル パラメーター

----------------------------------------------

Receive-Side Scaling 状態              : enabled

Chimney オフロード状態                 : automatic

NetDMA 状態                            : enabled

Direct Cache Acess (DCA)               : disabled

受信ウィンドウ自動チューニング レベル  : normal

アドオン輻輳制御プロバイダー           : none

ECN 機能                               : disabled

RFC 1323 タイムスタンプ                : disabled

** 上の autotuninglevel 設定は、少なくとも 1 つのプロファイルのローカルポリシー構成を
上書きするウィンドウ スケーリング ヒューリスティックの結果です
TCP Chimney Offload の automatic mode が有効になる要件は次の通り
  1. 10 GbE
  2. Round trip time (RTT) が 20 ミリ秒以下
  3. 該当の接続にて 130 KB 以上の通信が発生

TCP Chimney Offload がサポートされているかを確認するコマンド

netsh int tcp show chimneystats

Idx  Supp  Atmpt    TMax    PMax     Olc              FailureReason
---  ----  -----    ----    ----     ---              ------------
 10   いいえ  -n/a-       0       0       0                       -n/a-

  Idx           - システムで使用されるインターフェイス (NIC) インデックス
  Supp          - インターフェイス (NIC) は TCP Chimney オフロードをサポート
  Atmpt         - システムが TCP 接続オフロードを試行
  TMax          - NIC によってアドバタイズされたオフロード容量
  PMax          - システムで観察されたオフロード容量
  Olc           - 現在オフロードされている接続の数
  FailureReason - 前回接続のオフロードの試行に失敗した原因

 詳細については、'netsh int tcp show chimneystats (Idx) ' を使用してください。

NetDMA機能のTCP/IP統計情報を確認するコマンド

netsh int tcp show netdmastats

TCP DMA 統計
---------------------------------------------------------
NetDMA を使用してコピーした合計バイト数    : 0
CPU を使用してコピーした合計バイト数       : 68206265
NetDMA コピーの合計エラー数               : 0</pre>

SNP無効化方法

Receive-Side Scaling(RSS)の無効化

netsh int tcp set global rss=disabled

TCP Chimney Offload の無効化

netsh int tcp set global chimney=disabled

Network Direct Memory Access(NetDMA)の無効化

netsh int tcp set global netdma=disabled

実はWindows7も同じ設定なので、同様にSNP無効化をした方がいいかもしれません。

DNS動的更新のチェックOFFに関して

DNSへ登録設定

デフォルトでネットワークのTCP/IP設定は

この接続のアドレスをDNSに登録する

にチェックが入っています。これは全てのNICに割り当てられたアドレスがDNSに登録されることになります。例えば、マルチセグメントのコンピューターの場合複数NICが存在しますが、DNSに登録してほしくないアドレスまで登録されることになります。よって、DNSに登録してほしくないアドレスが割り当てられているNICに対しては、明示的にこのチェックをはずす必要があります。

Msdia80.dllファイルは何者?

こんな記事を発見しました(備忘録として載せておきます)。

ドライブルートのMsdia80.dllファイルは削除してもよいのですか?

実は私の自宅環境にもあったような・・・・

でも気にしない~で終わっていました(エンジニアとしてどうなのかはわかりませんが)

どうやら、原因は x64(またはIA64)版のWindowsに「Visual C++ 2005 再頒布可能パッケージ」 をインストールする際に発生する既知の問題のようです。

以下抜粋

「Msdia80.dll」は本来、「%Program Files%¥Common Files¥Microsoft Shared¥VC」フォルダーにインストールされるべきですが、x64(またはia64)版のWindowsの場合、誤ってドライブルートにインストールされてしまいます。共有DLLとしてレジストリにも登録されているので、安易に削除はしないようにしてください。

Windowsの自動更新(Microsoft Update)を適切に実施していれば、2009年7月に公開された以下のセキュリティ更新プログラム(MS09-035/KB973923/KB973544)が適用されたことで、すでに修正されているはずですが、問題が解決されない場合もあるようです。

ここまで

なるほど~、要するにバグだったのね。

この記事では問題が解決されない場合に対する対処方法も載っていました(さすがです)。

Windows Server 2008 R2 導入後に行うべき設定

導入後に行う設定

Windows Server 2008 R2 を導入して運用している方は多いと思いますがが、意外と忘れがちな設定を列挙しておきます。(これ以外にもあるかもしれませんが、とりあえず備忘録として記述しておきます)

  • ウイルスソフト導入後の除外設定
  • 信頼性モニターの設定
  • GPOのセントラルストアの設定
  • Active Directory Recycle Bin
  • Sysvol レプリケーション
  • DNSの清掃とエージング
  • バックアップソフトのインストールとスケジュール設定

ウイルスソフト導入後の除外設定

ウイルススキャンの除外設定に関して

こちらを参考に行うことができます。

信頼性モニターの設定

Windows Server 2008 では信頼性モニターがデフォルトの状態は有効でした。これはトラブルシューティングの際にかなり役に立つツールになります。しかしながら、R2ではデフォルトの状態では無効になっています。よって、いざトラブルが発生して信頼性モニターを起動しても使えないのです。

そこでWindows Server 2008 R2 の信頼性モニターを有効にするには次の通り。

レジストリ

HKLMSOFTWAREMicrosoftReliability AnalysisWMI
WMIEnabile⇒1

タスクスケジューラー

MicrosoftWindowsRACの「RacTask」を編集する

トリガーの「指定日時」を編集

設定
1回 および開始時刻の設定

詳細設定
「遅延時間を指定する(ランダム)」にチェック(例:15分間)
「繰り返し間隔」にチェック(例:1時間)
「継続時間」(例:無制限)
「有効」にチェック

以上の設定を行うと、信頼性モニターの記録が開始される

GPOのセントラルストアの設定

GPOの管理用テンプレートは、デフォルトの状態ではローカルから取得されています。やはり、これはセントラルストアからの取得に変更するべきでしょう。

グループポリシーのアーキテクチャ~その1~

こちらを参考に行うことができます。

Active Directory Recycle Bin

R2の新機能であるADのごみ箱機能です。デフォルトでは有効になっていません。よって、有効にしましょう。しかし、前提としてフォレスト機能レベルを「2008 R2」にする必要があります。

Active Directory Recycle Binに関して~その1

こちらを参考に行うことができます。

Sysvolレプリケーション

Sysvolレプリケーションは導入時のドメイン機能レベルが Windows Server 2008 の場合はDFSRが使用されますが、それ以外の場合はFRSが使用されます。よって、既存環境のバージョンアップなどでは最初は機能レベルがWindows Server 2003 などで、その後Windows Server 2008 にすることがあると思います。そのような場合は、SysvolレプリケーションをDFSRに変更することができます。

SYSVOL レプリケーション移行ガイド: FRS から DFS レプリケーション

DNSの清掃とエージング

意外と忘れがちな、DNSレコードのお掃除設定です。

DNS に対してエージングと清掃を有効にする

こちらを参考に行うことができます。

バックアップソフトのインストールとスケジュール設定

デフォルトではバックアップソフトはインストールされていません。Windows Server バックアップを使用するなら、機能よりインストールしましょう。そして、スケジュール設定を行い定期的にバックアップを行う設定にしましょう。

他にもいろいろあると思いますが、意外と忘れがちな項目を列挙しておきました。

Windows Server 2008 R2 導入後に行うべき設定~Network編

も参考にしていただければ幸いです。

Sysprep後にドメイン参加とコンピューター名を自動的に変更するには

Windows System Image Manager を使用して応答ファイルを作成する

を以前投稿しました。

今回、私が担当しているコースの研修環境を変更したことによって今までとっていたアプローチができなくなりました。

やりたいことは次のとおり

・イメージはすでに出来上がっている
・イメージはSYSPREPを行ってから配布
・ノートンゴーストを使用してイメージを配布する
・起動時にライセンス同意とロケールを聞いてくるのでバイパスしたい
・パスワードの入力をバイパスしたい
・コンピューター名やIPアドレス入力をある程度自動化したい
・ドメイン参加をある程度自動化したい

赤で記述している場所は、System Image Manager を使用して作成したアンサーファイル(Unattend.xml)で実現していた。

青で記述している場所は、バッチファイルで実現していた。

続きを読む

DNS のデボルブ動作に関して

Windows 7 および Windows Server 2008 R2 のデボルブ動作が以前の考え方から変更になりました。

また更新プログラム

Post-installation behavior on client computers after you install the DNS update
http://support.microsoft.com/kb/957579/en-us

を以前のOSに適用することによって、Windows 7 や Windows Server 2008 R2 と同様の動作を行うことになります。

続きを読む

0 Day Attack に対応できるMS 純正ツール

昨日 MVP OPEN DAY に参加して仕入れたネタになりますが、表題にあるように 0 Day Attack に対応できるツールがMSから出ていました。

このようなツールがあること自体知らない方がほとんどで、コマーシャルが足りないと皆さんから突っ込まれていました(笑)

さてそれはどのようなツールかというと、EMET(エメット)というツールになります。

続きを読む

外付けUSBドライブからWindows7の起動

基本的に外付けUSBからのOS起動はできませんでしたが、VHDブートを使用することによって起動できることが確認できました。

作成するには前提として、Windows7 or Windows Server 2008 R2 がインストールしてある

以下手順

  1. インストールDVDから起動
  2. 今すぐインストールを行うの次の画面、インストール先を選ぶ画面で Shift+F10
  3. コマンドプロンプトを呼び出し、これからWindows7をインストールするドライブにVHDを作成する(たいていDドライブ)
  4. フォルダを作成する
    mkdir D:VHD
  5. VHD作成
    Diskpart
    create vdisk file=D:VHDWin7.vhd maximum=12288 type=fixed
  6. 作成したVHDをマウントする
    attach vdisk
  7. Diskpartを終了させ、止めていたインストール画面にALT+TABで戻る
  8. 最新の情報に更新を行い、マウントしたVHDが表示されているのを確認する
  9. VHDへのインストールを選択し、エラー表示を無視してインストールを行う
  10. インストール終了後デュアルブートになっているので、そのままWindowsが起動するのを待つ
  11. VHDから起動したWindowsのレジストリを修正する(regedit→USB関連の起動を自動にする)
    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbehci
    Startの値を0
    Groupの値をSystem Bus ExtenderHKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbhub
    Startの値を0
    Groupの値をSystem Bus Extender

    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbstor
    Startの値を0
    Groupの値を新規作成し、値をSystem Bus Extender
    TagのDWORD値を新規作成し、値を3

    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbuhci
    Startの値を0
    Groupの値をSystem Bus Extender
    ※ControlSet001以外にControlSetがある場合は全て変更する

    修正後VHDブートしたWindowsはシャットダウンする

  12. ここからインストールした内蔵HDDのWindowsから操作を行う。インストールDVDも使用するのでDVDをドライブにいれておく。
    外付けUSBを繋ぎ、コマンドプロンプトを起動
    diskpart
    select disk 1
    Clean
    create partition primary
    assign letter=Z
  13. Z:ドライブとしてマウントした外付けUSBの直下にD:ドライブにあるwin7.vhdをコピーする
  14. 外付けUSBディスクにブートローダーを書き込む(BootsectはインストールDVDのBootフォルダの中にある)
    Bootsect /nt60 z: /force /mbr
  15. Windows7のVHDファイルにブートローダー情報を書き込むため、VHDをR:ドライブとしてマウントする
    diskpart
    select vdisk file=Z:Win7.vhd
    attach vdisk
    assign letter=R
    exit
  16. ブート情報をマウントしたWindows7のVHDファイルに書き込む
    bcdboot R:windows /s z:
    Rは外付けUSBからマウントしたVHDのドライブレター
    Zは外付けUSBのドライブレター
  17. 外付けUSBに書き込んだBCDを修正する
    BCDEditは管理者権限でないと変更できないので、cmdをShiftを押しながら右クリックでcmdを管理者から起動を選ぶ
    BCDEdit /STORE R:BootBCD /set {default} description “USB Win7”
    BCDEdit /STORE R:BootBCD /set {default} local ja-JP
    BCDEdit /STORE R:BootBCD /set {default} detecthal on
    BCDEdit /STORE R:BootBCD /set {Bootmgr} local ja-JP/store で外部のBCD修正、ブートファイルの書き込みを行うとデフォルトでen-USなのでja-JPへ変更
    detecthal onでハードウェアの情報を検出する
  18. マウントしたVHDをアンマウントする
    diskpart
    select vdisk file=Z:Win7.vhd
    detach vdisk
    exit
  19. 再起動してUSBからブートできるようにBIOS設定後、USBデバイスからブートでUSBにあるVHDからWindows7が起動する
  20. 外付けUSBディスクのVHDからブートしたWindowsのUSB関連のレジストリが元に戻っている場合があるので、11のレジストリを再度見直しを行う
  21. アクセサリ>システムツール>ディスクデフラグツールより自動実行を無効にする
  22. システムのプロパティのシステムの保護タブの構成>システムの保護を無効にする
  23. 完了

コアパーキングに関して

さて、Windows Server 2008 R2 では新機能としてコアパーキングをサポートしました。

このコアパーキングですが、複数コアのあるCPUに対して全てのコアをフル回転して使用させるのではなく、そのプロセスが動くのに十分なコアを確保する機能になります。結果として少数のコアを使用することになり消費電力を抑える機能になります。

この機能は0.1秒単位で働き、可能な限りCPUの保留状態を作っていきます。

コアパーキング編集済み

リソースモニターで確認すると一瞬ですが保留状態が確認できました。

さて、この機能の制御はできるのか?

マイクロソフトに問い合わせしたところ、この機能はユーザーによる制御などはできないそうです。また制御を行うためのツールなども今のところ存在しません。レジストリをいじればコアパーキングの機能をやめることなど出来そうな気がするのですがそのような情報もありませんでした。

Hyper-v 2.0 もコアパーキングをサポートします。当然ながら設定作業などは一切必要ありません。

まあ、パフォーマンスは変わらず消費電力を抑えてくれるので気にする必要はないということでしょうかね~