ntdsutilコマンドのmetadata cleanupでサイト内のドメインコントローラーを一覧表示

自分用のメモです。

ntdsutilコマンドのmetadata cleanupで、サイト内のドメインコントローラーの一覧を表示するまでの画面。Windows Server 2008 R2のActive Directoryの例を掲載。
最近はdsquery serverとか、Get-ADDomainControllerでドメインコントローラーの一覧を参照する事が多いけれど、最終的にActive Directoryに取り残されたごみを削除するときはntdsutilコマンドですからね。

(写真1)ntdsutilのmetadata cleanupでサイト内のドメインコントローラーを一覧表示
metadata cleanupでサイト内のドメインコントローラーを一覧表示

C:\Windows\system32\cmd.exe
C:\>ntdsutil
ntdsutil: metadata cleanup
metadata cleanup: connections
server connections: connect to server WIN2008R2DC
WIN2008R2DC に結合しています...
ローカルでログオンしているユーザーの資格情報を使って WIN2008R2DC に接続しました。
server connections: q
metadata cleanup: select operation target
select operation target: list domains
1 個のドメインを検出しました
0 - DC=test01,DC=local
select operation target: select domain 0
現在のサイトがありません
ドメイン - DC=test01,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません
select operation target: list site
1 個のサイトを検出しました
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
select operation target: select site 0
サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
ドメイン - DC=test01,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません
select operation target: list servers in site
1 個のサーバーを検出しました
0 - CN=WIN2008R2DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
select operation target: q
metadata cleanup: q
ntdsutil: q

C:\>


テーマ : Windows
ジャンル : コンピュータ

2015年7月1日09:00の「うるう秒」とWindowsの時刻同期などなど

今年、2015年7月1日にうるう秒がありますね。

http://internet.watch.impress.co.jp/docs/news/20150501_700381.html
「うるう秒」まであと2カ月――7月1日午前の「8時59分60秒」挿入に備えて確認を -INTERNET Watch



原子時計を基準とする原子時に対し、地球の公転や自転を基準にする天文時が少しずつ遅れているため、数年に一度「うるう秒」を挿入して調整します。
今年の7月1日のUTC 00:00:00にうるう秒が挿入されます。(JSTで09:00:00)

こんな感じです。(JST)
2015/7/1 08:59:58
2015/7/1 08:59:59
2015/7/1 08:59:60 ←挿入される「うるう秒」
2015/7/1 09:00:00
2015/7/1 09:00:01

これ、コンピューターシステムの世界ではちょいちょい問題になるんですよね。
特にLinuxではカーネルバージョンやntpdのパッケージバージョンによっては、OSがハングアップするなどの様々な問題が実際に発生するみたいです。(うるう秒対応の仕様や、実装上のバグなどが絡んでいるみたいですが)

WindowsはOSレベルでは問題はありません。
Windowsでは、うるう秒は無視してシステム時計が進んでいくので、うるう秒に対応したNTPと比較すると、09:00:00には1秒進んだ状態になります。
しかし次回の時刻同期の際に時計が1秒戻されて、NTPサーバーと一致します。

この「1秒戻す」ですが、時計を逆戻りさせて一気に一致させるか(Stepモード)、それとも時計の進み方を少しだけゆっくりにして徐々に補正するか(Slewモード)は、設定によります。

またSQL ServerOracle Databaseなどの主要なソフトウェア(ミドルウェア)は、基本的にはうるう秒の影響は受けません。
内部的には連番で管理され、トランザクションの処理中に時計が進んだり戻ったりしても、処理は正しく継続します。
ただし時刻を指定してリカバリするような処理など、一部は影響が発生する場合もあるようです。
また当然ですが、データベースのデータ型としての「時分秒」に、「60秒」をセットするとデータを書き込む際にエラーとなります。
データベースの時刻型は、うるう秒を意識していない(想定していない)からです。

Windows関連の情報

http://support.microsoft.com/kb/2722715/ja
うるう秒に関するサポートについて
http://support.microsoft.com/kb/909614/ja
うるう秒に関する Windows タイム サービスの処理
http://support.microsoft.com/kb/939322/ja
高精度の環境に向けた Windows タイム サービスの構成を目的とするサポート範囲
http://support.microsoft.com/kb/2722681/ja
Windows Time サービスにおける時刻同期の仕組み



VMware関連の製品ですが、アプライアンスであるvCenter Server Applianceの一部バージョンではうるう秒の影響があるようです。
これはアプライアンスに組み込まれているOSである、 SUSE Linuxが原因のようです。
VMware ESXiや、Windows版のvCenter Serverは問題ありません。

VMware関連の情報

http://kb.vmware.com/kb/2115818
VMware KB: Support for leap seconds in VMware Product



Oracle DatabaseはKROWNに掲載されているので、詳細については触れません。
例えば、こんなドキュメントとかを見てください。
KROWN:33273 うるう秒について
KROWN:16785 システム時刻の変更にともなう注意点

Linuxは私の専門外なので、割愛します。


さてここからは、とあるシステムでのうるう秒の影響を調査していて出てきた話です。
なんと「時計が逆戻りすると動作に問題が出るアプリケーション」がありました。
システム全体の窓口SE、パッケージを担当するSE、製品部門、お客様、いろんな立場の人と話しましたが、皆さんは「時計を逆戻りしないようにして」と簡単に言います。

でも、(うるう秒は関係なく)時計はずれるものです。
ずれる、時計を合わせる、ずれる、時計を合わせる。これを繰り返します。
時計をずれなくする魔法はありません。

対象のサーバーを調べましたが、数年運用してみて、時計のずれが多い時は10数秒程度でした。
NTPによる時刻同期を設定していれば、まあそんなもんでしょう。
Windowsでワークグループ環境なら、既定値ではずれが1秒を超えたら一気に時計を合わせます。
それ以内なら、時計を少し早目に進め(または少しゆっくりと進め)、徐々に時刻を補正します。

だからアプリケーションがシステム時計に対し、「時計を逆戻りしないように」を要求するのは現実的には無理な要求です。
時計を逆戻りしない範囲を、標準の1秒から、例えば5分とか10分に変更する事は出来ます。
それでも、その範囲を超えたら結局は一気に時計を戻します。
この範囲を極端な話、たとえば1日にしてもいいのですが、こんなにずれたら事実上いつまで待っても時計が合わないままになります。
(LinuxのSlewモードでは1秒の補正に2000秒。Windowsの補正度合は非公開)

Windowsの時刻同期のSlewモードとStepモードについては、この記事が参考になります。

http://blogs.technet.com/b/jpntsblog/archive/2012/12/28/slew-step.aspx
Windows Time サービス - Slew モードと Step モード - - Ask the Network & AD Support Team - Site Home - TechNet Blogs
http://blogs.technet.com/b/jpntsblog/archive/2013/02/28/step.aspx
絶対 step モードで時刻同期させたくない場合の設定方法について - Ask the Network & AD Support Team - Site Home - TechNet Blogs



以下、あるソフトウェアに対する愚痴です。

システム時計はハードウェアクロックと、OSの時刻同期の仕組みで動作します。
最近ではVMwareなどの仮想マシンが主流なので、さらにVMware ToolsによるESXiホストとの時刻同期なども加わり、時計合わせも複雑です。

最近調べたあるLinux仮想マシンは、予期せずにntpdが起動しない状態で運用され、数分も時計がずれていました。
ハード故障、人的ミス、ネットワーク障害、予期しないサービスの停止などで、時計が大きくずれる可能性はいつでもあります。

某パッケージソフトは「システム時計が進んでしまったら、実際の時刻(NTPサーバー)がそれに追い付くまでサービスを停止したままにし、時刻が追い付いたらサービスを開始する」が解決策として書かれていました。

これが何を意味するか分かりますか?
そう、こんな運用をしろって事です。
・時計が1時間ずれたら、1時間サービスを停止したままにする。
・時計が1日ずれたら、1日サービスを停止したままにする。
・時計が1か月ずれたら、1か月サービスを停止したままにする。

時刻同期が正常にできていればこんな事は無いのですが、予期しない障害で時計が大きく進んだら、長期間に渡って業務を停止しなければならない事になりますよね。
これは単なる「制限事項」では片づけられない、致命的で重大な不具合です。
よくこんな製品を世に出したと思う。これを知った時はショックで声も出なかった。
ほんと、改善して欲しい。

テーマ : Windows
ジャンル : コンピュータ

【メモ】Internet Explorerのプロキシ設定をグループポリシーで管理する

山市良さんの書いた記事です。

http://www.atmarkit.co.jp/ait/articles/1501/05/news008.html
その知識、ホントに正しい? Windowsにまつわる都市伝説(22):IEプロキシ設定はグループポリシーで管理できる? できない? (1/2) - @IT



今まで私は、グループポリシーを使用したクライアントPCの管理ってほとんどやっていません。
しかし最近はグループポリシーでInternet Explorer(以下:IE)の設定の管理が思うようにできない話をよく聞きます。

@ITの山市さんの記事を読むと、Internet Explorer管理者キット(IEAK)を使用しなくても、グループポリシーで何とか制御できるみたいですね。
しかし、記事がちょっと難しくて、読むのがつらい。。
機会があれば、必要になったら、これを読んで試してみます。

Active Directoryでユーザーアカウントを無効化した日時の属性があるか

ひょんなことから、Active Directoryでユーザーを無効化した日時が記録されるかを確認してみる事になりました。
結論としては、やはりActive Directoryのユーザーの属性に、無効化した日時の項目は無く、無効化した日時はわかりませんでした。

確認方法
  1. Windows Server 2012 R2ドメインコントローラーで、PowerShellのGet-ADUserコマンドレットを使ってユーザーアカウントの情報をエクスポート。
  2. 次にユーザーアカウントを無効化して、再度Get-ADUserコマンドレットを使ってユーザーアカウントの情報をエクスポート。
  3. さらに無効化されたユーザーアカウントを配置するOUを移動して、Get-ADUserコマンドレットでユーザーアカウントの情報をエクスポート。
  4. 3つのGet-ADUserの結果をExcelでセルごとに値を比較。
では結果を見てみましょう。
(写真1)Active Directoryのユーザー情報をGet-ADUserで比較
Active Directoryのユーザー情報をGet-ADUserで比較(1/3)
Active Directoryのユーザー情報をGet-ADUserで比較(2/3)
Active Directoryのユーザー情報をGet-ADUserで比較(3/3)
ユーザーアカウントを無効化するとEnabledがTRUEからFALSEに変化します。
これはまあ当然ですね。

Modified、modifyTimeStamp、whenChangedもユーザーアカウントを無効化した日時が記録されるんですが、あくまでも最終更新日時です。
無効化した後にユーザーを配置するOUを移動すると、これらの値もまた更新されます。
結果として、Active Directoryのユーザー情報の属性から、ユーザーアカウントを無効化した日時を後から知る事は出来なかったです。
まあ予想通りですが。

ユーザーアカウントを無効化すると、userAccountControlの値が66048から66050に変化します。
UserAccountControlはユーザーアカウントのオプション設定を表現するビットフラグです。

UserAccountControlの解説は、このサポート技術情報が参考に。

http://support.microsoft.com/kb/305144/ja
UserAccountControl フラグを使用して、ユーザー アカウントのプロパティを操作する方法


UserAccountControlの値を16進数で表現すると、こうなります。
無効化前:10200
無効化後:10202

上記のサポート技術情報によると、ACCOUNTDISABLEが0x0002です。
つまりユーザーアカウントが無効化されると、UserAccountControlに0x0002が加算されるわけですから、UserAccountControlが66048から66050に変化した原因はこれでした。
無効化された日時と関係はなさそうです。

uSNChangedは更新シーケンス番号のようです。
したがってこれもユーザーアカウントが無効化された日時とは関係ないですね。

uSNChangedについてはここで解説されています。

http://www-01.ibm.com/support/knowledgecenter/SSCQGF_7.1.1/com.ibm.IBMDI.doc_7.1.1/referenceguide11.htm
IBM Knowledge Center - Active Directory 変更検出コネクター



以下は参考です。
ユーザーアカウントを無効化したり、その後でユーザーを配置するOUを移動したりした時の画面のハードコピーです。

(写真2)ユーザーアカウントを無効化
ユーザーアカウントを無効化

(写真3)ユーザーアカウントを無効化後にOUを移動(1/3)
ユーザーアカウントを無効化後にOUを移動(1/3)

(写真4)ユーザーアカウントを無効化後にOUを移動(2/3)
ユーザーアカウントを無効化後にOUを移動(2/3)

(写真5)ユーザーアカウントを無効化後にOUを移動(3/3)
ユーザーアカウントを無効化後にOUを移動(3/3)

結果としては無効化した日を記録している属性は無いと言う事がわかりました。
無効化してから一定期間経過したユーザーを削除するなどを考えていたのですが、それは難しそうですね。
ユーザーのプロパティの説明の欄に、無効化した日付をメモとして書き込んでおくなどが現実的な対処法かもしれません。


【参考】
「Get-ADUser "TEST001" -Properties *」コマンドで、TEST001ユーザーの詳細情報を表示したところです。(続きを読む)

続きを読む

テーマ : Windows
ジャンル : コンピュータ

PowerShellのInvoke-WebRequestコマンドレットでWebサーバーの種類を調べる

MURAさんのブログは参考になる記事が多数あります。
これも面白かったです。

http://www.vwnet.jp/Windows/PowerShell/GetHttpServer.htm
PowerShell で Web Server の種類を調べる



PowerShellのInvoke-WebRequestコマンドレットで、httpサーバーの種類がわかるそうです。
Invoke-WebRequestを実行したら表示される、Serverの値を見ます。
実際にやってみました。

(写真1)Windows PowerShellのInvoke-WebRequestを実行した結果
Windows PowerShell
PS C:\> (Invoke-WebRequest www.vwnet.jp).Headers

Key                           Value
---                           -----
Content-Length                13229
Cache-Control                 private
Content-Type                  text/html
Date                          Sun, 10 May 2015 16:15:40 GMT
Set-Cookie                    ASPSESSIONIDSCCTATQD=CBBJAIIDNDJJPALPDNOIPFPN;...
Server                        Microsoft-IIS/8.5


PS C:\> (wget norimaki2000.blog48.fc2.com).Headers

Key                           Value
---                           -----
Transfer-Encoding             chunked
Connection                    keep-alive
X-FC2-Cache                   Use
Cache-Control                 must-revalidate
Content-Type                  text/html; charset=utf-8
Date                          Sun, 10 May 2015 16:15:41 GMT
Expires                       -1
ETag                          4cc16ab588d12124b105265b388ff14c
Last-Modified                 Sat, 09 May 2015 22:50:08 GMT
Set-Cookie                    bloguid=c7a1a432-04d8-401f-bef5-5968a954f008; ...
Server                        nginx/1.5.10
X-Powered-By                  PHP/5.3.3


PS C:\>
wgetはInvoke-WebRequestのエイリアスになっているので、どちらを使っても同じです。

上段の「www.vwnet.jp」は、MURAさんのWEBサイトです。
Serverには「Microsoft-IIS/8.5」と表示されているので、OSはWindows Server 2012 R2なんでしょうね。

下段は私が使っているFC2ブログのサイトです。
Serverには「nginx/1.5.10」と表示されています。
ごめんなさい。
私は「nginx」を知りませんでしたが、かなりメジャーなWEBサーバー製品なんですね。
ApacheとIISしか知りませんでした。

テーマ : Windows
ジャンル : コンピュータ

Windows Server 2012 R2に更新プログラムのロールアップを適用する(その2)

Windows Server 2012 R2を新規にインストールした後、インターネットに接続しない状況で更新プログラム(パッチ)を適用する方法を確認するために、いろいろ試してみました。

前回は某大手メーカーのサーバー向けに手配したWindows Server 2012 R2 Datacenterのインストール用DVD媒体で、2014年4月の更新プログラム、いわゆるWindows Server 2012 R2 Update (KB2919355)が適用済みの状態に対し、2014年5月から12月の更新プログラムのロールアップを順番にインストールしていきました。

今回は2014年4月の更新プログラムも何も適用されていない、素のWindows Server 2012 R2 Datacenterがインストールされた状態に対し、KB2919355(2014年4月の更新プログラム)および、その前提パッチであるKB2919442(2014年3月の更新プログラム)をコマンドで適用してみました。

(写真1)OS媒体でインストール直後の適用済みパッチ
OS媒体でインストール直後の適用済みパッチ
何一つパッチは適用されていません。きれいです。
Cドライブの使用量は約8.25GBです。

(写真2)更新プログラム適用のバッチファイルを実行開始
更新プログラム適用のバッチファイルを実行開始
パッチの適用を開始しました。

(写真3)更新プログラム適用のバッチファイルを実行終了
更新プログラム適用のバッチファイルを実行終了
パッチの適用が終わりました。

(写真4)OSを再起動した後
OSを再起動した後の画面
Systeminfoで見ると、以下の3つのパッチが適用されています。
KB2919355
KB2919442
KB2959977
Cドライブの使用量は約3GB増えて、約11.3GBになりました。
仮想マシンは1vCPU、メモリ2GBで40分少々かかっています。


ダウンロードするパッチや適用順などは、前回の記事を見てください。

http://norimaki2000.blog48.fc2.com/blog-entry-1392.html
徒然なるままに Windows Server 2012 R2に更新プログラムのロールアップを適用する(その1)



Windows Server 2012 R2のロールアップのインストール媒体のフォルダ構成
Q:\ロールアップ

├─2014-03
│      Windows8.1-KB2919442-x64.msu

└─2014-04
       clearcompressionflag.exe
       Windows8.1-KB2919355-x64.msu
       Windows8.1-KB2932046-x64.msu
       Windows8.1-KB2934018-x64.msu
       Windows8.1-KB2937592-x64.msu
       Windows8.1-KB2938439-x64.msu
       Windows8.1-KB2959977-x64.msu

Windows Server 2012 R2のロールアップをインストールするバッチファイルの例
@echo off
title Windows Server 2012 R2ロールアップの適用その1
color 3f
set TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set TEMPTIME2=%time: =0%
set TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%

echo Windows Server 2012 R2に2014年4月の更新プログラムを適用します
echo この適用によりWindows Server 2012 R2 Updateとなります
pause

SET LOGPATH=D:\パッチ適用その1-%TEMPDATE%-%TEMPTIME%
SET LOGFILE=%LOGPATH%\パッチ適用その1.log
MD %LOGPATH%
echo %date% %time% Windows Server 2012 R2ロールアップの適用その1開始
echo %date% %time% Windows Server 2012 R2ロールアップの適用その1開始 >>%LOGFILE%
echo %date% %time% ログは%LOGPATH%に保存されます。
systeminfo >%LOGPATH%\systeminfo適用前.log

echo on
echo %date% %time% 2014年03月分のサービススタック更新の適用開始
echo %date% %time% 2014年03月分のサービススタック更新の適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-03\Windows8.1-KB2919442-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201403.log
echo %date% %time% 2014年04月分のロールアップ適用開始
echo %date% %time% 2014年04月分のロールアップ適用開始 >>%LOGFILE%
Q:\ロールアップ\2014-04\clearcompressionflag.exe
timeout -t 3
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2919355-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2932046-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2959977-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2937592-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2938439-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log
wusa "Q:\ロールアップ\2014-04\Windows8.1-KB2934018-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201404.log

echo %date% %time% Windows Server 2012 R2ロールアップの適用その1終了
echo %date% %time% Windows Server 2012 R2ロールアップの適用その1終了 >>%LOGFILE%
systeminfo >%LOGPATH%\systeminfo適用後.log

ECHO ここから適用済みパッチのチェック >>%LOGFILE%

SET KBNO=KB2919355
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2919442
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2932046
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2959977
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2937592
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2938439
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

SET KBNO=KB2934018
TYPE %LOGPATH%\systeminfo適用後.log |find /i "%KBNO%"
IF %ERRORLEVEL%==0 (
    echo ■%KBNO%
    echo ■%KBNO% >>%LOGFILE%
) ELSE (
    echo □%KBNO%
    echo □%KBNO% >>%LOGFILE%
)

echo %date% %time% 再起動待ちです。(キャンセルする場合は×で閉じる)
echo %date% %time% 再起動待ちです。(キャンセルする場合は×で閉じる) >>%LOGFILE%
timeout /t 180
echo %date% %time% 再起動します。 >>%LOGFILE%
shutdown /r /t 60 /d p:2:17

テーマ : Windows
ジャンル : コンピュータ

Windows Server 2012 R2に更新プログラムのロールアップを適用する(その1)

Windows Server 2012 R2を新規にインストールした後、インターネットに接続しない状況で更新プログラム(パッチ)を適用する方法を確認するために、いろいろ試してみました。

今回は某大手メーカーのサーバー向けに手配したWindows Server 2012 R2 Datacenterのインストール用DVD媒体を使用しています。
これは2014年4月の更新プログラム、いわゆるWindows Server 2012 R2 Update (KB2919355)が適用済みの媒体でした。

Windows Server 2012 R2のオフラインパッチ適用についていろいろ調べてみたのですが、はっきりと明確に書かれている資料は見つけられませんでしたが、どうやらこんな感じでやっていけば良さそうです。
まずは下記の[1]を適用して、その後は[2]の各月のロールアップを順番に適用していきます。

[1]Windows Server 2012 R2 Updateの適用
・2014年3月のサービススタック更新プログラム(KB2919442)
・2014年4月の更新プログラムを適用(KB2919355)

[2]各月の更新プログラムのロールアップを適用
・2014年5月のロールアップ(KB2955164)
・2014年6月のロールアップ(KB2962409)
・2014年7月のロールアップ(KB2967917)
・2014年8月のロールアップ(KB2975719)
・2014年9月のロールアップ(KB2984006)
・2014年10月のロールアップ(KB2995388)
・2014年11月のロールアップ(KB3000850)
・2014年12月のサービススタック更新プログラム(KB3012199)
・2014年12月のロールアップ(KB3013769)

(写真1)OS媒体でインストール直後の適用済みパッチ
OS媒体でインストール直後の適用済みパッチ
コントロールパネル > プログラムと機能 > インストールされた更新プログラム

(写真2)OS媒体でインストール直後の適用済みパッチとCドライブの使用量
OS媒体でインストール直後の適用済みパッチとCドライブの使用量
systeminfoで見ても同じパッチが適用されていることがわかる。
役割も機能も何も追加せず、ページングファイルの設定も規定値のままの状態で、Cドライブの使用量は約9GB程度。

(写真3)更新プログラムをまとめた媒体をマウント
更新プログラムをまとめた媒体をマウント
上記で[2]に該当する更新プログラムをISOファイル化して、Windows Server 2012 R2ゲストにCD/DVD媒体として、Qドライブに割り当てた状態。

(写真4)更新プログラムの全容
更新プログラムの全容
これが上記[2]に該当する更新プログラムの全ハードコピー。
.msu形式のパッチが計23個で1.28GBもある。

(写真5)更新プログラム適用のバッチファイルを実行開始
更新プログラム適用のバッチファイルを実行開始
上記(写真3)の「パッチ適用まとめ.bat」を実行した画面。

(写真6)更新プログラム適用のバッチファイルを実行終了
更新プログラム適用のバッチファイルを実行終了
2014年12月のロールアップまで再起動無しでまとめて適用したら、ここで再起動。

(写真7)適用された更新プログラムの一覧
適用された更新プログラムの一覧
パッチ適用前は8個の更新プログラムがインストールされていたが、適用後は計27個になっている。

(写真8)適用後にWindows Updateをやってみる
適用後にWindows Updateをやってみる
2014年12月の更新プログラムロールアップまで適用済みでWindows Updateの更新をやってみると、重要な更新は39個で、計219.5MBが適用の対象となった。

(写真9)仮想マシンが1vCPUでメモリ1GBの場合
仮想マシンが1vCPUでメモリ1GBの場合
何度かやってみたが、Windows Server 2012 R2ゲストが1GBの場合は、パッチ適用に約5時間もかかる。

(写真10)仮想マシンが1vCPUでメモリ2GBの場合
仮想マシンが1vCPUでメモリ2GBの場合
何度かやってみたが、Windows Server 2012 R2ゲストが1GBの場合は、パッチ適用に約1時間10分程度で終わる。
やはりメモリ容量は重要だなと実感する時です。

パッチ適用後のCドライブ使用量は約14GBでした。
適用するパッチの.msuファイルは計1.28GBですが、実際にインストールすると5GBは必要になります。
パッチ適用後のCドライブ使用量は、正確には14.1GBから14.2GB程度で、やってみる度に多少のばらつきがあるようですが、その辺は気にしません。

Windows Server 2012 R2に対する更新プログラムのロールアップ適用については、この記事が参考になりそうです。
記事はWindows Storage Server 2012 R2に対して書かれていますが、Windows Server 2012 R2に対しても同じだと思います。

http://support.express.nec.co.jp/os/ws2012r2/update.html
iStorage NS シリーズ Windows Storage Server 2012 R2 に提供されるロールアップの扱いについて サポート情報 | NEC


Windows Server 2012 R2のロールアップのインストール媒体のフォルダ構成
Q:\ロールアップ

├─2014-05
│      Windows8.1-KB2955164-x64.msu

├─2014-06
│      Windows8.1-KB2955164-x64.msu
│      Windows8.1-KB2962409-x64.msu
│      Windows8.1-KB2973448-x64.msu

├─2014-07
│      Windows8.1-KB2967917-x64.msu

├─2014-08
│      Windows8.1-KB2975719-x64.msu
│      Windows8.1-KB2979582-x64.msu
│      Windows8.1-KB2990532-x64.msu
│      Windows8.1-KB2993100-x64.msu
│      Windows8.1-KB2993651-x64.msu
│      Windows8.1-KB2995004-x64.msu

├─2014-09
│      Windows8.1-KB2977174-x64.msu
│      Windows8.1-KB2984006-x64.msu
│      Windows8.1-KB2994897-x64.msu
│      Windows8.1-KB2995004-x64.msu

├─2014-10
│      Windows8.1-KB2995388-x64.msu
│      Windows8.1-KB2996799-v2-x64.msu

├─2014-11A
│      Windows8.1-KB3000850-x64.msu
│      Windows8.1-KB3003057-x64.msu
│      Windows8.1-KB3014442-x64.msu
│      Windows8.1-KB3016437-x64.msu

├─2014-11B
│      Windows8.1-KB3012199-x64.msu

└─2014-12
       Windows8.1-KB3013769-x64.msu

Windows Server 2012 R2のロールアップをインストールするバッチファイルの例
@echo off
title Windows Server 2012 R2ロールアップの適用
color 3f
set TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set TEMPTIME2=%time: =0%
set TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%
echo %TEMPDATE%-%TEMPTIME%

SET LOGPATH=D:\パッチ適用%TEMPDATE%-%TEMPTIME%
SET LOGFILE=%LOGPATH%\パッチ適用.log
MD %LOGPATH%
echo %date% %time% Windows Server 2012 R2ロールアップの適用開始
echo %date% %time% Windows Server 2012 R2ロールアップの適用開始 >>%LOGFILE%
echo %date% %time% ログは%LOGPATH%に保存されます。

echo on
echo %date% %time% 2014年05月分のロールアップ適用開始
echo %date% %time% 2014年05月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-05\Windows8.1-KB2955164-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201405.log
echo %date% %time% 2014年06月分のロールアップ適用開始
echo %date% %time% 2014年06月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-06\Windows8.1-KB2955164-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201406.log
wusa "Q:\ロールアップ\2014-06\Windows8.1-KB2962409-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201406.log
wusa "Q:\ロールアップ\2014-06\Windows8.1-KB2973448-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201406.log
echo %date% %time% 2014年07月分のロールアップ適用開始
echo %date% %time% 2014年07月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-07\Windows8.1-KB2967917-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201407.log
echo %date% %time% 2014年08月分のロールアップ適用開始
echo %date% %time% 2014年08月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2975719-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2979582-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2990532-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2993100-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2993651-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
wusa "Q:\ロールアップ\2014-08\Windows8.1-KB2995004-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201408.log
echo %date% %time% 2014年09月分のロールアップ適用開始
echo %date% %time% 2014年09月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-09\Windows8.1-KB2977174-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201409.log
wusa "Q:\ロールアップ\2014-09\Windows8.1-KB2984006-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201409.log
wusa "Q:\ロールアップ\2014-09\Windows8.1-KB2994897-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201409.log
wusa "Q:\ロールアップ\2014-09\Windows8.1-KB2995004-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201409.log
echo %date% %time% 2014年10月分のロールアップ適用開始
echo %date% %time% 2014年10月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-10\Windows8.1-KB2995388-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201410.log
wusa "Q:\ロールアップ\2014-10\Windows8.1-KB2996799-v2-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201410.log
echo %date% %time% 2014年11月分のロールアップ適用開始
echo %date% %time% 2014年11月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-11A\Windows8.1-KB3000850-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201411A.log
wusa "Q:\ロールアップ\2014-11A\Windows8.1-KB3003057-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201411A.log
wusa "Q:\ロールアップ\2014-11A\Windows8.1-KB3014442-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201411A.log
wusa "Q:\ロールアップ\2014-11A\Windows8.1-KB3016437-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201411A.log
echo %date% %time% 2014年12月分のサービススタック更新の適用開始
echo %date% %time% 2014年11月分のロールアップ適用後にこれを適用する
echo %date% %time% 2014年12月分のサービススタック更新の適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-11B\Windows8.1-KB3012199-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201411B.log
echo %date% %time% 2014年12月分のロールアップ適用開始
echo %date% %time% 2014年12月分のロールアップ適用開始 >>%LOGFILE%
wusa "Q:\ロールアップ\2014-12\Windows8.1-KB3013769-x64.msu" /quiet /norestart /log:%LOGPATH%\wusa-201412.log

echo %date% %time% Windows Server 2012 R2ロールアップの適用終了
echo %date% %time% Windows Server 2012 R2ロールアップの適用終了 >>%LOGFILE%
echo %date% %time% 再起動待ちです。(キャンセルする場合は×で閉じる)
echo %date% %time% 再起動待ちです。(キャンセルする場合は×で閉じる) >>%LOGFILE%
timeout /t 180
echo %date% %time% 再起動します。 >>%LOGFILE%
shutdown /r /t 60 /d p:2:17


ダウンロードするWindows Server 2012 R2の更新プログラムはこちらです。
探してはいるんですが、今のところ2015年以降のロールアップは見つかりませんでした。

[1]Windows Server 2012 R2 Updateの適用

http://support.microsoft.com/kb/2919442/ja
Windows RT 8.1、8.1 の Windows、および Windows Server 2012 の R2 は、サービス スタック更新プログラム: 2014 年 3 月
http://support.microsoft.com/kb/2919355/ja
Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の更新プログラム: 2014 年 4 月


[2]各月の更新プログラムのロールアップを適用

http://support.microsoft.com/kb/2955164/ja
Windows RT 8.1、 Windows 8.1、および Windows Server 2012 R2 用の2014年5月の更新プログラム ロールアップ
http://support.microsoft.com/kb/2962409/ja
Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 用の2014年 6 月の更新プログラムのロールアップ
http://support.microsoft.com/kb/2967917/ja
Windows RT 8.1、8.1 の Windows、および Windows Server 2012 の R2 用の更新プログラムのロールアップ 2014年 7 月
http://support.microsoft.com/kb/2975719/ja
Windows RT 8.1、Windows 8.1 および Windows Server 2012 R2 用の 2014 年 8 月付け更新プログラムのロールアップ
http://support.microsoft.com/kb/2984006/ja
Windows RT 8.1、8.1 の Windows、および Windows Server 2012 の R2 用の更新プログラムのロールアップ 2014年 9 月
http://support.microsoft.com/kb/2995388/ja
Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の更新プログラムのロールアップ 2014 年 10 月
http://support.microsoft.com/kb/3000850/ja
Windows RT 8.1、Windows 8.1 および Windows Server 2012 R2 用の 2014 年 11 月付け更新プログラムのロールアップ
http://support.microsoft.com/kb/3012199/ja
サービス スタック更新プログラム Windows 8.1 と R2 の Windows Server 2012 年 12 月 2014
http://support.microsoft.com/kb/3013769/ja
2014 年 12 月公開の Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の更新プログラムのロールアップ


テーマ : Windows
ジャンル : コンピュータ

Windows Server 2008 R2でActive Directory関連のPowerShellコマンドレットを使用する

最近は実際の業務でもWindows Server 2012 R2を利用する機会が増えているので、日ごろから努めてWindows Server 2012 R2を使用するようにしています。
その状態でWindows Server 2008 R2に戻ると戸惑う事も多々あります。

今日ハマったのはこれ。

Windows Server 2008 R2ドメインコントローラーでPowerShellのコマンド画面を起動して、「Get-Command Get-AD*」を実行しても、Active Directory関連のコマンドレットが何も表示されない。
うーんと、何かモジュールのインポートが必要だったような気がするが、思い出せない。

(写真1)Import-Module ActiveDirectoryを実行
Import-Module ActiveDirectoryを実行
正解はこれですね。
普通のPowerShellのコマンド画面を起動したら、Import-Module ActiveDirectoryを実行しなければなりません。
すると「Get-Command Get-AD*」で、Active Directory関連のコマンドレットが表示されます。

(写真2)管理ツールからWindows PowerShell 用の Active Directory モジュールを実行
管理ツールからWindows PowerShell 用の Active Directory モジュールを実行
またはこの方法でもOKです。
管理ツールから「Windows PowerShell 用の Active Directory モジュール」を実行すると、Active Directory関連のモジュールがインポートされた状態でPowerShellのコマンド画面が起動します。

コマンドレットの実行例
Get-ADForest |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADForest.csv
Get-ADDomain |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADDomain.csv
Get-ADDomainController -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADDomainController.csv
Get-ADComputer -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADComputer.csv
Get-ADGroup -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADGroup.csv
Get-ADOptionalFeature -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADOptionalFeature.csv
Get-ADOrganizationalUnit -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADOrganizationalUnit.csv
Get-ADRootDSE |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADRootDSE.csv
Get-ADUser -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADUser.csv

テーマ : Windows
ジャンル : コンピュータ

VMware vSphere 6.0のリリース

先月の事になりますが、日本時間で2015/3/13にVMware ESXi 6.0及びvCenter Server 6.0のダウンロード公開が始まりました。
当然ですが、もう日本語のリリースノートも出ています。

https://www.vmware.com/jp/support/support-resources/pubs/vsphere-esxi-vcenter-server-6-pubs/vsphere-esxi-vcenter-server-60-release-notes.html
VMware vSphere 6.0 リリース ノート | VMware 日本


例によってリリースノートには新機能・機能強化は書かれていません。
新機能・機能強化についてはJapan Cloud Infrastructure Blogに掲載されているので、そちらを見てください。

http://blogs.vmware.com/jp-cim/2015/03/vmware-vsphere-6-0-%E6%96%B0%E6%A9%9F%E8%83%BD%E3%81%AE%E6%A6%82%E8%A6%81%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
速報!VMware vSphere 6.0 新機能の概要 | Japan Cloud Infrastructure Blog - VMware Blogs



ここではゲストOSおよびCPUのサポート状況などを確認します。
例によって主にVMware Compatibility Guideを参照します。

■ゲストOSのサポート
VMware ESXi 5.0から6.0までの、各最終Updateについて比較します。

http://www.vmware.com/resources/compatibility/search.php?deviceCategory=software&testConfig=16
VMware Compatibility Guide: Guest/Host Search > Guest OS


WindowsゲストOS
ゲストOS
VMware ESXi 6.0
VMware ESXi 5.5 U2
VMware ESXi 5.1 U3VMware ESXi 5.0 U3
Windows 10 Technical PreviewTech PreviewTech Preview
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2SP1以降をサポートSP1以降をサポート
Windows Server 2008SP2以降をサポートSP2以降をサポートSP2以降をサポートSP2以降をサポート
Windows Server 2003 R2SP2以降をサポートSP2以降をサポートSP2以降をサポートSP2以降をサポート
Windows Server 2003SP2以降をサポートSP2以降をサポートSP2以降をサポートSP2以降をサポート
Windows 2000SP4以降をサポートSP4以降をサポートSP4以降をサポートSP4以降をサポート
Windows NT 4.0SP6aを非推奨サポートSP6aをサポート

Red Hat Enterprise LinuxゲストOS
ゲストOS
VMware ESXi 6.0
VMware ESXi 5.5 U2
VMware ESXi 5.1 U3VMware ESXi 5.0 U3
RHEL 7.xRHEL 7.0以上をサポートRHEL 7.0以上をサポートRHEL 7.0以上をサポート
RHEL 6.xRHEL 6.1以上をサポートRHEL 6.1以上をサポートRHEL 6.0以上をサポートRHEL 6.0以上をサポート
RHEL 5.xRHEL 5.6以上をサポートRHEL 5.6以上をサポートRHEL 5.2以上をサポートRHEL 5.2以上をサポート
RHEL 4.xRHEL 4.9をサポートRHEL 4.9をサポートRHEL 4.5以上をサポートRHEL 4.5以上をサポート
RHEL 3.xRHEL 3.0 Update 9を非推奨サポートRHEL 3.0 Update 9を非推奨サポートRHEL 3.0 Update 9をサポートRHEL 3.0 Update 9をサポート
RHEL 2.xRHEL 2.1 Update 7を非推奨サポートRHEL 2.1 Update 7をサポート

VMware ESXi 6.0でサポートされるゲストOSは、同5.5とほぼ同じです。
唯一違うのは、5.5ではWindows Server 2008 R2のサービスパック無しがサポートされるが、6.0ではWindows Server 2008 R2 SP1以降がサポートされるが、まあこれは実質ほとんど影響ないでしょう。

■CPUのサポート
ここでいくつかのサーバー機種について見てみました。

http://www.vmware.com/resources/compatibility/search.php?deviceCategory=server
VMware Compatibility Guide: System Search > Systems / Servers


インテルCPUシリーズVMware ESXi 6.0
VMware ESXi 5.5 U2
VMware ESXi 5.1 U3VMware ESXi 5.0 U3
Xeon E7-8800シリーズ
Xeon E7-4800シリーズ
Xeon E7-2800シリーズ
Xeon E5-2600-v3シリーズ
Xeon E5-2600-v2シリーズ
Xeon E5-2600シリーズ
Xeon E5-2400-v2シリーズ
Xeon E5-2400シリーズ
Xeon 7500シリーズ
Xeon 7400シリーズ
Xeon 5600シリーズ
Xeon 5500シリーズ

先ほど2015/4/5 17:45頃にVMware Compatibility Guideで調べた結果です。
ただしVMwareはCPUをサポートするのではなく、CPUを搭載したサーバーの機種(型番)をサポートします。
詳しくはVMware Compatibility Guideでサーバーのメーカーや型番を確認してください。
あるいはサーバーメーカーの情報を確認してください。

■vCenter ServerをサポートするWindows Server
ここでvCenter ServerでサポートされるWindows Serverを確認します。
これはVMware Compatibility Guideではなく、サポート技術情報に掲載されています。

http://kb.vmware.com/kb/2091273
VMware KB: Supported host operating systems for VMware vCenter Server installation (including vCenter Update Manager and vRealize Orchestrator)


Windows Serevr
vCenter Server 6.0
vCenter Servcer 5.5 U2
vCenter Server 5.1 U3vCenter Server 5.0 U3
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2
Windows Server 2008SP2をサポートSP2をサポートSP1以降をサポートSP1以降をサポート
Windows Server 2003 R2SP1以降をサポートSP1以降をサポート
Windows Server 2003SP2以降をサポートSP2以降をサポート


■vCenter Serverをサポートするデータベース
ここでvCenter Serverでサポートされるデータベースを確認します。
これはVMware Compatibility Guideではなく、VMware Product Interoperability Matrixesで調べます。

http://partnerweb.vmware.com/comp_guide2/sim/interop_matrix.php
VMware Product Interoperability Matrixes

Microsoft SQL Server
Microsoft SQL ServervCenter Server 6.0vCenter Servcer 5.5 U2
vCenter Server 5.1 U3vCenter Server 5.0 U3
SQL Server 2014 Enterprise - 64-bit
SQL Server 2014 Standard - 64-bit
SQL Server 2012 Enterprise (SP2) - 64 bit
SQL Server 2012 Standard (SP2) - 64 bit
SQL Server 2012 Express (SP2) - 64 bit
SQL Server 2012 Enterprise (SP1) - 64 bit
SQL Server 2012 Standard (SP1) - 64 bit
SQL Server 2012 Express (SP1) - 64 bit
SQL Server 2012 Enterprise - 64-bit
SQL Server 2012 Standard - 64-bit
SQL Server 2008 Enterprise (R2 SP3) - 64-bit
SQL Server 2008 Standard (R2 SP3) - 64-bit
SQL Server 2008 Express (R2 SP3) - 64-bit
SQL Server 2008 Data Center (R2 SP2) - 64-bit
SQL Server 2008 Enterprise (R2 SP2) - 64-bit
SQL Server 2008 Standard (R2 SP2) - 64-bit
SQL Server 2008 Express (R2 SP2) - 64-bit
SQL Server 2008 Datacenter (R2 SP1) - 64-bit
SQL Server 2008 Enterprise (R2 SP1) - 64-bit
SQL Server 2008 Standard (R2 SP1) - 64-bit
SQL Server 2008 Express (R2 SP1) - 64-bit
SQL Server 2008 Datacenter (R2) - 64-bit
SQL Server 2008 Enterprise (R2) - 64-bit
SQL Server 2008 Standard (R2) - 64-bit
SQL Server 2008 Express (R2) - 64-bit
データベースの名称はVMware Product Interoperability Matrixesに従っています。
SQL Server 2008 R2以降の64ビット版だけを抽出しています。

Oracle Database
Oracle DatabasevCenter Server 6.0vCenter Servcer 5.5 U2
vCenter Server 5.1 U3vCenter Server 5.0 U3
Oracle 12C Enterprise Edition, Release 1 [12.1.0.1.0] - 64-bit
Oracle 12C Standard Edition, Release 1 [12.1.0.1.0] - 64-bit
Oracle 12C Standard ONE Edition, Release 1 [12.1.0.1.0] - 64-bit
Oracle 11g Enterprise Edition, Release 2 11.2.0.4 - 64 bit
Oracle 11g Standard Edition, Release 2 11.2.0.4 - 64 bit
Oracle 11g Standard ONE Edition, Release 2 [11.2.0.4] - 64 bit
Oracle 11g Enterprise Edition, Release 2 [11.2.0.3] - 64 bit
Oracle 11g Standard Edition, Release 2 [11.2.0.3] - 64 bit
Oracle 11g Standard ONE Edition, Release 2 [11.2.0.3] - 64 bit
Oracle 11g Enterprise Edition, Release 2 [11.2.0.1] - 64 bit
Oracle 11g Standard Edition, Release 2 [11.2.0.1] - 64 bit
Oracle 11g Standard ONE Edition, Release 2 [11.2.0.1] - 64 bit
データベースの名称はVMware Product Interoperability Matrixesに従っています。
Oracle Database 11g R2以降の64ビット版だけを抽出しています。

テーマ : VMware
ジャンル : コンピュータ

SQL Serverが使用するCPUをaffinity maskとaffinity I/O maskを使って制限する

とある事でSQL Serverが使用するCPU数またはCPU使用率を制限する方法を調べる必要がありました。
アプリケーションのつくりに問題があるのが原因だと思うのだけど、CPU使用率100%の状態が長く続き、その結果サーバーのOSが不安定になり、業務に支障が出てしまう状況。
それならいっそSQL Serverが使用するCPU数(またはCPU使用率)を制限して、OSやその他のアプリケーションが動作する余裕を確保するのが目的。
その分SQL Serverのスループットが落ちるかもしれないが、OSが停止するほど不安定になるよりは遥かにマシなので。

いろいろ調べると、SQL Server 2008以降では、リソースガバナーと呼ばれる機能があるので、それを使用するのがいいみたい。
しかしリソースガバナーはSQL Server Enterpriseエディション以上で使用できる機能のため、Standardエディションでは使用できない。

そのため今回はaffinity maskとaffinity I/O maskと呼ばれる機能を使用して、SQL Serverが使用するCPUをマスクして制限する方法を試してみた。

(写真1)SQL Server Management Studioでサーバーのプロパティ
Management Studioでサーバーのプロパティを表示
薄いグレーでプロセッサ数が4と表示されているが、これは変更できない。

(写真2)SQL Server Management Studioでプロセッサの規定値
affinity maskの既定値
既定値では以下の2つのチェックボックスがオンになっている。
「すべてのプロセッサに対して自動的にプロセッサ関係マスクを設定する」
「すべてのプロセッサに対して自動的に I/O 関係マスクを設定する」

(写真3)プロセッサの設定が規定値でのCPU負荷をかけた状態その1
affinity mask既定値での負荷その1
既定値の設定のまま、CPUをひたすら使用する処理を多重度を上げて実行すると、当然だけど4CPUのすべてが100%の状態になる。(この例では6多重)

(写真4)プロセッサの設定が規定値でのCPU負荷をかけた状態その2
affinity mask既定値での負荷その2
タスクマネージャーでプロセスを見ると、sqlserver.exeが70%から80%程度を使用している。
その他のプロセスを足すと、計100%程度となる。

(写真5)SQL Server Management Studioでプロセッサをマスクする
affinity maskの設定を変更
「すべてのプロセッサに対して自動的に~」の2つのチェックを外し、手動でCPUのマスクを設定します。
今回は以下のように設定した。
  プロセッサ関係 I/O関係
CPU0   ■     □
CPU1   ■     □
CPU2   □     ■
CPU3   □     □

SQL ServerによるディスクI/O処理のみCPU2に割り当て、SQL Serverのそれ以外の処理はCPU0とCPU1に割り当てた。
CPU3はSQL Server以外のために空けておく設定とした。

(写真6)プロセッサをマスクした上でCPU負荷をかけた状態その1
affinity mask変更後の負荷その1
SQL ServerでCPUに負荷をかける処理を6多重で実行しても、今回はタスクマネージャーでは左側2つのCPUだけが100%になっている。
右側2つのCPUも思ったよりも使用率が上がっているが、それでも4CPU全体では使用率が65%程度に収まっている。

(写真7)プロセッサをマスクした上でCPU負荷をかけた状態その2
affinity mask変更後の負荷その2
タスクマネージャーでプロセスを見ると、sqlserver.exeはちょうど50%になっている。

今回の検証環境は
Windows 8.1 Hyper-Vホスト
Windows Server 2008 R2 SP1ゲスト(4CPU、メモリ2GB)
SQL Server 2008 R2(サービスパック無し)

CPUに負荷をかけるために実行したコマンド
SQLCMD
DECLARE @i int = 0
WHILE (0=0)
SET @i += 1
GO


今回はこんな感じでSQL Serverが使用するCPUを制限する事が出来た。
affinity maskが「プロセッサ関係」で、affinity I/O maskが「I/O関係」を意味している。

SQL ServerのCPUマスク機能を使用する場合、affinity maskとaffinity I/O maskを同じCPUに割り当てる事は「絶対にやってはいけない」らしい。(後述のSQL Server Japan Support Team Blogの記事を参照)
私が試した限りでは、SQL Server 2008 R2のManagement StudioのGUIではaffinity maskとaffinity I/O maskの両方を同じCPUに割り当てる事は出来なかったけど。

また同じくSQL Server Japan Support Team Blogの記事によると、affinity I/O maskはaffinity maskと共に使用する事とか、これらの設定は特殊な操作で高度なオプションであるなどの注意もあります。
テスト環境で十分な検証を行ったうえで本番環境に適用する必要があります。

リソースガバナーに関する参考情報

https://msdn.microsoft.com/ja-jp/library/bb933866%28v=sql.105%29.aspx
リソース ガバナを使用した SQL Server ワークロードの管理
https://msdn.microsoft.com/ja-jp/library/cc645993%28v=sql.105%29.aspx
SQL Server 2008 R2 の各エディションがサポートする機能


CPUマスクに関する参考情報

https://technet.microsoft.com/ja-jp/library/ms186255%28v=sql.105%29.aspx
関係マスクを構成する方法 (SQL Server Management Studio)
https://technet.microsoft.com/ja-jp/library/ms187104%28v=sql.105%29.aspx
affinity mask オプション
https://technet.microsoft.com/ja-jp/library/ms189629%28v=sql.105%29.aspx
affinity I/O mask オプション
http://blogs.msdn.com/b/jpsql/archive/2012/02/27/do-s-amp-dont-s-14-cpu-affinity-mask-affinity-i-o-mask-on.aspx
DO’s&DONT’s #14: 絶対にやってはいけないこと - ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする - Microsoft SQL Server Japan Support Team Blog - Site Home - MSDN Blogs


例によっていつも頼りになるムッシュのブログです。
これではPROCESS AFFINITYと呼ばれる機能でSQL Serverが使用するCPUをマスクしています。
また今回私が使用したCPUに負荷をかけるコマンドは、この記事にコピペです(^^ゞ

http://blog.engineer-memo.com/2012/02/05/sql-server-%E3%81%AE-process-affinity-%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
SQL Server の PROCESS AFFINITY の設定について at SE の雑記

テーマ : データベース
ジャンル : コンピュータ

新しい携帯電話「N-07E」その2

携帯電話が新しい機種、NECのN-07Eに変わってから気付いたこと。

(写真1)N-07Eで添付テキストファイルを表示
N-07Eで添付テキストファイルを表示

この写真は、iモードメールに添付されている、サービス起動のチェック結果を記録したテキストファイルを表示しているところ。
今まではサービス起動チェックでNGがあったり、PINGチェックでNGがあった時にアラートメールが送られてくると、会社のネットワークにVPN接続して確認する必要があったが、携帯電話で受け取るiモードメールの添付ファイルで直接確認できるようになったので少し便利になったかな。

液晶画面は今までのN-06Bは240×427ドット、新しいN-07Eは480ドット×854ドットと、大幅に解像度が向上したので出来るようになったんですね。

テーマ : 携帯電話
ジャンル : 携帯電話・PHS

新しい携帯電話「N-07E」

いわゆる機種交換です。

(写真1)新しく配布されたNECのN-07E
新しい携帯電話N-07E

昨日2015/4/1に、会社の携帯電話が新しい機種に交換されました。
今までがN-06Bで、新しいのがN-07E。
そう、ガラケーからガラケーへの入れ換えです。
大きさは少し大きくなった程度だけど、重さが104gから120gに大増量。
機能アップはいらんから小型軽量薄型にこだわって欲しかった。

液晶画面の解像度が240×427ドットから480ドット×854ドットに。
カメラが510万画素から810万画素へ。
無線LAN機能無しが、IEEE802.11b/g/nへの対応ありに。
ガラケーに高機能を求めるニーズがあるのかな。
小型軽量薄型のニーズはあると思うんだけど。

参考までに、前回の機種交換はこれだった。

http://norimaki2000.blog48.fc2.com/blog-entry-1083.html
徒然なるままに > 新しい携帯電話「N-06B」



会社で使用している携帯電話の変遷
N-07E - 2013年10月モデル
N-06B - 2010年6月モデル
N703iμ - 2007年2月モデル
N211i - 2001年12月モデル
N502it - 2000年9月モデル
(これ以前は覚えていない)

テーマ : 携帯電話
ジャンル : 携帯電話・PHS

PowerShellのSet-ADUserコマンドレットでActive Directoryのユーザーの有効期限を変更する

以前はPowerShellのGet-ADUserコマンドレットでActive Directoryのユーザー情報を取得したり、New-ADUserでユーザーを登録したりしました。
今回はSet-ADUserコマンドレットで、ユーザーアカウントの有効期限を変更してみます。
環境はWindows Server 2012 R2のドメインコントローラーです。

なお、Get-ADUser、New-ADUser、Set-ADUserの各コマンドレットで、ユーザーアカウントの有効期限のオプションは「AccountExpirationDate」です。

(写真1)有効期限変更前のユーザーのプロパティ
有効期限変更前のユーザーのプロパティ
test01.localドメインのユーザー「TEST001」は、Active DirectoryユーザーとコンピューターのGUIで見ると、アカウントの有効期限が2015/2/28までとなっています。

(写真2)有効期限によってユーザーを抽出
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate」で、アカウントの有効期限が2015/12/31と同じか、それよりも短いユーザーを抽出します。
AccountExpirationDateが2015/12/31、2015/3/1ではTEST001はヒットします。
しかし2015/2/28だとヒットしません。ちょっと不思議です。
Active Directoryユーザーとコンピューターでは有効期限が2015/2/28なのに。

ここではパイプで「Format-Table」に送って、プロパティの中から「Name,Enabled,AccountExpirationDate」を選択して表示しています。
しかし肝心のAccountExpirationDateが何も表示されない理由はよくわかりません。

(写真3)有効期限変更前のユーザーの詳細情報
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *


AccountExpirationDate                : 2015/03/01 0:00:00
accountExpires                       : 130696092000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0
~以下略~
「Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *」を実行すると、有効期限が2015/3/1と同じかそれよりも短いユーザーの詳細な情報がリスト形式で表示されます。
AccountExpirationDateを見ると、「2015/03/01 0:00:00」になっています。
ああ、そう言う事ね。だから2015/2/28ではヒットしないのね。

(写真4)ユーザーアカウントの有効期限を変更

管理者:Windows PowerShell
PS C:\> Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"
PS C:\>
「Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"」を実行すると、TEST0001のアカウントの有効期限が2015/12/31に変更されます。
PowerShellのコマンド画面には何も反応がないのが淋しいです。

(写真5)有効期限によってユーザーを抽出

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
再度Get-ADUserでユーザーを抽出してみます。
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"}」だとTEST001がヒットしますが、2015/3/1や2015/2/28ではヒットしません。
想定通りです。

(写真6)有効期限変更後のユーザーの詳細情報

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *


AccountExpirationDate                : 2015/12/31 0:00:00
accountExpires                       : 130959612000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0

~以下略~
Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *」を実行すると、TEST001の詳細情報が表示されます。
AccountExpirationDateの値は何故か2015/12/31 0:00:00になっています。

(写真7)有効期限変更後のユーザーのプロパティ
有効期限変更後のユーザーのプロパティ
Active Directoryユーザーとコンピューターで有効期限を設定し、Get-ADUserでAccountExpirationDateを見ると翌日の0:00:00がセットされます。
しかしSet-ADUserでAccountExpirationDateを設定すると、当日の0:00:00がセットされます。
うーん、この辺の仕様はちょっと謎ですが。
こんな感じでSet-ADUserコマンドレットを使ってアカウントの有効期限を設定する事が出来ました。



以下参考

有効期限の変更前に、いつものおまじないのようなコマンドで、Active Directoryのユーザー情報をCSV形式にエクスポートしてみました。

(写真8)Active Directoryユーザーの情報をCSV形式にエクスポート
管理者:Windows PowerShell
PS C:\> Get-ADUser -Properties * -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\ADUSER.csv
PS C:\>

(写真9)ADUSER.csvをExcelで開いてみた
ADUSER.csvをExcelで開いてみた

(写真10)ADUSER.csvをテキストエディタで開いてみた
ADUSER.csvをテキストエディタで開いてみた

Active Directoryユーザーとコンピューターでアカウントの有効期限が「2015/2/28」となっている時に、Active Directoryのユーザー情報をGet-ADUserでCSV形式にエクスポートし、念のためAccountExpirationDateの値をTeraPadやExcelで見てみました。
しかし間違いなく「2015/03/01 0:00:00」が入っていました。
GUIから有効期限を設定すると、内部的には翌日の0:00:00とセットされるんですね。
しかしSet-ADUserで有効期限を設定すると、その日の0:00:00がセットされるのは謎仕様ですが、まあその辺は良しとします。

テーマ : Windows
ジャンル : コンピュータ

Windows 7のメインストリームサポートが終了しました

Windows 7のメインストリームサポートが終了しました。

(写真1)Windows 7のサポートライフサイクル
Windows 7のサポートライフサイクル

Windows 7は、米国時間で2015/1/13、日本時間で2015/1/14にメインストリームが終了し、延長サポートのフェーズに入りました。
これからは基本的にセキュリティ更新のアップデートのみとなり、新機能提供やバグ吸収などもなくなります。

そして2020年1月には延長サポートも終了し、すべてのサポートが終了します。
OSのバージョンアップは計画的に。

http://cloud.watch.impress.co.jp/docs/news/20150114_683742.html
Windows 7」のメインストリームサポートが本日終了 - クラウド Watch
http://support2.microsoft.com/lifecycle/?c2=14019
マイクロソフト プロダクト サポート ライフサイクル > Windows 7

テーマ : Windows
ジャンル : コンピュータ

Windows 7とWindows XPのログオン画面

最近、ある手順書作成でWindows 7とWindows XPのログオン画面のハードコピーが必要になったので、検証環境で採取しました。
画像をクリックすると800×600ドットのPNG形式が表示されるので、もし必要であれば自由に使ってください。

(写真1)Windows 7のログオン画面
Windows 7のログオン画面(その1)
「ログオンするには Ctrl + Alt + Del を押してください。」 の画面。

(写真2)Windows 7のログオン画面
Windows 7のログオン画面(その2)
Ctrl+Alt+Delを押して、前回ログオンしたユーザー名が表示されている画面。

(写真3)Windows 7のログオン画面
Windows 7のログオン画面(その3)
Ctrl+Alt+Delを押して、前回ログオンしたユーザー名と、「他のユーザー」のアイコンが表示されている画面。

(写真4)Windows 7のログオン画面
Windows 7のログオン画面(その4)
Ctrl+Alt+Delを押して、ユーザー名とパスワードを入力するテキストボックスが空白で表示されている画面。

(写真5)Windows XPのログオン画面
Windows XPのログオン画面(その1)
「Ctrl+Alt+Del キーを押して開始してください。」の画面。

(写真6)Windows XPのログオン画面
Windows XPのログオン画面(その2)
Ctrl+Alt+Delを押して、ユーザー名とパスワードを入力するテキストボックスが表示されている画面。

(写真7)Windows XPのログオン画面
Windows XPのログオン画面(その3)
Ctrl+Alt+Delを押して、ユーザー名とパスワードを入力するテキストボックスが表示されている画面。
ドメインに参加して「このコンピュータ」を選んでいる状態。

(写真8)Windows XPのログオン画面
Windows XPのログオン画面(その4)
Ctrl+Alt+Delを押して、ユーザー名とパスワードを入力するテキストボックスが表示されている画面。
ドメインに参加して、ログオン先にドメインを選んでいる状態。

(写真9)Windows XPのセットアップ開始画面
Windows XPのセットアップ開始画面
これはおまけの画像。
前記のログオン画面のハードコピーを採取するためだけに、Windows XPをインストールしてしまった。
さすがにインストーラーが原始的過ぎて戸惑ってしまった。

テーマ : Windows
ジャンル : コンピュータ

Windows転送ツールの起動には管理者権限が必要

Windows転送ツールの起動には管理者権限が必要なんですね。
Windows 7とWindows 8.1で試したけど同じでした。

(写真1)Windows 7 SP1の場合
Windows 7 SP1の場合

(写真2)Windows 8.1の場合
Windows 8.1の場合

Usersグループのユーザーで実行すると、以下のメッセージで終了してしまいます。
エンドユーザーがUsers権限で実行する事は出来ないのか。
ちょっと残念。

標準アカウントで Windows 転送ツールを開くことはできません。
管理者として PC にログオンしてから、再試行してください。

テーマ : Windows
ジャンル : コンピュータ

ヤマハのブロードバンドルーターNVR500のセットアップ中

ヤマハのブロードバンドルーターNVR500をセットアップ中です。
しかもなんとISDNを使って2拠点のLAN間接続を行います。
10年以上前には結構やっていましたが、こんなの本当に久しぶりです。

(写真1)NVR500の設定画面にWEBログインしたメインメニュー
NVR500の設定画面にWEBログインしたメインメニュー

(写真2)ISDNによるLAN間接続の場合はこれを指定する
ISDNによるLAN間接続の場合はこれを指定する

最初はメインメニューの一番上にある「プロバイダ情報の設定」をやっていたのですが、これではどうしても2台のNVR500で接続するような設定項目が出てこない。
何時間か悩んでやって気づきました。
これですね。
詳細情報と設定 > 基本接続の詳細な設定 > ISDN回線によるネットワーク型LAN間接続

悪戦苦闘して、現在は何とか2台のNVR500でISDN回線を通じて接続し、PINGレベルの通信確認ができた状態です。
来週はリモート拠点からISDN回線を通じて、vCenter Serverやリモートデスクトップ接続の確認作業を行います。

過去メールを見てみると、2003年ごろまではRT57iで同じような事をやっていました。
ISDNルーターであるNVR500は、今となっては貴重な存在かも。
(実際にはこれをNECがOEMしているIP38X/N500を使っています)

テーマ : ネットワーク
ジャンル : コンピュータ

Visual StudioとSQL ServerとWindowsのバージョンごとのサポート期間年表(Excelファイルあり)

サポート期限を考えた製品の選択は重要ですよね。
Visual StudioSQL ServerWindowsのバージョンごとのサポート期間について、昨日は画像ファイルを公開しました。

(写真1)Visual StudioSQL ServerWindowsのバージョンごとのサポート期間年表
Visual StudioとSQL ServerとWindowsのサポート期間年表

今回はExcelの文書ファイルもダウンロード可能なURLも公開します。

http://1drv.ms/1xEdz8q
マイクロソフト製品サポート期間のまとめ20141116.xlsx


自由にダウンロードし、自由に改変して使ってください。商用利用もOKです。
サポート期限の終了は月末とか月初ではなく、月の途中の日付です。
だからこの表では1か月単位に丸めています。
まあ参考程度に。

各製品のサポート期間は以下のサイトで確認していますが、誤りがあった場合はご容赦ださい。

http://support2.microsoft.com/gp/lifecycle/ja
マイクロソフト サポート ライフサイクル - マイクロソフト サポート


以下の製品についてサポート期間を掲載しています。
Visual Studio .NET 2002以降
SQL Server 2000以降
Windows 2000 Server以降
Windows XP以降

テーマ : Windows
ジャンル : コンピュータ

Visual StudioとSQL ServerとWindowsのバージョンごとのサポート期間年表(画像ファイル)

この記事では画像の公開のみですが、翌日の記事ではExcelをダウンロードできるURLも公開しています



ひょんな事からVisual StudioSQL ServerWindowsのバージョンごとのサポート期間を調べる事になりました。
表で感覚的にわかりにくいので、グラフのような年表にしてみました。
いつもサポート期限を考えた製品の選択が必要ですね。

(写真1)Visual StudioSQL ServerWindowsのサポート期間年表
Visual StudioとSQL ServerとWindowsのサポート期間年表

今から運用開始して5年間以上利用するなら、
Visual Studioは2010以降
SQL Serverは2012以降
Windowsは7以降、またはWindows Server 2008 R2以降
となります。

まあ、実際には他のシステムとの兼ね合い、会社内での製品ごとの標準化されたバージョン、あるいは保有しているCALのバージョン、または開発や利用のノウハウなどが関係するので、簡単に「最新版」とは決められない事情がいろいろあると思います。

しかし古いバージョンはそれだけ早くサポート期限が終了してしまい、数年後に大きなリスクとなります。
それを踏まえたうえで製品バージョンの選択が必要ですね。

各製品ごとのサポート期限は、こちらで確認してください。

http://support2.microsoft.com/lifecycle/
マイクロソフト サポート ライフサイクル - マイクロソフト サポート

テーマ : Windows
ジャンル : コンピュータ

VMwareのWindowsゲストOSでE1000とVMXNET3のネットワークアダプターのスループットを比較するブログ記事

Twitterでリツイートされていた記事が目に留まりました。

http://rickardnobel.se/vmxnet3-vs-e1000e-and-e1000-part-2/
VMXNET3 vs E1000E and E1000 – part 2 | Rickard Nobel


このブログを書いているRickard NobelさんはvExpertのようです、
iperfと言うツールを使って、VMware上の仮想マシンのNICのスループットを計測しています。
この記事では以下の4パターンをテストしています。
テストタイトルスループット
Test 1: Windows 2008 R2 with the default E1000 adapter2.65Gbps
Test 2: Windows 2008 R2 with the VMXNET3 adapter4.47Gbps
Test 3: Windows 2012 R2 with the E1000E adapter1.88Gbps
Test 4: Windows 2012 R2 with the VMXNET3 adapter4.66Gbps

どちらのパターンでもVMXNET3の方が明らかに高いスループットを出しています。
あくまでもこのブログの記事の結果ですが、やはりネットワークアダプターはVMwareの準仮想化アダプターであるVMXNET3を使った方が良さそうです。
今までVMXNET3は「ホストの負荷が低い」と言う記事は見かけたのですが、ゲストOSのネットワーク性能も向上するなら、VMXNET3を使わない理由はありませんね。

私もWindowsゲストOSでは原則的にVMXNET3を使うようにしています。
LinuxゲストOSの場合は、カーネルアップデート時にVMware Toolsを再度インストールしなければならないなどの事情があって基本的にはE1000を使っています。
RHEL6ではOSに標準でドライバーを持っているので、VMXNET3を使います。

テーマ : VMware
ジャンル : コンピュータ

Windowsのコマンドプロンプトで表示結果をパイプでクリップボードに送る

これは本当に便利です。
Windowsのコマンドプロンプトで、表示結果をパイプでclip.exeに送ると、クリップボードにコピーされます。
他のアプリケーションでCtrl + Vで貼り付ける事が出来ます。

(写真1)Windows 8.1のコマンドプロンプトで表示結果をクリップボードに送る
Windows 8.1のコマンドプロンプトで表示結果をクリップボードに送る

(写真2)Windows Server 2003 R2のコマンドプロンプトで表示結果をクリップボードに送る
Windows Server 2003 R2のコマンドプロンプトで表示結果をクリップボードに送る

今までコマンドプロンプトの表示結果は、少量なら画面をドラッグしてコピー。
大量に表示される、または表示結果の1行が長い場合は、>でリダイレクトして一度テキストファイルに書き出し、それをテキストエディタで開いていました。
しかしパイプでクリップボードに送ることが出来れば、メモ帳などのテキストエディタに貼り付けるだけです。

この事は以下の2バージョンで確認しました。
・Windows 8.1
Windows Server 2003 R2

テーマ : Windows
ジャンル : コンピュータ

PowerShellのGet-ADUserコマンドレットでActive Directoryのユーザー情報を取得する

前回はPowerShellのコマンドレットで、Active Directoryのグループに含まれるメンバーの情報を取得してみました。
今回はActive Directoryのユーザー情報を取得してみます。
試したのはWindows Server 2012 R2のActive Directoryです。

(写真1)Get-ADUserコマンドレットでユーザー情報を取得する
管理者: Windows PowerShell
PS C:\> Get-ADUser -Properties * -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\ADUSER.csv

(写真2)Get-ADUserコマンドレットで取得したユーザー情報をExcelで開く
Get-ADUserコマンドレットで取得したユーザー情報をExcelで開く

例として最後のログオン日時と、最後のパスワード変更日時を見てみます。
LastLogonDateとPasswordLastSetがそれですが、なんと人間が見てわかる日付時刻形式で記録されています。
感激です。

今までこれを調べるためには、csvdeコマンドでActive Directoryからユーザー情報をエクスポートしていましたが、1601年1月1日から100ナノ秒単位の値と言う、意味不明な数値が記録されているため、これを人間が見てわかる値に変換するのが面倒でした。(lastLogonとpwdLastSetがそれ)

そのlastLogonとpwdLastSetについてはこれを見てください。

http://norimaki2000.blog48.fc2.com/blog-entry-1154.html
徒然なるままに csvdeでActive Directoryのコンピュータ情報をCSVファイルにエクスポートする(2)

テーマ : Windows
ジャンル : コンピュータ

PowerShellのGet-ADGroupMemberコマンドレットでActive Directoryのグループのメンバーの一覧を取得する

前回はPowerShellのコマンドレットで、Active Directoryに対してこんな事をやってみました。
New-ADGroupで新規グループを作成
Add-ADGroupMemberでグループにメンバーを登録
Remove-ADGroupMemberでグループからメンバーを削除
Remove-ADGroupでグループを削除

今回は、グループに含まれるメンバーの情報を取得してみます。

(写真1)Get-ADGroupMemberコマンドレットでグループのメンバーを表示する
Get-ADGroupMemberコマンドレットでグループのメンバーを表示する
実行したコマンドの例。
Get-ADGroupMember Group01

管理者: Windows PowerShell
PS C:\> Get-ADGroupMember Group01


distinguishedName : CN=123456,CN=Users,DC=test01,DC=local
name              : 123456
objectClass       : user
objectGUID        : c8c8f20b-1be3-4ec1-ad06-f61b58c48aa9
SamAccountName    : 123456
SID               : S-1-5-21-39158091-4092441004-368166152-2816



PS C:\>


(写真2)Get-ADGroupMemberコマンドレットでグループのメンバーをCSV形式にエクスポートする
Get-ADGroupMemberコマンドレットでグループのメンバーをCSV形式に出力する
実行したコマンドの例。
Get-ADGroupMember Group01 |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADGroupMember.csv

簡単ですね。
基本的には「Get-ADGroupMember <グループ名>」です。
しかしこのままではリスト形式で扱いにくいので、例によっていつもの「export-csv -encoding」でCSV形式にエクスポートします。
CSV形式にエクスポートした結果はこんな感じです。

#TYPE Microsoft.ActiveDirectory.Management.ADPrincipal
"distinguishedName","name","objectClass","objectGUID","SamAccountName","SID"
"CN=123456,CN=Users,DC=test01,DC=local","123456","user","c8c8f20b-1be3-4ec1-ad06-f61b58c48aa9","123456","S-1-5-21-39158091-4092441004-368166152-2816"

テーマ : Windows
ジャンル : コンピュータ

PowerShellのNew-ADGroupコマンドレットでActive Directoryにグループを登録する

前回はNew-ADUserでユーザーを登録し、Remove-ADUserで削除しました。
今回はPowerShellで、Active Directoryに対して以下をやってみます。
・グループを作成
・グループにメンバーを登録
・グループからメンバーを削除
・グループを削除

新規グループの作成はNew-ADGroup
グループの削除はRemove-ADGroup
グループ情報の変更はSet-ADGroup

グループへのメンバー登録はAdd-ADGroupMember
グループに登録されているメンバーの参照はGet-ADGroupMember
グループからメンバーを削除するにはRemove-ADGroupMember

(写真1)New-ADGroupでグループを作成し、Add-ADGroupMemberでメンバーを登録
New-ADGroupでグループを作成し、Add-ADGroupMemberでメンバーを登録
実行したコマンドの例(グループの作成)
New-ADGroup -Name Group01 -GroupScope Global -GroupCategory Security -Description グループの説明

実行したコマンドの例(メンバーの登録)
Add-ADGroupMember -Identity Group01 -Members 123456


(写真2)Remove-ADGroupMemberコマンドレットでグループからメンバーを削除
Remove-ADGroupMemberコマンドレットでグループからメンバーを削除
上の写真は「-Confirm:$false」無し、下の写真は「-Confirm:$false」有り。
実行したコマンドの例。
上:Remove-ADGroupMember -Identity Group01 -Members 123456
下:Remove-ADGroupMember -Identity Group01 -Members 123456 -Confirm:$false


(写真3)Remove-ADGroupコマンドレットでグループを削除する
Remove-ADGroupコマンドレットでグループを削除する
上の写真は「-Confirm:$false」無し、下の写真は「-Confirm:$false」有り。
実行したコマンドの例。
上:Remove-ADGroup -Identity Group01
下:Remove-ADGroup -Identity Group01 -Confirm:$false


グループ作成の説明
New-ADGroup
-Name Group01グループ名
-GroupScope Globalグループのスコープ(DomainLocal / Global / Universal)
-GroupCategory Security グループの種類(Distribution / Security)
-Description グループの説明グループの説明

グループへのメンバー登録の説明
Add-ADGroupMember
-Identity Group01グループ名
-Members 123456登録するメンバーの名前

グループからメンバー削除の説明
Remove-ADGroupMember
-Identity Group01グループ名
-Members 123456グループから削除するメンバーの名前
-Confirm:$false削除実行時の対話的な「はい」「いいえ」を聞いてこない

グループ削除の説明
Remove-ADGroup
-Identity Group01グループ名
-Confirm:$false削除実行時の対話的な「はい」「いいえ」を聞いてこない

テーマ : Windows
ジャンル : コンピュータ

PowerShellのNew-ADUserコマンドレットでActive Directoryにユーザーを登録する

Windows Server 2003のActive Directoryでds~コマンド群が使えるようになってからは、Active Directoryにユーザーを登録したり参照したりする際はdsadd userやdsquery userなどのコマンドを使用してきました。

最近ある物件でWindows Server 2012 R2のActive Directoryにユーザーをまとめて登録する必要があったのですが、ここで試しにPowerShellのコマンドレットを使ってみました。

今回は新規にユーザーを登録し、削除してみます。

新規ユーザー登録はNew-ADUser
ユーザーの削除はRemove-ADUser
ユーザー情報の変更はSet-ADUser

(写真1)New-ADUserコマンドレットでユーザーを登録
New-ADUserコマンドレットでユーザーを登録
実行したコマンドの例。
New-ADUser 123456 -UserPrincipalName 123456@test01.local -Surname 山田 -GivenName 太郎 -DisplayName 山田太郎 -EmailAddress yamada-taro@test01.local -AccountPassword (ConvertTo-SecureString -AsPlainText "Test_Password" -Force) -ChangePasswordAtLogon $True -Enabled $True

(写真2)Remove-ADUserコマンドレットでユーザーを削除
Remove-ADUserコマンドレットでユーザーを削除

上の写真は「-Confirm:$false」無し、下の写真は「-Confirm:$false」有り。
実行したコマンドの例。
上:Remove-ADUser -Identity 123456
下:Remove-ADUser -Identity 123456 -Confirm:$false


ユーザー登録の説明
New-ADUser 123456ユーザー名(ID)
-UserPrincipalName 123456@test01.localユーザープリンシパル名
-Surname 山田
-GivenName 太郎
-DisplayName 山田太郎表示名
-EmailAddress yamada-taro@test01.local電子メールアドレス
-AccountPassword (ConvertTo-SecureString -AsPlainText "Test_Password" -Force)パスワード
-ChangePasswordAtLogon $True次回ログオン時にパスワード変更が必要
-Enabled $Trueユーザーを有効にする

パスワードは平文で直接指定する事は出来ないようです。
しかし今回はユーザーに対してパスワードが平文で用意されている状況を想定しています。
だからConvertTo-SecureStringで平文の文字列をパスワードに与えています。
ConvertTo-SecureString -AsPlainTextで平文からパスワードを与える場合、-Forceを指定する必要があります。


ユーザー削除の説明
Remove-ADUser -Identity 123456削除するユーザー名
-Confirm:$false削除実行時の対話的な「はい」「いいえ」を聞いてこない


Set-ADUserについては今回試していないので、またの機会に。

テーマ : Windows
ジャンル : コンピュータ

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発してた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
数年前まではWindows上のアプリケーション展開が多かったかな。
ここ数年はWindowsサーバーを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server VMware_Player PowerShell PowerCLI vSphere_Client VirtualCenter Active_Directory vStorage_API Converter 文音 Windows Hyper-V Microsoft_Security_Essentials コズミック☆倶楽部 Windows_8 vSphere Backup_Exec VMware_Converter なるみん あいひょん カラオケ sora Windows_Server_2012 VCB Red_Hat_Enterprise_Linux SQL_Server System_Center Tech_Fielders VMware_vSphere メモリダンプ RHEL System_Recovery Internet_Explorer ESX ARCserve_Backup VMware_HA vMotion Firefox マークス Server Oracle Backup Exec Symantec Active Directory vSphere_CLI ジン子 氷結 若手 キリン Recovery schtasks XenServer DRS Vista System NTFS SE vCenter_Converter コズミック倶楽部 麗美 remi Oracle_Database DMC-FZ1000 Visual_Studio wevtutil Twitter Sysinternals Office Windows_Update 一番搾り食物繊維 ラガー 糖質 雨どい カーポート スリムス 高原 サッポロ セルシオ 洗濯 グランダム フィット 洗車 のどごし生 掃除 カーナビ 白石美帆 経済産業省 えびしお セキュリティ スパリゾートハワイアンズ ロッキー スタローン おとなのおつまみ ベビースター サクセス バーベキュー 東京国際フォーラム corega スパークリングウォーター おやつカンパニー カルディ ついにステップワゴンを契約してしまった 夏休み 映画 東京タワー 写真 マッハ ムエタイ シャンプー台のむこうに デュポン ワイヤーアクション 日本赤十字社 はばたき福祉事業団 Windows_Serverバックアップ ポケモン・スタンプラリー wbadmin お茶のチューハイ Paper.li けんけつちゃん 献血 ジョシュ・ハートネット ブラックホーク・ダウン 羽田  サーバ 関西空港 バルボア 草津 キャンプ 万座温泉 人口甘味料 伊藤園 神戸 ハワイ コロン 北野 れみ グレープフルーツ ウォーター 鬼押し出し園 コマンドライン XP IP38X/N500 Word ULPC OEM NVR500 DSP VMware_ESXi Uptime.exe Linux SweetGrass 浜田省吾 Thunderbird Tools USB2.0 USB AWS robocopy SkyDrive グループポリシー Apache vStorag_API Virtual_Infrastructure ARCserve_Replication バックアップ OpenOffice Tween Windows_Azure ジャンプフェスタ ITIL OpenOffice.org VMFS バッチ iStorage SUPPLEX STOPエラー CDRW-AB24JL CD CAB CG CR-V DVD CoolMax Brio ATAPI 破損 2008 オレッツァ 修復 圧縮 0x0000007B ARCserve_D2D Gathers Hyperion OneDrive PCI PC-Success Replication Resource Intel SAP HUAWEI OREZZA IZZE IDE Kit NR-7900A NetBackup GR5 エイドリアン 

月別アーカイブ
リンク
RSSフィード