スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows Server 2012 R2 / Windows Server 2016でWindows Server バックアップが利用可能な最大ボリュームサイズは16TBまで

まず、Windows Server 2012のWindows Serverバックアップに関するマイクロソフトのサポート技術情報。

https://support.microsoft.com/ja-jp/help/2832199
Windows Sever 2012 において 16 TB 以上のサイズをもつボリュームに対してWindows Server Backup を用いたバックアップを行うと、失敗する



少し時間をかけて検索しても、Windows Server 2012 R2やWindows Server 2016に関する制限の記事は見つからなかったので、試してみました。
結果としては、Windows Server 2012 R2やWindows Server 2016でも、16TBを超えるボリュームのバックアップは出来ませんでした。

検証環境はWindows 8.1 Hyper-V上の仮想マシンです。

(図1)16TBを超えるボリュームをバックアップすると失敗する
20TBのバックアップ失敗
20TBのDドライブをバックアップしようとしたら、「16777216 MB を超えるボリュームは保護できません。」のメッセージが出てバックアップに失敗する。
16TBのEドライブはバックアップに成功します。

(図2)検証環境のディスクの管理
ディスクの管理
ディスク1 - Dドライブ - 20TB - バックアップ失敗
ディスク2 - Eドライブ - 16TB - バックアップ成功

(図3)エクスプローラー
エクスプローラー

(図4)Windows Server 2016のwinver
winver_2017040813260953d.png
今回はWindows Server 2016で試していますが、Windows Server 2012 R2でも同じ結果です。

(図5)検証環境のdiskpart (list volume)
diskpart01.png
Volume 3 - Dドライブ - 20TB
Volume 4 - Eドライブ - 16TB

(図6)検証環境のdiskpart (volume 3のfilesystem)
diskpart02.png
Volume 3(20TB)のアロケーションユニットサイズの既定値は8KB

(図7)検証環境のdiskpart (volume 4のfilesystem)
diskpart03.png
Volume 4(16TB)のアロケーションユニットサイズの既定値は4KB

アロケーションユニットサイズ(クラスタサイズ)には関係なく、ボリュームサイズで16TBが上限のようです。
最近は大きなディスクサイズを扱う事も多いので、十分注意が必要ですね。
スポンサーサイト

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

【仮】[ADCS]Webサーバーのサーバー証明書に記載するホスト名(DNS名)

Active Directory 証明書サービス、いわゆるAD CSによる証明書を発行する仕組みの設計と構築をする事になりました。
はい、AD CSを扱うのは初めてです。
そのおかげてこの2週間くらいはAD CSの調査と検証にドップリとハマっています。

こんなシナリオです。
・AD DS(Active Directory Domain Services)は無いのでスタンドアロンCA
・公的な認証機関は利用しないプライベートCA
・Webサーバー用のサーバー証明書を発行
・WebサーバーにアクセスしてくるPCへのクライアント証明書を発行
・その両方を信用してもらうためのルート証明書を発行

今回はごく小規模で短期間の利用になるため、2階層や3階層の認証局ではなく、ルートCAのみ、1階層で構成します。

今回の記事では上記の通り、AD CSを扱うことになった背景と、構築する認証局のシナリオ説明が主な内容です。

それだけでは面白くないので、Webサーバー(IIS)をホストするWindowsのコンピュータ名Webサーバーに配置するサーバー証明書に埋め込むDNS名、ブラウザで指定するURLの関係を再確認した。


(図1)IISのコンピュータ名はadcs01
まとめ03_コンピュータ名はadcs01

IISのWebサーバーをホストするサーバー
・Windows Server 2012 R2
・短いコンピュータ名はadcs01
・サフィックスを含めたフルコンピュータ名はadcs01.local

クライアントにはHostsファイルを書いて、以下の名前で名前解決出来るようにしました。
・adcs01.local
・adcs01
・test01.local


さて、ここからが検証結果です。

(図2)「adcs01.local」の証明書をバインド
まとめ01_adcs01localの証明書をバインド

IISのWebサーバーにバインドするサーバー証明書には「adcs01.local」と記載されたのを使用します。
https://adcs01.local/ ←正しく接続(青色)
https://adcs01/ ←警告が表示される(赤色)
https://test01.local/ ←警告が表示される(赤色)


(図3)「test01.local」の証明書をバインド
まとめ02_test01localの証明書をバインド

IISのWebサーバーにバインドするサーバー証明書には「test01.local」と記載されたのを使用します。
https://adcs01.local/ ←警告が表示される(赤色)
https://adcs01/ ←警告が表示される(赤色)
https://test01.local/ ←正しく接続(青色)


このことから、サーバー証明書に書かれたDNS名と、ブラウザから指定するURLが一致していればそのサーバーは正しいと判断される事がわかります。

IISのWebサーバーを実行しているサーバー機のコンピュータ名とは関係ないようです。
複数のWebサーバーで構成するWebサイトを考えれば、まあ当然ですね。

私の経験上も、BIG-IPなどのロードバランサーに埋め込むSSLサーバー証明書に記載されているDNS 名でブラウザからアクセスすると問題ないが、IPアドレスでアクセスすると赤い警告が出ていました。

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

Windows PowerShellのGet-ItemとRemove-Itemコマンドレットでタイムスタンプが2日以上前のファイルとフォルダを削除する

前回はGet-ChildItemコマンドレットを使って、更新日時が2日以上古いデータを表示しました。
今回はその応用で、その表示されたデータを削除します。
古いログファイルなどを削除する事を想定しています。

コマンドプロンプトからPowerShellスクリプトを呼び出します。
引数の「2」は、直近の2日分を残す(今日と昨日の分を残す)事を意味します。

C:\>powershell.exe C:\Batch\フォルダとファイルの削除.ps1 2


コマンドプロンプトから呼び出されるPowerShellスクリプトです。
前回の削除対象を表示するスクリプトの最後に、パイプと「Remove-Item -Recurse」を追加しただけです。

Param($保存日数)
Get-ChildItem -path C:\Temp | Where-object{((Get-Date) - $_.LastWriteTime).Days -ge $保存日数 } | Remove-Item -Recurse

繰り返しになりますが、このコマンドではC:\Tempフォルダ直下のフォルダの更新日時を見て削除対象かどうかを判断します。
インターネットで同様のコマンドを検索すると、フォルダ内の全ファイルのタイムスタンプを再帰的に取得して、個々のファイルのタイムスタンプで削除対象かどうかを判断している事例ばかりでした。
今回は、あるフォルダの中に入っている複数のファイルは、それを格納するフォルダのタイムスタンプだけを見て削除対象がどうかを判断できる状況を想定しています。
これだとファイルだけが削除されて、空のフォルダが残るような事もなく、簡単です。

では削除スクリプトを実行してみます。

(画像1)C:\Tempのフォルダとファイルの一覧
C:\Windows\system32\cmd.exe

C:\>powershell.exe Get-ChildItem -path C:\Temp


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/10      4:00            001
d----        2016/12/11      4:00            002
d----        2016/12/12      4:00            003
d----        2016/12/13      4:00            004
-a---        2016/12/10      4:00          0 001.txt
-a---        2016/12/11      4:00          0 002.txt
-a---        2016/12/12      4:00          0 003.txt
-a---        2016/12/13      4:00          0 004.txt



C:\> _
ファイルとフォルダの更新日時は2016/12/10、12/11、12/12、12/13のそれぞれ04:00です。

(画像2)現在の日時
C:\Windows\system32\cmd.exe

C:\>powershell.exe Get-Date

2016年12月13日 8:53:56



C:\> _

(画像3)削除スクリプトを実行
C:\Windows\system32\cmd.exe

C:\>powershell.exe C:\Batch\フォルダとファイルの削除.ps1 2

C:\> _
引数の「2」は、直近2日分を残してそれ以上古いデータを削除する意味です。

(画像4)削除スクリプトを実行後のC:\Tempフォルダ
C:\Windows\system32\cmd.exe

C:\>powershell.exe Get-ChildItem -path C:\Temp


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/12      4:00            003
d----        2016/12/13      4:00            004
-a---        2016/12/12      4:00          0 003.txt
-a---        2016/12/13      4:00          0 004.txt



C:\> _

(画像5)削除スクリプトを実行後のC:\Tempフォルダ
削除スクリプトの実行後

直近の2日分(今日と昨日の分)を残し、それよりも古いデータが削除されました。
属性の「LastWriteTime」はファイルやフォルダの更新日時です。
これを「CreationTime」にすれば、作成日時になります。

(画像6)C:\Temp\001フォルダ内の存在していた更新日時が新しいファイル
テストデータ1(C:\Temp\001の下)

前回の記事にも書きましたが、C:\Tempの下の001、002、003、004の各フォルダの下にはタイムスタンプ(更新日時)が2016/12/13 07:00過ぎのファイルを1つずつ置いています。
これはもちろん、現時点から「2日以上古い」には該当しません。
しかしあくまでもC:\Tempの下の001、002、003、004の各フォルダの更新日時だけを見てフォルダ事ごと削除するので、C:\Temp\001とC:\Temp\002フォルダは、その中に含まれるファイルも含めてすべて削除されています。
(想定した動作です)

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

Windows PowerShellのGet-Itemコマンドレットでタイムスタンプが2日以上前のファイルとフォルダの一覧を表示する

前回はSet-ItemPropertyコマンドレットでテストデータのタイムスタンプ(更新日時)を変更してみました。
「タイムスタンプ(更新日時)がXX日以上古いデータを削除する」スクリプトを作成するのが目的なんですが、今回は削除する前に「XX日以上古い」の部分を確認します。
今回はコマンドプロンプトからPowerShellのコマンドレットを実行しています。
これはバッチファイルからPowerShellのスクリプト(.ps1ファイル)を呼び出して実行する事を想定しているためです。

(画像1)C:\Tempフォルダ直下のテストデータ
テストデータ(C:\Tempの直下)
C:\Tempの下には4つのフォルダと4つのファイルがあります。
それぞれ更新日時は2016/12/10、12/11、12/12、12/13のそれぞれ04:00にセットしています。

(画像2)C:\Temp¥001フォルダのファイル
テストデータ1(C:\Temp\001の下)
C:\Tempの下の001、002、003、004の各フォルダの下にはタイムスタンプ(更新日時)が2016/12/13 07:00過ぎのファイルを1つずつ置いています。

(画像3)現在の日時
C:\Windows\system32\cmd.exe
C:\>powershell.exe Get-Date

2016年12月13日 7:51:10



C:\> _
毎朝04:00ごろにデータのエクスポートなり、バックアップなりが実行され、毎朝07:00過ぎに削除処理を実行する事を想定しています。

(画像4)C:\Tempフォルダ直下のフォルダとファイルの一覧
C:\Windows\system32\cmd.exe
C:\>powershell.exe Get-ChildItem -path C:\Temp


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/10      4:00            001
d----        2016/12/11      4:00            002
d----        2016/12/12      4:00            003
d----        2016/12/13      4:00            004
-a---        2016/12/10      4:00          0 001.txt
-a---        2016/12/11      4:00          0 002.txt
-a---        2016/12/12      4:00          0 003.txt
-a---        2016/12/13      4:00          0 004.txt



C:\> _
今回はGet-Itemに対して、配下のファイルを再帰的に表示するための「-Recurse」オプションは付けません。
これはC:\Temp直下のフォルダのタイムスタンプのみを見て古いフォルダを削除する事を想定しているからです。
(001や002などのフォルダ内のファイルの1つずつのタイムスタンプは見ません。)
あくまでも001や002のフォルダのタイムスタンプのみで古いかどうかを判断して、フォルダごと削除します。

(画像5)削除対象を確認するPowerShellスクリプトを実行した結果
C:\Windows\system32\cmd.exe
C:\>powershell.exe C:\Batch\削除対象の確認.ps1 2


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/10      4:00            001
d----        2016/12/11      4:00            002
-a---        2016/12/10      4:00          0 001.txt
-a---        2016/12/11      4:00          0 002.txt



C:\> _
PowerShellスクリプトには引数で保存日数を与えています。
直近の「2日間」を残し、それよりも古いデータを表示しています。
現在は2016/12/13 07:51です。
今日12月13日、昨日12月12日は表示されていませんが、これは削除せずに残すことを意味しています。
それよりも古い12月10日と12月11日のデータが表示されていますが、これが削除対象となるわけです。

PowerShellスクリプト「削除対象の確認.ps1」の内容

Param($保存日数)
Get-ChildItem -path C:\Temp | Where-object{((Get-Date) - $_.LastWriteTime).Days -ge $保存日数 }



項目内容
Param($保存日数)呼び出し元のバッチファイルから与えられる引数
Get-ChildItem -path C:\TempC:\Tempフォルダ直下のフォルダとファイルの一覧を取得
Where-object{((Get-Date) - $_.LastWriteTime).Days -ge $保存日数上記で取得したフォルダとファイルの一覧から、タイムスタンプ(更新日時)が指定した保存日数よりも古いデータを抽出

今回は削除対象が間違っていないかどうかを確認するために表示してみました。
実際の削除は次の記事で実行します。

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

Windows PowerShellのSet-ItemPropertyコマンドレットでファイルやフォルダのタイムスタンプを変更する

Windows PowerShellでは、フォルダやファイルのタイムスタンプを変更する事が出来るんですね。
タイムスタンプを変更するには、Set-ItemPropertyコマンドレットを使用します。
今回もフォルダやファイルは相対パスで指定します。
PowerShellのコマンド画面で、カレントパスはC:\Tempに移動した状態でコマンドを実行します。

(画像1)Set-ItemPropertyコマンドレットでフォルダの更新日時を変更する
管理者: Windows PowerShell
PS C:\Temp> Get-Item 001



    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/11     19:02            001


PS C:\Temp> Set-ItemProperty 001 -Name LastWriteTime -Value "2015/10/12 1:23"
PS C:\Temp> Get-Item 001


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2015/10/12      1:23            001


PS C:\Temp> _


Set-ItemPropertyコマンドレットで001フォルダのLastWriteTime属性(更新日時)の値を設定する。

Set-ItemProperty 001 -Name LastWriteTime -Value "2015/10/12 1:23"

【変更前】2016/12/11 19:02
【変更後】2015/10/12 01:23

(画像2)フォルダの更新日時の変更前
New-Itemコマンドレットで作成されたフォルダ

(画像3)フォルダの更新日時の変更後
Set-ItemPropertyコマンドレットで更新日時の変更後

Set-ItemPropertyコマンドレットで001フォルダのCreationTime属性(作成日時)の値を設定する。

Set-ItemProperty 001 -Name CreationTime -Value "2015/10/09 10:12"


(画像4)フォルダの作成日時の変更後
Set-ItemPropertyコマンドレットで作成日時の変更後

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

Windows PowerShellのNew-Itemコマンドレットで新しいファイルやフォルダを作成する

Windows PowerShellで新しいフォルダやファイルを作成するには、New-Itemコマンドレットを使用します。
他にも同様のコマンドレットがあるかもしれませんが、ここではNew-Itemを使用します。

今回は作成するフォルダやファイルは相対パスで指定します。
PowerShellのコマンド画面で、カレントパスはC:\Tempに移動した状態でコマンドを実行します。

(画像1)PowerShellで新しいフォルダやファイルを作成する
管理者: Windows PowerShell
PS C:\Temp> New-Item 001 -ItemType Directory


    ディレクトリ: C:\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2016/12/11     20:16            001


PS C:\Temp> New-Item 001\001.txt -ItemType File


    ディレクトリ: C:\Temp\001


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2016/12/11     20:16          0 001.txt


PS C:\Temp> _



現在のカレントパスの直下に「001」フォルダを新規に作成します。

New-Item 001 -ItemType Directory


(画像2)New-Itemコマンドレットで作成されたフォルダ
New-Itemコマンドレットで作成されたフォルダ

現在のカレントパスの直下の「001」フォルダの下に、「001.txt」ファイルを作成します。

New-Item 001\001.txt -ItemType File


(画像3)New-Itemコマンドレットで作成されたファイル
New-Itemコマンドレットで作成されたファイル
以上

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

VMware vSphere PowerCLIのGet-Datastoreコマンドレットで空き容量が少ないデータストアの一覧を取得する

VMware vSphereの仮想環境を運用していると、データストアの空きが少なくなって困る事があります。
vCenter Serverでアラームの設定は出来るけど、例えば90%を指定していても、一度それを超えてしまえばそれ以降は通報はされません。
それに使用率90%と言っても、データストアサイズ1TBと60TBでは、空き容量のサイズ(GB)が全然違います。

データストアの空き監視では利用率(%)よりも、空き容量(GB)の監視が重要です。
今回は空き容量が一定の値(GB)を下回っているデータストアの一覧を抽出するコマンドの例です。

空き容量が10GB未満のデータストアの一覧を取得する
VMware vSphere PowerCLI 5.1 Release 1
PowerCLI C:\> Get-Datastore -name datastore* | where-Object { $_.FreeSpaceGB -lt 10} | Sort-Object { $_.FreeSpaceGB} | Out-File -FilePath D:\Temp\データストア空き監視.txt

PowerCLI C:\> Get-Date | Out-File
-FilePath D:\Temp\データストア空き監視.txt -Append

PowerCLI C:\> Write-Output 空き容量が10GB以下のデータストアを抽出しています
| Out-File -FilePath D:\Temp\データストア空き監視.txt -Append

PowerCLI C:\> _


空き容量が10GB未満のデータストアの一覧を取得する

Get-Datastore -name datastore* | where-Object { $_.FreeSpaceGB -lt 10} | Sort-Object { $_.FreeSpaceGB} | Out-File -FilePath D:\Temp\データストア空き監視.txt

Get-Date | Out-File -FilePath D:\Temp\データストア空き監視.txt -Append | Out-File -FilePath D:\Temp\データストア空き監視.txt -Append

Write-Output 空き容量が10GB以下のデータストアを抽出しています


コマンド
コマンドの説明
Get-Datastore -name datastore* | where-Object { $_.FreeSpaceGB -lt 10} | Sort-Object { $_.FreeSpaceGB} | Out-File -FilePath D:\Temp\データストア空き監視.txtGet-Datastore -name datastore*
名前が「datastore」で始まる全データストアの一覧を取得

where-Object { $_.FreeSpaceGB -lt 10}
取得したデータストアの名前を使って、空き容量が10GB未満のデータストアに絞り込む

Sort-Object { $_.FreeSpaceGB}
10GB未満のデータストアに絞り込まれた結果を、空き容量の小さい順にソートする

Out-File -FilePath D:\Temp\データストア空き監視.txt
10GB未満のデータストアの一覧を指定したテキストファイルに書き込む
Get-Date | Out-File -FilePath D:\Temp\データストア空き監視.txt -Append10GB未満のデータストア一覧テキストファイルに、今の日時を追記する
Write-Output 空き容量が10GB以下のデータストアを抽出しています | Out-File -FilePath D:\Temp\データストア空き監視.txt -Append10GB未満のデータストア一覧テキストファイルに、コメントを追記する

10GB未満のデータストアが存在すると、こんな感じでテキストファイルが作成されます。


Name                    FreeSpaceGB  CapacityGB
----                    -----------  ----------
datastor03                    7.138     479.750
datastor07                    8.425    2403.750



2016年11月21日 5:01:25


空き容量が10GB以下のデータストアを抽出しています



2016/11/22 06:42更新
Sort-Object { $_.FreeSpaceGB} に対するコマンドの説明の誤りを訂正。
【変更前】
データストア名でソートする
【変更後】
空き容量の小さい順にソートする

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

VMware vSphere PowerCLIのGet-VIEventコマンドレットでvCenter Serverのイベントログを取得する

VMware vSphereを運用していると、vCenter Serverのイベントログを見たくなる事があります。
しかし簡単には直接vCenter Serverを利用する事が出来ず、お客様にイベントログを抽出してもらって、メールで送ってもらったりと、なかなか手間がかかったりします。
なので、毎日夜間に直近の24時間分のイベントログを抽出して、日別のログとして保存しておき、必要な時にすぐに送ってもらえるようにしています。(毎日自動でメールに添付して送信しているシステムもあります)

VMware vSphere PowerCLI 5.1 Release 1
PowerCLI C:\> $FinishDay = Get-Date
PowerCLI C:\> $StartDay = (Get-Date).AddHours(-24)
PowerCLI C:\> Get-VIEvent -Start $StartDay -Finish $FinishDay |export-csv -encoding default <ファイル名>

PowerCLI C:\> _


今から過去24時間分のイベントログを抽出するコマンド

$FinishDay = Get-Date
$StartDay = (Get-Date).AddHours(-24)
Get-VIEvent -Start $StartDay -Finish $FinishDay |export-csv encoding default <ファイル名>


Windows PowerShell
PS C:\> $FinishDay = Get-Date
PS C:\> $StartDay = (Get-Date).AddHours(-24)
PS C:\> $FinishDay

2016年11月12日 8:55:34


PS C:\> $StartDay

2016年11月11日 8:55:34


PS C:\> _


変数$FinishDayと変数$StartDayの値を確認する

PS C:\> $FinishDay = Get-Date
PS C:\> $StartDay = (Get-Date).AddHours(-24)
PS C:\> $FinishDay

2016年11月12日 8:55:34


PS C:\> $StartDay

2016年11月11日 8:55:34


PS C:\>

$FinishDayはGet-Dateで、現在の日時そのものです。
$StartDay = (Get-Date).AddHours(-24)は、現在の日時から24時間前を求めてそれを変数$StartDayに入れています。
$StartDay = (Get-Date).AddDays(-1)でも、今回は
同じ意味です、

これを毎日23時59分から0時ちょうどの間にジョブとして実行すれば、その日1日のイベントログをCSVファイルに保存する事が出来ます。

続きを読む

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

VMware vSphere PowerCLIのGet-Datastoreコマンドレットでデータストアの空き容量などの一覧を取得する

VMware vSphereの仮想環境をお客さんが運用していて、稀にですがデータストアがいっぱいになって仮想マシンが起動できなくなるような問題が発生します。
データストアの空き容量の監視は重要ですよね。
vCenter Serverでアラームの設定は出来るけど、例えば90%を指定していても、一度それを超えてしまえばそれ以降は通報はされません。
それに使用率90%と言っても、データストアサイズ1TBと60TBでは、空き容量のサイズ(GB)が全然違います。

なので、データストアの空き容量を率(%)ではなく、GBとかMBで取得するコマンドレットです。
日ごとに記録して残しておけば、空き容量の減少の推移を把握し、今後の予測もできます。

(図1)Get-Datastoreコマンドの例1
Get-Datastoreコマンドの例1
データストアの名前、容量、空き容量、タイプ、ファイルシステムバージョンを取得して画面に表示するコマンドの例です。
サイズをGBで表示すると、小数点以下の桁数が揃わないんですね。

Get-Datastore |Format-Table Name,CapacityGB,FreeSpaceGB,Type,FileSystemVersion -A

最後の「-A」は、カラム(列)の幅を自動調整するオプションです。


(図2)Get-Datastoreコマンドの例2
Get-Datastoreコマンドの例2
データストアの名前、容量、空き容量、タイプ、ファイルシステムバージョンを取得して画面に表示するコマンドの例です。
サイズをMBで表示すると、小数点以下が表示されないので桁位置が揃いますね。

Get-Datastore |Format-Table Name,CapacityGB,FreeSpaceGB,Type,FileSystemVersion -A

最後の「-A」は、カラム(列)の幅を自動調整するオプションです。

Get-Datastoreコマンドレットで取得したデータストアの情報から、以下の項目を表示します。
項目名説明
Nameデータストア名
CapacityGB or CapacityMB容量(GB or MB)
FreeSpaceGB or FreeSpaceMB空き容量(GB or MB)
Typeタイプ
FileSystemVersionファイルシステムのバージョン

Get-Datastoreの結果をFormat-Tableに送るのではなく、Select-Objectに送っても同様です。

Get-Datastore |Select-Object Name,CapacityGB,FreeSpaceGB,Type,FileSystemVersion


Get-Datastoreの結果をCSVファイルに出力すれば、もっと多くの項目も確認する事が出来ます。

Get-Datastore |export-csv -encoding default <ファイル名>


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

VMware vSphere PowerCLIのGet-Snapshotコマンドレットでスナップショットが作成されている仮想マシンの一覧を取得する

VMware vSphereの仮想環境をお客さんが運用していて、稀にですがデータストアがいっぱいになって仮想マシンが起動できなくなるような問題が発生します。
あるいは仮想マシン上での処理速度が遅くなったとか。
以前に作成したスナップショットが残っていて、差分ファイルが徐々に大きくなってしまったのが原因です。

何故スナップショットが残ったままになっているか。
・仮想マシンのスナップショットを作成して、あとで削除するのを忘れたり
・サーバー管理者が複数いる場合に誰かがスナップショットを作成したのに気づかなかったり
・vStorage APIを利用するバックアップソフトでのバックアップ中に異常終了して、スナップショットが残っていたり

vCenter ServerのGUIで仮想マシンを1つずつ右クリックして、スナップショットが残っているかどうかを見て行くのは正直言って苦痛です。
なので、VMware vSphere PowerCLIのコマンドレットを使用してスナップショットが作成されている仮想マシンの一覧を取得してみました。
 
Get-Snapshotコマンドの例

全仮想マシンの全スナップショットの一覧を表示するコマンドの例です。

Get-VM -name * |Get-Snapshot |Format-Table VM,Created,Name,SizeGB -A


Get-VMで取得した仮想マシン名の一覧をパイプでGet-Snapshotに送って、スナップショットの一覧を取得します。
コマンド説明
Get-VM -name *全ての仮想マシンの名前を取得します
Get-Snapshot全ての仮想マシンのすべてのスナップショットを取得します
Format-Table VM,Created,Name,SizeGB -A
スナップショットの情報から、以下の項目を表示します。
・仮想マシン名
・スナップショットの作成日時
・スナップショットに付けた名前
・スナップショットのサイズ(GB)

最後の「-A」は、カラム(列)の幅を自動調整するオプションです。

Get-Snapshotの結果をFormat-Tableに送るのではなく、Select-Objectに送っても同様です。

Get-VM -name * |Get-Snapshot |Select-Object VM,Created,Name,SizeGB


Get-Snapshotの結果をCSVファイルに出力すれば、もっと多くの項目も確認する事が出来ます。

Get-VM -name * |Get-Snapshot |export-csv -encoding default <ファイル名>


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

マイクロソフトのNetwork & AD サポートチームブログに「パスワードに関するガイダンス」が掲載されました

マイクロソフトのNetwork & AD サポートチーム公式ブログに「パスワードに関するガイダンス」が掲載されました。
これは米国MicrosoftのActive Directory Team Blog記事を要約して翻訳した記事になります。
とても参考になります。

https://blogs.technet.microsoft.com/jpntsblog/2016/05/27/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%82%AC%E3%82%A4%E3%83%80%E3%83%B3%E3%82%B9/
マイクロソフトのパスワードに関するガイダンス | Ask the Network & AD Support Team
http://research.microsoft.com/pubs/265143/Microsoft_Password_Guidance.pdf
Microsoft Password Guidance


以下はブログ記事のガイダンスのタイトル部分だけです。
詳しくは上記のマイクロソフトのブログを読んでください。
1. 8 文字の最低パスワード長を維持する (必ずしも長いほど良いというわけではない)
2. 文字の組み合わせ (複雑さ) に関する要件を廃止する
3. ユーザーアカウントの定期的なパスワード変更を強制しないようにする
4. わかりやすい一般的なパスワード使うことを禁止する
5. 業務アカウントのパスワードを社外他のアカウントに使いまわさないようユーザーを教育する
6. 多要素認証を必ず利用するようにする
7. リスクベース多要素認証の方法を検討する

「最低パスワード長は8文字」や「複雑さの要件を廃止する」は斬新でした。
最低パスワード長を長くし過ぎると、単純な単語の繰り返しになってしまいがち。
複雑さの要件が有効だと、先頭を大文字にしたり最後を数字にしたりになりやすい。
このような傾向を利用してパスワードの解読を試みられるそうです。

「定期的な変更を強制しない」はやっぱりね、です。
私がとあるシステムで使用しているパスワードは、絶対に推測されない文字列を使用しています。
当然ですが、誰にも知らせていません。
それなのに、このパスワードを定期的に「変更しなさい」と強制されるのは苦痛以外の何物でもありません。
また、定期的に変更すると、どうしてもパスワードが安易な文字列になりがちです。
定期的な変更の強制は、本当にやめてほしい。

「パスワードを使いまわさない」は重要です。
万が一パスワードが解読されてしまったら、他のシステムにもログインされてしまうので。

多要素認証はインターネットを利用したコンシューマー向けシステムではぜひ利用して欲しいですね。
オンプレミスな社内システムでは、今後は多要素認証を取り入れる方向に向かうかどうか、わかりませんが。

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

2016/03/18(金)マイクロソフトのセミナー「Active Directory & Security Conference 2016」に参加してきました

久しぶりにマイクロソフトのセミナーに申し込みました。
Active Directory & Security Conference 2016」と題した、セミナーとしては大きな規模でした。
2000年にWindows 2000 Serverと共に誕生したActive Directoryですが、昨年15周年を迎えました。
今回はそのAD15th記念セミナーとなっています。

前回は2010年2月にAD10周年のセミナーがありましたが、それから6年の月日を経て、さらにパワーアップしてAD15周年イベントが行われました。
今回はSGT(品川グランドセントラル)のマイクロソフト本社の31Fの3つの部屋に分かれて、同時3チャネルでセミナーが行われ、参加者は自分が好きな部屋でセミナーを聴取するスタイルでした。

また黒い表紙の「クラウド時代の認証基盤 Azure Active Directory 完全解説 ~ IDaaSに対応するためのシステム設計とは ~」の冊子が配布されました。
今年の5月24日から25日にかけてde:code 2016が行われますが、その会場で販売されるAzure Active Directory 解説書のPreview Editionとなっています。
あとで読まなくちゃ。

(写真1)セミナーのプログラム
20160318_AD15周年プログラム

(写真2)Azure ADの解説書プレビュー版
20160318_AD15周年AzureAD冊子

Room A  (Track - 1)Room B  (Track - 2)Room C + D  (Track - 3)
12:00-12:50受付受付受付
12:50-13:00挨拶、会場案内挨拶、会場案内挨拶、会場案内
13:00-14:00Azure ADと外部アプリのID連携/SSO Deep DiveAzure Active Directory の価値とは?【パネルディスカッション】
Active Directoryを核にセキュリティ基盤を再考する
MVP for Enterprise Mobility
富士榮 尚寛 氏
グローバルナレッジネットワーク株式会社
横山哲也 氏
モデレーター:
日本マイクロソフト チーフセキュリティアドバイザー  高橋正和

パネリスト:
日本マイクロソフト Active Directory 有志の会
14:00-14:15休憩休憩休憩
14:15-15:15ここまで進化した ! Azure Active Directory による最新アプリ開発事情
~ App Model v2, Microsoft Graph, B2C, etc
事例から学ぶ:Active Directory 管理の自動化【パネルディスカッション】
Active Directory 重鎮による15年の振り返りとこれからへの期待
日本本マイクロソフト テクニカルエバンジェリスト
松崎 剛
株式会社 サンリオ
大畑 正利 氏
モデレーター:
Increments 株式会社 及川 卓也 氏

パネリスト:
・グローバルナレッジネットワーク株式会社 横山哲也 氏
・NEC マネジメントパートナー株式会社 吉田 薫 氏
・NTT データ先端技術株式会社 小鮒 通成 氏
15:15-15:45休憩、おやつ休憩、おやつ休憩、おやつ
15:45-16:45Javaアプリを Azure AD の力でよりセキュアに!
AAD 対応 Javaアプリ の開発手法
Windows Server 2016 Active Directory 最新情報Azure Active Directory
~ Identity and access management
※同時通訳セッション
日本マイクロソフト テクニカルエバンジェリスト
寺田 佳央
日本マイクロソフト テクニカルエバンジェリスト
高添 修
Microsoft Corporation Program Manager - IAM Engineering
Eran Dvir
16:45-17:00休憩休憩休憩
17:00-18:00Advanced Threat Analytics による社内Active Directory へのサイバーアタック対策
~ みせてやろうか、パッチ未適用の怖さを
ゆりか先生のセキュリティ講座~Windows Server 2016の前に、Kerberos と PassportについてDeepに理解しておきましょう【パネルディスカッション】idcon がマイクロソフトに殴り込み! Idcon 発 AD はこう使え ? 業務系 ID 連携 meets idcon
日本マイクロソフト テクノロジーソリューションプロフェッショナル
蔵本 雄一
日本マイクロソフト セキュリティプログラムマネージャー
村木 由梨香
モデレーター
OpenID Foundation Japan Board Member, Lepidum 代表取締役 林 達也 氏

パネリスト:
・OpenID Foundation Japan Evangelist, グリー株式会社 真武 信和 氏
・Yahoo Japan システム統括本部 情報システム本部 大塩 英輔 氏
・日本マイクロソフト テクニカル エバンジェリスト 安納 順一
18:00-18:15アンケート記入、懇親会場へ移動
18:15-20:00懇親会19F

Room AはDeep で難易度の高い部屋
Room Bは比較的初心者向けの部屋
Room C + Dは笑い、うんちく、リラックス系部屋

私はもちろん永遠の初心者なので、4つすべてRoom Bでした。

横山大先生のセミナーは、Azure上でオンプレミスのActive Directory Domain Serviceと同等の機能がPaaSとして提供されるようになることについての解説。
近い将来、Active Directoryを利用するだけのためにWindows Server OSや、ましてやサーバーハードウェアを維持する必要はなるなるかもしれません。

サンリオの大畑さんのセミナーは、System Center Orchestrator や PowerShellを利用してユーザー情報の管理を自動化する事例の紹介です。
私もActive Directoryでユーザー情報の更新を自動化する事に取り組んでいるお客様もあり、参考になります。

高添さんのセミナーは、今年リリース予定のWindows Server 2016の主にActive Directory Domain Serviceについての説明です。

村木さんのセミナーは、Windows 10やWindows Server 2016におけるPINや、Microsoft Passport、Virtual Secure Modeについての解説です。
新しいOS,新しい仕組みのセキュリティが高いことはわかりましたが、セキュリティの話は難しくてなかなか付いて行けません(笑)

当日の資料は、後日ここで公開されるようです。

ドキュメントは http://aka.ms/ad15thdocs
ビデオは http://aka.ms/ad15thvideo



さて、セミナーの終了後はお待ちかねの懇親会です。
今回は19FのOne Microsoftと呼ばれる広いカフェテリアで行われました。
10周年記念の際にも用意された、大きなActive Directoryケーキは今回もありました。

(写真3)AD15周年記念の大きなケーキ
20160318_AD15周年記念の大きなケーキ

(写真4)私はカットされたケーキのctの部分を食べました
20160318_AD15周年記念のケーキ(カット)

Active Directory 15周年の大きなケーキがお披露目され、みんなで写真を撮りました。
そして何故か横山先生とマイクロソフトのういこさんの2人でケーキ入刀(笑)
その後で小さくカットされたケーキが出てきてみんなで食べました。
私はActive Directoryの「ct」の部分を食べました。


こうしてAD15周年の記念イベントは大盛況で楽しく開催されました。
私もAD20周年、25周年まで現役でSEを続けられているか不安ですが、今後も出来るならActive Directoryに携わっていけたらなと思います。

あ、その後はセミナーでよく会う人達とさらに二次会で飲みました。
さすがに徹夜カラオケは無しと言う事で、終電前に解散しました(^^)
たまにはこんな楽しくてためになるイベントもいいですね。

(参考1)AD15周年記念イベント関連のURL

https://info.microsoft.com/JA-EMS-IPVNT-FY16-03Mar-18-Active-Directory-Security-Coference.html
Active Directory & Security Conference 2016
https://blogs.technet.microsoft.com/junichia/2016/02/26/318-active-directory-15th/
3/18 Active Directory 15th 記念カンファレンス 最終セッションリスト | Junichi Anno's blog
http://blog.livedoor.jp/itdesign/archives/2009677.html
ITdesignのブログ:Active Directory祭りに参加! - livedoor Blog(ブログ)
http://kogelog.com/2016/03/19/20160319-01/
Active Directory & Security Conference 2016 (AD 15th 記念セミナー) に参加してきました | 焦げlog


(参考2)2010年のAD10周年記念セミナーについて私が書いたブログです

http://norimaki2000.blog48.fc2.com/blog-entry-997.html
徒然なるままに Tech Fielders の集い 特別編 - おかげさまで Active Directory 10 周年 (その1)
http://norimaki2000.blog48.fc2.com/blog-entry-998.html
徒然なるままに Tech Fielders の集い 特別編 - おかげさまで Active Directory 10 周年 (その2)

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

PowerShellのGet-Dateコマンドレットの日付や時刻のフォーマット

PowerShellで作成したスクリプトでテキストファイルにログを出力するようにしました。
その時、ログファイル名の一部に「年月日-時分秒」を入れるようにしました。

こんな感じで年月日と時分秒を取得しています。
Get-Date -format yyyymmdd-hhmmss
しかし、若干違和感が。
あ、時刻の「時」の部分が12時間表記になっている。

と言うわけで、Get-Dateのフォーマットについて少し調べてみました。

(写真1)Get-Dateコマンドレットのフォーマット例
Get-Dateコマンドレットのフォーマット1

実行したコマンド
表示
結果
Get-Date
年月日-時(24時制)分秒
Get-Date -format yyyymmdd-hhmmss
年分日-時(12時制)分秒
×
Get-Date -format yyyymmdd-HHmmss
年分日-時(24時制)分秒×
Get-Date -format yyyyMMdd-hhmmss
年月日-時(12時制)分秒×
Get-Date -format yyyyMMdd-HHmmss
年月日-時(24時制)分秒
大文字のMは月を表します。
小文字のmは分を表します。
大文字のHは24時制の時を表します。
小文字のhは12時制の時を表します。

そのため今回は「Get-Date -format yyyyMMdd-HHmmss」が適切となりました。


(写真2)Get-Dateコマンドレットのフォーマットいろいろ
Get-Dateコマンドレットのフォーマット2
これを改行無しの1つのコマンドとして打ち込んだ結果が、この画像です。
@("d","D","f","F","g","G","M","O","R","s","t","T","u","U","Y") | %{$date=Get-Date -F $_ ;"$_, $date"}

詳しくはこちらのブログに解説があります。

http://tech.guitarrapc.com/entry/2013/01/23/120129
PowerShellのGet-Date -Formatで出力される標準の書式指定結果一覧 - tech.guitarrapc.cóm
http://tech.guitarrapc.com/entry/2013/02/09/030226
PowerShellで日付書式にカスタム書式パターンを指定する - tech.guitarrapc.cóm


工夫次第でいろいろなカスタム書式が指定できるみたいですね。
このブログを書いてる@guitarrapc_techさん。
PowerShellで難しいことをやろうとすると、よく出てきますね。
神のような人です。(たぶん)

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

PowerShellでGet-XXXXコマンドレットの結果をパイプでFormat-Tableに送る場合、-Aを付けると項目の幅を自動調整してくれる

Windows PowerShellのコマンド画面を開きます。
Get-XXXXコマンドレットの結果をパイプでFormat-Tableに送ってテーブル形式で表示する際、-Aオプションを付けると項目の幅を自動調整してくれます。

(写真1)Get-ADUserの結果をFormat-Tableに送ってテーブル形式で表示
Get-ADUserに-A付き
Windows Server 2008 R2 PowerShell 2.0の例

(写真2)Get-PSDriveの結果をFormat-Tableに送ってテーブル形式で表示
Get-PSDriveに-AutoSize付き
Windows 8.1 PowerShell 4.0の例

上記2つの画像ともに、
・1つ目のコマンドは-Aオプション無し
・2つ目のコマンドは-Aオプション有り
-Aオプションを付けると、各項目の幅を自動調整してくれるのがわかりますね。

これ、結構便利です。

(参考)
2つ目の画像の3つ目のコマンドを見て下さい。
-Aを入力してTABキーを押すと、続きを補完して-AutoSizeになります。
-Aは-AutoSizeの省略形でした。
また勉強になりました。

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

ARCserve Replicationの最新サービスパックのダウンロード場所

CA社(*1)が扱っていたバックアップソフト製品がArcserve社に分離・独立した事により、サポート情報やダウンロードなどがわかりにくくなってしまいました。
まあ、あくまでも個人的感想ですが。
(*1)Computer Associates社、後のCA Technologies社

なので、ARCserve Replicationの最新サービスパックをダウンロードできるURLをメモしておきます。

r16.5 → http://www.arcserve.com/jp/lpg/jpsupport/down/babxo165win.aspx
r16.0 → http://www.arcserve.com/jp/lpg/jpsupport/down/babxo16win.aspx
r15.0 → http://www.arcserve.com/jp/lpg/jpsupport/down/babxo15win.aspx
r12.5 → http://www.arcserve.com/jp/lpg/jpsupport/down/babxo125win.aspx

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

ノートパソコンのHDMI出力をアナログVGAに変換するサンワサプライのAD-HD16VGA

最近のノートパソコンは外部ディスプレイを接続するためにHDMIポートが付いていますが、アナログVGA(ミニD-Sub15ピン)のポートがありません。
外出先、特にお客様のところでプロジェクターを使うときに困ったりします。
と言うわけで、サンワサプライのAD-HD16VGAを買ってみました。

(写真1)ヨドバシカメラのインターネット通販で購入
ヨドバシカメラの通販で買ってみた
Amazon本体では取り扱っておらず、Amazonのマーケットプレイスに参加している販売店でも2300円程度。
ヨドバシカメラのインターネット通販では1770円(税込み送料込み)だったので、初めてこちらで購入。
コンビニでの受け取りは指定できなかったが、郵便受けに投函して配達完了になるメール便が指定できるのは良かった。
不在票で再配達したりの手間もいらず、小物の場合は超便利です。
設定しておけば配達完了のメールも送信されます。

(写真2)ノートPCにサンワサプライのAD-HD16VGAを装着
サンワサプライのAD-HD16VGAを装着
このパソコンは超薄型15mmのNEC VK17T/GSです。
これだけ薄いパソコンでもAD-HD16VGAは物理的な干渉はしませんでした。
パソコン本体が多少浮き上がるのを覚悟していたが、問題無しでした。

実際にこれを使ってプロジェクターに接続してみましたが、問題なく動作しました。
安価で小型軽量(16g)で、常時持ち歩くのも苦になりませんね。

テーマ : 周辺機器
ジャンル : コンピュータ

Active Directoryで配置する場所が違えば同じ名前のOUを作成する事が出来る

ふと気になって試してみました。
Active DirectoryのOUは、配置場所が異なれば同じ名前でも作成できるんですね。

環境はWindows Server 2012 R2ドメインコントローラー
フォレストの機能レベル、ドメインの機能レベル共にWindows Server 2012 R2
まあ、以前のバージョンから同じ仕様だと思いますが。

(写真1)OU_TEST02を複数作成してみた
OUの名前は重複可能
計5個の「OU_TEST02」を作成したところ。
配置するOUが異なれば、同じ名前のOUを作成する事が出来ます。

C:\>dsquery ou
"OU=Domain Controllers,DC=test01,DC=local"
"OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,DC=test01,DC=local"
"OU=OU_TEST01,OU=OU_TEST02,DC=test01,DC=local"



(写真2)一つのOU内では重複した名前は不可
同じOU内の重複は不可
当然ですが、一つのOUの中に同じ名前のOUを複数存在させることはできません。

オブジェクト OU_TEST02 を作成できません。
理由: 既に使用されている名前でオブジェクトをディレクトリに追加しようとしました。



これって便利かもしれないけど、管理するのは大変ですね。
誰かと話をするとき「じゃあOU_TEST02に配置しましょう」とか言っても、どのOU_TEST02かわかりにくいですから。
個人的には同じ名前のOUを作成しない方がいいかと思います。

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

Active Directoryのユーザーのプロパティで「ユーザーはパスワードを変更できない」にしてみる

Active Directoryのユーザーのプロパティで「ユーザーはパスワードを変更できない」のチェックをオンにすると、ユーザーは自分でパスワードが変更できないんだっけ?
変更しようとしたら、どんなメッセージが出るんだっけ?

気になったのでやってみました。

(写真1)「ユーザーはパスワードを変更できない」がオフの状態
11_変更可能_ユーザーのプロパティ

(写真2)クライアントPCでCtrl + Alt + Delを押してパスワードの変更
12_Ctrl+Alt+Delを押す

(写真3)変更前および変更後のパスワードを入力する
13_パスワードを変更してみる

(写真4)パスワードは変更されました
14_パスワードは変更されました

ここまでは普通ですよね。
パスワードが変更出来て当たり前です。
ではここからはパスワードを変更できないようにしてやってみます。

(写真5)「ユーザーはパスワードを変更できない」をオンにする
21_変更不可_ユーザーのプロパティ

(写真6)クライアントPCでCtrl + Alt + Delを押してパスワードの変更
22_Ctrl+Alt+Delを押す

(写真7)変更前および変更後のパスワードを入力する
23_パスワードを変更してみる

(写真8)アクセスが拒否されました
24_アクセスが拒否されました
「アクセスが拒否されました」のメッセージが出て、パスワードの変更に失敗します。


ドメインメンバーであるクライアントPCでは、Ctrl + Alt + Delを押してパスワード変更画面は呼び出せるし、変更前と変更後のパスワードの入力もできる。
しかし変更するためにOKを押すと、「アクセスが拒否されました」になると。
エンドユーザーの操作性としては今一歩な感じもしないでもないですが、ユーザーが自分のパスワードを変更する権限を削除したと考えると、まあこうなるのはしかたないですね。

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

【メモ】Windowsの情報調査簡易版バッチ

Windowsの情報収集用のバッチファイルです。
( 情報調査簡易版20141224.bat )

@echo off
color 3f
title 情報調査
SET LOGPATH=%computername%-logs
echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
echo ■ このバッチは「管理者として実行」する必要があります ■
echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
echo %date% %time% このコンピューターは%computername%です。
echo %date% %time% 実行したユーザーは%userdomain%\%username%です。
echo %date% %time% ログ収集には数分程度かかりますが、サービス停止はありません。
echo %date% %time% ログの出力先は%cd%\%LOGPATH%です。
echo %date% %time% このフォルダは削除して作成しなおします。
echo %date% %time% 何かキーを押すとログ収集を開始します。
pause

rd %LOGPATH% /s /q
md %LOGPATH%

echo %date% %time% システム情報
set >%LOGPATH%\set.log
ver >%LOGPATH%\ver.log
start msinfo32 /report %LOGPATH%\msinfo32.log
fsutil fsinfo drives >%LOGPATH%\fsutil_fsinfo_drives.log
systeminfo >%LOGPATH%\systeminfo.log
cscript %systemroot%\system32\slmgr.vbs /dli >%LOGPATH%\slmgr_dli.log
cscript %systemroot%\system32\slmgr.vbs /dlv >%LOGPATH%\slmgr_dlv.log

echo %date% %time% ネットワーク情報
ipconfig /all >%LOGPATH%\ipconfig.log
arp -a -v >%LOGPATH%\arp.log
net accounts >%LOGPATH%\net_accounts.log
net config server >%LOGPATH%\net_config_server.log
net config workstation >%LOGPATH%\net_config_workstation.log
net share >%LOGPATH%\net_share.log
net start >%LOGPATH%\net_start.log
net time >%LOGPATH%\net_time.log
net use >%LOGPATH%\net_use.log
net user >%LOGPATH%\net_user.log
route print >%LOGPATH%\route_print.log
getmac /v /fo list >%LOGPATH%\getmac.log

netstat >%LOGPATH%\netstat.log
netstat -a >%LOGPATH%\netstat_a.log
netstat -b >%LOGPATH%\netstat_b.log
netstat -n >%LOGPATH%\netstat_n.log
netstat -ab >%LOGPATH%\netstat_ab.log
netstat -an >%LOGPATH%\netstat_an.log
netstat -abn >%LOGPATH%\netstat_abn.log
netstat -ano >%LOGPATH%\netstat_ano.log
netstat -abno >%LOGPATH%\netstat_abno.log

echo netdom関連は省略

echo %date% %time% nslookup %computername% >%LOGPATH%\nslookup.log 2>&1
nslookup %computername% >>%LOGPATH%\nslookup.log 2>&1
echo %date% %time% nslookup www.google.com >>%LOGPATH%\nslookup.log 2>&1
nslookup www.google.com >>%LOGPATH%\nslookup.log 2>&1

echo %date% %time% ping %computername% >%LOGPATH%\ping.log 2>&1
ping %computername% >>%LOGPATH%\ping.log 2>&1
echo. >>%LOGPATH%\ping.log 2>&1
echo %date% %time% ping www.google.com >>%LOGPATH%\ping.log 2>&1
ping www.google.com >>%LOGPATH%\ping.log 2>&1

echo %date% %time% ドライバ情報
driverquery /v /fo csv >%LOGPATH%\driverquery.log
echo %date% %time% シャドウコピー情報
vssadmin list shadows >%LOGPATH%\vssadmin_list_shadows.log
echo %date% %time% タスクスケジューラ情報
schtasks /query >%LOGPATH%\schtasks.log
schtasks /query /v /fo csv>%LOGPATH%\schtasks.csv
echo %date% %time% コンソール画面情報
qwinsta >%LOGPATH%\qwinsta.log
echo %date% %time% グループポリシー情報
gpresult /z >%LOGPATH%\gpresult_z.log
echo %date% %time% ログオンユーザー情報
echo %date% %time% whoami >>%LOGPATH%\whoami.log
whoami >>%LOGPATH%\whoami.log
echo %date% %time% whoami /upn>>%LOGPATH%\whoami.log
whoami /upn >>%LOGPATH%\whoami.log
echo %date% %time% whoami /fqdn>>%LOGPATH%\whoami.log
whoami /fqdn >>%LOGPATH%\whoami.log
echo %date% %time% whoami /user>>%LOGPATH%\whoami.log
whoami /user >>%LOGPATH%\whoami.log

echo %date% %time% サービス情報
sc queryex |find /i "DISPLAY_NAME">%LOGPATH%\sc_queryex_active.tmp
sort %LOGPATH%\sc_queryex_active.tmp /output %LOGPATH%\sc_queryex_active.log
del %LOGPATH%\sc_queryex_active.tmp /q

sc queryex state= inactive |find /i "DISPLAY_NAME">%LOGPATH%\sc_queryex_inactive.tmp
sort %LOGPATH%\sc_queryex_inactive.tmp /output %LOGPATH%\sc_queryex_inactive.log
del %LOGPATH%\sc_queryex_inactive.tmp /q

echo %date% %time% 時刻同期情報を確認するためにWindows Timeサービスを起動します
ping -n 5 %COMPUTERNAME% >nul

echo %date% %time% 時刻同期情報
echo 時刻同期確認 詳しくはhttp://www.atmarkit.co.jp/fwin2k/operation/winntp202/winntp202_01.html >>%LOGPATH%\regquery_時刻同期関連.log
echo NTPの同期をどこから行うかの設定(1) >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters /v type >>%LOGPATH%\regquery_時刻同期関連.log
echo NoSync 同期を行わない(/syncfromflags:no) >>%LOGPATH%\regquery_時刻同期関連.log
echo NTP NtpServerレジストリ値(次の表参照)で指定したサーバから同期を行う(/syncfromflags:manual) >>%LOGPATH%\regquery_時刻同期関連.log
echo NT5DS ドメイン階層により決定されたサーバから同期を行う(/syncfromflags:domhier) >>%LOGPATH%\regquery_時刻同期関連.log
echo AllSync ドメイン階層と外部NTPサーバの両方から同期を行う(/syncfromflags:all) >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo NTPの同期をどこから行うかの設定(2) >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters /v NtpServer >>%LOGPATH%\regquery_時刻同期関連.log
echo 0x1 Symmetric Activeモードで同期/Windowsで実装した一定間隔での同期 >>%LOGPATH%\regquery_時刻同期関連.log
echo 0x2 Symmetric Activeモードで同期/フォールバック時に利用するNTPサーバを指定 >>%LOGPATH%\regquery_時刻同期関連.log
echo 0x4 Symmetric Activeモードで同期/RFC1305に準拠した間隔での同期 >>%LOGPATH%\regquery_時刻同期関連.log
echo 0x8 Clientモードで同期/RFC1305に準拠した間隔での同期 >>%LOGPATH%\regquery_時刻同期関連.log
echo これらの値は組み合わせが可能であり、例えば0x9の場合はClientモードかつ一定間隔で同期を意味する >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo 同期間隔の設定(一定間隔で同期の場合) >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval >>%LOGPATH%\regquery_時刻同期関連.log
echo NtpServerレジストリ値の第2パラメータが0x1か0x9の場合に、この値が利用される >>%LOGPATH%\regquery_時刻同期関連.log
echo ドメイン環境では0xe10、10進数で3600秒が規定値 >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo 同期間隔の設定(同期間隔が変動する場合の最小間隔) >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MinPollInterval >>%LOGPATH%\regquery_時刻同期関連.log
echo 秒数の2の対数で指定される >>%LOGPATH%\regquery_時刻同期関連.log
echo 例えば64秒の場合、64=2^6(2の6乗)なので、6を指定する >>%LOGPATH%\regquery_時刻同期関連.log
echo 4(16秒)未満の値は指定できない >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo 同期間隔の設定(同期間隔が変動する場合の最大間隔) >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxPollInterval >>%LOGPATH%\regquery_時刻同期関連.log
echo 秒数の2の対数で指定される >>%LOGPATH%\regquery_時刻同期関連.log
echo 例えば1024秒の場合、1024=2^10(2の10乗)なので、10(0xa)を指定する >>%LOGPATH%\regquery_時刻同期関連.log
echo 15(32768秒)を超える大きな値は指定できない >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo NTPサーバの有効・無効の設定 >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer /v Enabled >>%LOGPATH%\regquery_時刻同期関連.log
echo 0x1なら有効、0x0なら無効。ドメインコントローラーは規定で有効。 >>%LOGPATH%\regquery_時刻同期関連.log
echo --------------------------------------------------- >>%LOGPATH%\regquery_時刻同期関連.log
echo 時刻サーバとして公開するかの設定 >>%LOGPATH%\regquery_時刻同期関連.log
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v AnnounceFlags >>%LOGPATH%\regquery_時刻同期関連.log
echo 全bitが0 (0)時刻サーバとして公開しない >>%LOGPATH%\regquery_時刻同期関連.log
echo 1bit目が1(1)時刻サーバとして公開する >>%LOGPATH%\regquery_時刻同期関連.log
echo 2bit目が1(2)他のマシンとの兼ね合いで、時刻サーバとなるか決定される >>%LOGPATH%\regquery_時刻同期関連.log
echo 3bit目が1(4)権限があるサーバとして公開される >>%LOGPATH%\regquery_時刻同期関連.log
echo 4bit目が1(8)他のマシンとの兼ね合いで、権限があるサーバとなるか決定される >>%LOGPATH%\regquery_時刻同期関連.log
echo 4ビットの2進数として扱う。例)値が0xaなら2進数で1010なので、4ビット目と2ビット目が1となる。 >>%LOGPATH%\regquery_時刻同期関連.log

net start "Windows Time">>%LOGPATH%\w32tm_query_status.log 2>&1
echo %date% %time% w32tm /query /status /verboseコマンドの実行>>%LOGPATH%\w32tm_query_status.log 2>&1
w32tm /query /status /verbose >>%LOGPATH%\w32tm_query_status.log 2>&1

echo ■w32tm /monitor■ >>%LOGPATH%\w32tm_monitor.log
echo. >>%LOGPATH%\w32tm_monitor.log
w32tm /monitor >>%LOGPATH%\w32tm_monitor.log
echo ■w32tm /monitor /domain:%userdomain%■ >>%LOGPATH%\w32tm_monitor.log
echo. >>%LOGPATH%\w32tm_monitor.log
w32tm /monitor /domain:%userdomain% >>%LOGPATH%\w32tm_monitor.log
echo ■w32tm /monitor /computers:ntp.nict.jp■ >>%LOGPATH%\w32tm_monitor.log
echo. >>%LOGPATH%\w32tm_monitor.log
w32tm /monitor /computers:ntp.nict.jp >>%LOGPATH%\w32tm_monitor.log
rem wmic ntevent where "(logfile='system' and SourceName= 'Microsoft-Windows-Time-Service')" list full /format:csv >%LOGPATH%\wmic_ntevent_system_time-service.log

echo dsquery関連は省略

echo %date% %time% インストールされているアプリケーション情報
echo %date% %time% インストールされているアプリケーション情報 >%TEMP%\ReqQueryUninstall.log 2>&1
reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall /s | find /i " DisplayName" >>%TEMP%\ReqQueryUninstall.log 2>&1
sort %TEMP%\ReqQueryUninstall.log /o %LOGPATH%\ReqQueryUninstall.log

echo %date% %time% 時刻同期関連のイベントログを収集
wevtutil export-log system %LOGPATH%\EVENTLOG-SYSTEM.evtx /q:"*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog' or @Name='Microsoft-Windows-Kernel-General' or @Name='Microsoft-Windows-Time-Service']]]"

echo.
echo %date% %time% ログ収集は終了しました
pause

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

仕事でちょっと広島に

ちょっと広島に行ってきます。
知北さんみたいに飛行機から富士山のきれいな写真を撮ろうと思ったけど、雲が厚くて無理でした。

(写真1)飛行機の窓から外を見た風景
広島に向かう飛行機からの風景
そうそう。
離陸前に「化粧室から煙が出た事を感知するアラームが…」のアナウンスには少し焦りました。
しかも「誤作動だと判断し」との事でそのまま離陸したが、「誤作動でした」と断言して欲しかった。(汗

(写真2)広島駅新幹線口は外装工事中?
広島駅新幹線口
広島空港からリムジンバスでJR広島駅に到着。
広島駅新幹線口は外装工事中のようでした。
しばらくしたらきれいになるのかな。

参考
知北さんの撮った富士山の写真の例


私もこんな風な写真を撮るつもりでいたんですけど、無理でした。

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

知北さんの力作「Windows Server 2003 サポート終了対策」

知北さんの力作「Windows Server 2003 サポート終了対策」の最終版が出ました。
いろいろ参考になる内容が詰まっています。
しかし最後に追加された18項目。
気になるタイトルがいくつかあり、しかも内容無しURL無し。気になる。

http://www.slideshare.net/wintechq/windows-server-2003-eos
Windows Server 2003 サポート終了対策


Windows Server 2003 サポート終了とは関係なく、旧サーバーから新サーバーへの移行についてのヒントが多数盛り込まれているので、新旧サーバーの移行に携わる人にはとても参考になると思います。
あくまでもWindowsサーバーに関して、ですが。

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

PowerShellのGet-HotFixコマンドレットをリモートのサーバーに対して実行してみる

前回はローカルマシンに対してGet-HotFixコマンドレットを実行して、インストールされている修正プログラムを取得してみました。
今回はリモートサーバーに対して実行してみます。

(写真1)リモートサーバーに対してGet-HotFixを実行
リモートサーバーに対してGet-HotFixを実行

この書き方で、リモートのコンピューターに対しても実行可能でした。
しかしリモートサーバーのパスワードの入力(資格情報の要求)は求められます。
「Get-HotFix -ComputerName <コンピュータ名> -Credential <ユーザー名>」

多数のリモートサーバーに対してこれを実行する際に、1台ごとにパスワードを入力していたら実際には運用できないので、何らかの回避する方法はあるのでしょう。
今回はここまでです。
パスワードを暗号化したファイルから与えるとか、手入力せずに済む方法がわかったらまた書きます。

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

PowerShellのGet-HotFixコマンドレットでインストールされている修正プログラムを取得する

Windowsにインストールされている修正プログラム(パッチ)を取得する方法ですが、今まではSysteminfoコマンドを利用していました。
しかしインストールされているパッチが非常に多くなると、Systeminfoコマンドではパッチの一覧が表示されなくなる不具合があります。
そのため最近はPowerShellのGet-HofFixコマンドレットを使用するようになりました。
Get-HofFixコマンドレットはPowerShell 2.0以降で使用可能なようです。

(図1)Systeminfoコマンドの実行
C:\Windows\system32\cmd.exe
C:\>systeminfo

ホスト名:               WINDOWS7SP1
OS 名:                  Microsoft Windows 7 Professional
OS バージョン:          6.1.7601 Service Pack 1 ビルド 7601
OS 製造元:              Microsoft Corporation
OS 構成:                メンバー ワークステーション
OS ビルドの種類:        Multiprocessor Free
登録されている所有者:   norimaki
登録されている組織:    
プロダクト ID:          00371-221-0601876-86639
最初のインストール日付: 2014/03/08, 23:28:55
システム起動時間:       2015/07/12, 14:51:03
システム製造元:         Microsoft Corporation
システム モデル:        Virtual Machine
システムの種類:         X86-based PC
プロセッサ:             1 プロセッサインストール済みです。
                        [01]: x64 Family 6 Model 42 Stepping 7 GenuineIntel ~2195 Mhz
BIOS バージョン:        American Megatrends Inc. 090006 , 2012/05/23
Windows ディレクトリ:   C:\Windows
システム ディレクトリ:  C:\Windows\system32
起動デバイス:           \Device\HarddiskVolume1
システム ロケール:      ja;日本語
入力ロケール:           ja;日本語
タイム ゾーン:          (UTC+09:00) 大阪、札幌、東京
物理メモリの合計:       1,024 MB
利用できる物理メモリ:   609 MB
仮想メモリ: 最大サイズ: 2,048 MB
仮想メモリ: 利用可能:   1,439 MB
仮想メモリ: 使用中:     609 MB
ページ ファイルの場所:  C:\pagefile.sys
ドメイン:               test01.local
ログオン サーバー:      \\WINDOWS7SP1
ホットフィックス:       255 ホットフィックスがインストールされています。
                        [01]: KB955484
                        [02]: KB982861
                        [03]: 982861
                        [04]: KB2670838


(中略)

                        [242]: KB3046269
                        [243]: KB3046306
                        [244]: KB3046482
                        [245]: KB3048070
                        [246]: K
ネットワーク カード:    1 NIC(s) インストール済みです。
                        [01]: Microsoft Hyper-V ネットワーク アダプター
                              接続名:        ローカル エリア接続 1
                              DHCP が有効:    はい
                              DHCP サーバー:    192.168.0.1
                              IP アドレス
                              [01]: 192.168.0.6

C:\>


「255 ホットフィックスがインストールされています。」と表示されています。
しかし246番目のホットフィックスがKB番号の途中で切れているので、これ以降は不明です。

(図2)PowerShellのGet-HotFixコマンドレットを実行
C:\Windows\system32\cmd.exe
C:\>powershell.exe Get-HotFix

Source        Description      HotFixID      InstalledBy          InstalledOn
------        -----------      --------      -----------          -----------
WINDOWS7SP1   Update           KB955484      WINDOWS7SP1\norimaki 2014/03/09 0:00:00
WINDOWS7SP1   Update           KB982861      WINDOWS7SP1\norimaki 2015/01/17 0:00:00
WINDOWS7SP1   Update           982861        WINDOWS7SP1\norimaki 2015/01/17 0:00:00
WINDOWS7SP1   Update           KB2670838     NT AUTHORITY\SYSTEM  2014/03/09 0:00:00
WINDOWS7SP1   Update           KB958830      WINDOWS7SP1\TestU... 2015/06/03 0:00:00
WINDOWS7SP1   Security Update  KB2479943     WINDOWS7SP1\norimaki 2014/03/09 0:00:00
WINDOWS7SP1   Security Update  KB2491683     WINDOWS7SP1\norimaki 2014/03/09 0:00:00

(中略)

WINDOWS7SP1   Security Update  KB3061518     NT AUTHORITY\SYSTEM  2015/07/12 0:00:00
WINDOWS7SP1   Security Update  KB3063858     NT AUTHORITY\SYSTEM  2015/07/12 0:00:00
WINDOWS7SP1   Update           KB3068708     NT AUTHORITY\SYSTEM  2015/07/12 0:00:00
WINDOWS7SP1   Update           KB976902      WINDOWS7SP1\Admin... 2010/11/20 0:00:00
WINDOWS7SP1   Update           KB982018      NT AUTHORITY\SYSTEM  2014/03/09 0:00:00



C:\>powershell.exe Get-HotFix |find /i "WINDOWS7SP1" /c
255

C:\>


こんな感じでインストールされている修正プログラムの一覧が表示されます。
Get-HotFixコマンドレットでは255行すべてが表示されます。

今回の例ではコマンドプロンプト(cmd.exe)からpowershell.exeを呼び出して、Get-HotFixの結果をパイプでfindに送って、/cで行数カウントしています。
するとSourceがWINDOWS7SP1である修正プログラムが255行存在していることがわかります。

(図3)Get-HotFixをexport-csvでテキストファイルにエクスポートする
Windows PowerShell
PS C:\> Get-HotFix |sort HotFixID |export-csv -encoding default C:\Temp\Get-HotFix.csv
PS C:\>

いつものように、Get-HotFixの結果をパイプでexport-csvに送って、テキストファイルにエクスポートする事もできます。
この例では「sort HotFixID」を指定して、HotFixID順にソートしています。

多数の修正プログラムがインストールされた環境でsysteminfoではそれが表示されないのは、Systeminfoの不具合のようです。
systeminfo.exeではバッファサイズに制限があるため、修正プログラムが200以上もインストールされていると、正しく表示されない場合があるとの事。
Windows Server 2003についてのサポート技術情報ですが、少なくともWindows Server 2008 R2 / Windows 7では状況は同じです。
もう、これが改善する事は無いのでしょうね。
wmic qfeコマンドを使用するか、PowerShellのGet-HotFixを使用するしかないのでしょう。

http://support.microsoft.com/kb/2644427/ja
SystemInfo.exe does not display all updates in Windows Server 2003


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

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
ジャンル : コンピュータ

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

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:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



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


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

月別アーカイブ
リンク
RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。