SQL Server 2017 Express Editionをオフラインインストールする(4/4) - SQL Serverアップデート編

インターネットに接続できない環境で、Windows Server 2016上にSQL Server 2017 Express Editionをインストールする検証の続きです。(今回が最後)

ブログ記事は4回に分かれています。
(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編 ←今回

SQL Server 2017およびそれ以降ではサービスパックは廃止されました。
Critical Update(CU)と呼ばれる累積的な更新プログラムが定期的にリリースされるモデルになっています。
これにより最新のCUを適用するだけで最新化されます。
パッチごとに適用するしない(しているしていない)で悩むことも無くなります。
このページから各CUのダウンロード先にリンクできます。

https://support.microsoft.com/ja-jp/help/4047329/sql-server-2017-build-versions
SQL Server 2017 ビルド バージョン



(図1)SQL Server 2017アップデートモジュールのインストール開始
ここでは「SQLServer2017-KB4557397-x64.exe」を起動してインストールを開始します。
SnapCrab_2020-9-10_10-14-6_No-00.png

(図2)インストールモジュールが解凍される
SnapCrab_2020-9-10_10-14-43_No-00.png

(図3)インストールの準備中画面
SnapCrab_2020-9-10_10-15-30_No-00.png

(図4)ライセンス条項に同意して次へ
SnapCrab_2020-9-10_10-16-39_No-00.png

(図5)そのまま次へ
SnapCrab_2020-9-10_10-17-13_No-00.png

(図6)Microsoft Rオープンのインストールで「承諾」して、次へ
SnapCrab_2020-9-10_10-19-31_No-00.png

(図7)Pythonのインストールで「承諾」して、次へ
SnapCrab_2020-9-10_10-24-24_No-00.png

(図8)Microsoft Machine Learning Serverコンポーネントのオフラインインストール
RとPythonのモジュールを置いた場所を指定して、次へ。
SnapCrab_2020-9-10_10-27-8_No-00.png

(図9)使用中のファイルの確認で次へ
SnapCrab_2020-9-10_10-29-50_No-00.png

(図10)更新準備完了で「更新」ボタン
SnapCrab_2020-9-10_10-30-26_No-00.png

(図11)インストールが開始されます
SnapCrab_2020-9-10_10-36-00_No-00.png

(図12)RとPythonの更新に失敗
どうしてかわからないのですが、RとPythonの更新に失敗しました。
どうしようもないので「閉じる」を押します。
SnapCrab_2020-9-10_10-42-8_No-00.png

(図13)SQL Server Management Studioの起動
試しにSQL Server Management Studioを起動してSQL Server 2017 Express Editionのインスタンスに接続してみます。
SnapCrab_2020-9-10_10-46-29_No-00.png

(図14)プロパティの表示
SQLEXPRESSインスタンスを右クリックしてプロパティを開きます。
SnapCrab_2020-9-10_10-47-20_No-00.png

(図15)バージョン情報の確認
SQL Server 2017 Express EditionのSQLEXPRESSインスタンスのバージョンが「14.0.3335.7」になっています。
SnapCrab_2020-9-10_10-47-42_No-00.png


「14.0.3335.7」はSQL Server 2017のCU21になります。
これは今日2020/9/23時点では最新のCUです。

RとPythonの更新に失敗する現象は未解決のままですが、SQL Server 2017の内部バージョンは更新されているので、今回はこれで完了とします。
インターネットに接続できない状態でSQL Server 2017をアップデートする際に、RとPythonの更新も成功させる方法を知っている人がいたら教えてくださいm(__)m

(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編 ←今回

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

SQL Server 2017 Express Editionをオフラインインストールする(3/4) - SQL Server Management Studio編

インターネットに接続できない環境で、Windows Server 2016上にSQL Server 2017 Express Editionをインストールする検証の続きです。

ブログ記事は4回に分かれる予定です。
(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio) ←今回
(4/4)SQL Serverアップデート編

前回の「SQL Serverインストール編」では、SQL Server 2017 Express Editionをインストールしました。
今回はSQL Serverの管理ツールであるSQL Server Management Studio(SSMS)をインストールします。

SSMSのダウンロードについては、ここに説明があります。

SQL Server Management Studio (SSMS) のダウンロード



(図1)SQL Server Management Studio (SSMS) のダウンロード
上記ページは日本語で開設されているのですが、「 SQL Server Management Studio (SSMS) のダウンロード」のリンクをクリックすると、英語版のSQL Server Management Studioをダウンロードしてしまいます。
日本語版は同じページのもう少し下の方にある「使用できる言語」の「日本語」をクリックしてダウンロードします。
SQL Serverのようにオンラインインストールのための小さなモジュールではなく、SSMSのインストールに必要なものすべてが含まれるインストール媒体がダウンロードできます。
インターネットに接続できるコンピューターで「SSMS-Setup-JPN.exe」をダウンロードし、何らかの方法でインストールするコンピューターにコピーして保存します。
日本語版はここ

(図2)SSMSのインストーラーを起動
「SSMS-Setup-JPN.exe」が日本語版SQL Server Management Studioのインストーラーなので、これも起動してインストールを開始します。(SSMS-Setup-ENU.exeは英語版です)
SnapCrab_2020-9-10_9-40-13_No-00.png

(図3)SSMSのインストール開始
「インストール」を押してインストールを開始します。
必要であればインストール先のパスを変更します。
SnapCrab_2020-9-10_9-40-29_No-00.png

(図4)インストールの実行中
SnapCrab_2020-9-10_9-42-39_No-00.png

(図5)インストールの完了
SnapCrab_2020-9-10_9-43-26_No-00.png

(図6)SSMSの起動
Windowsキーを押してメニューを起動し、SQL Server Management Studioを起動します。
スタートボタンを押したところ

(図7)SQL Serverに接続
この時点ではまだ言語は英語の設定です。
「Connect」を押してSQL Serveに接続します。
SnapCrab_2020-9-10_9-46-1_No-00_20200920052504146.png

(図8)オプション設定を開く
SQL Server Management Studioの画面が表示されたら、Tools > Optionsを開く
SnapCrab_2020-9-10_9-46-55_No-00.png

(図9)言語の設定を変更
International Settings > Languageをクリックして「日本語」を選択して、OKボタン。
SnapCrab_2020-9-10_9-48-10_No-00.png

(図10)警告のダイヤログボックス
SQL Server Management Studioを再起動しないと言語の変更が有効にならない旨のメッセージが表示するので、OKボタンを押します。
そしてSQL Server Management Studioを×で終了させ、再度起動します。
SnapCrab_2020-9-10_9-48-46_No-00.png

(図11)SQL Serverに接続
今度は日本語で表示されます。
サーバー名と接続先のインスタンス名が表示されていな場合、サーバー名の欄ををクリックします。
SnapCrab_2020-9-10_9-50-47_No-00.png

(図12)接続先の選択
ここではデータベースエンジン > WIN2016\SQLEXPRESSを指定してOKを押します。
WIN2016はこのコンピューターのコンピュータ名、SQLEXPRESSはSQL Server 2017のインスタンス名です。
SnapCrab_2020-9-10_9-51-2_No-00.png

(図13)SQL Serverに接続
接続ボタンを押します。
SnapCrab_2020-9-10_9-51-13_No-00.png

(図14)SSMSが起動する
SQL Server Management Studioは起動しますが、今後は日本語になっています。
試しにWIN2016\SQLEXPRESSインスタンスを選んで右クリック > プロパティを表示しています。
SnapCrab_2020-9-10_9-52-28_No-00.png

(図15)プロパティの表示
WIN2016\SQLEXPRESSインスタンスの概要が表示されます。
キャンセルを押して、SQL Server Management Studioを終了させます。
バージョン「14.0.1000.169」はSQL Server 2017の初期バージョン(GA)で、何もアップデートが適用されていない状態です。
SnapCrab_2020-9-10_9-53-53_No-00.png

今回はSQL Server Management Studioをインストールしました。
次回はSQL Server 2017のアップデートを適用します。

(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio) ←今回
(4/4)SQL Serverアップデート編

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

SQL Server 2017 Express Editionをオフラインインストールする(2/4) - SQL Serverインストール編

インターネットに接続できない環境で、Windows Server 2016上にSQL Server 2017 Express Editionをインストールする検証の続きです。

ブログ記事は4回に分かれる予定です。
(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編 ←今回
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編

前回の「SQL Serverダウンロード編」では、インストールに必要な以下の3つのモジュールを、インターネットに接続できるコンピュータでダウンロードしました。
[1]Microsoft SQL Serverのインストールモジュール
[2]Microsoft Rのモジュール
[3]Microsoft Pythonのモジュール

これらのモジュールを、実際にインストールを行うコンピュータ(Windows Server 2016)の適当なフォルダにコピーして保存します。
今回はSQL Serverのモジュールはダウンロードフォルダに置き、Rと PythonのモジュールはH:\Tempフォルダに置きました。

(図1)H:\TEMPフォルダにRと Pythonのモジュールを置く
ファイル名のロケールIDは英語の1033から日本語の1041に変更しておくこと。
(前回の「SQL Serverダウンロード編」を参照)
SnapCrab_2020-9-9_22-57-53_No-00.png

(図2)ダウンロードフォルダに置いたSQL Server 2017のモジュールを実行する
SnapCrab_2020-9-9_22-58-28_No-00.png

(図3)インストールモジュールを展開するフォルダを指定
今回は既定値のままでOK。
SnapCrab_2020-9-9_22-58-57_No-00.png

(図4)インストールモジュールが展開される
SnapCrab_2020-9-9_22-59-11_No-00.png

(図5)SQL Serverインストールセンター
ここで「SQL Serverの新規スタンドアロンインストールを実行するか、既存のインストールに機能を追加」をクリック
SnapCrab_2020-9-10_0-25-19_No-00.png

(図6)ライセンス条項に同意して、次へ
SnapCrab_2020-9-10_0-27-34_No-00.png

(図7)Microsoft Updateは既定値のまま、次へ
SnapCrab_2020-9-10_0-28-17_No-00.png

(図8)製品の更新プログラム
インターネットに接続できないのでエラーが出るが、そのまま次へ
SnapCrab_2020-9-10_0-29-31_No-00.png

(図9)インストールルール
Windowsファイアウォールで警告が出ます。
これはSQL Serverの接続なポートを開放する旨の警告のようです。
ここでは気にせずに、次へ。
SnapCrab_2020-9-10_0-33-9_No-00.png

(図10)ルールチェックの結果
前画面でWindowsファイアウォールの「警告」をクリックするとこの画面がポップアップするので、OKを押して閉じる。
インストールルールの画面に戻ったら、次へ。
SnapCrab_2020-9-10_0-33-29_No-00.png

(図11)機能の選択
SQL Serverのコンポーネントは既定値のまま。
インストール先である「インスタンスルートディレクトリ」なども既定値のまま。
SnapCrab_2020-9-10_0-34-34_No-00.png

(図12)コンポーネントの選択肢
SQL Server 2017 Express Editionのインストールで選べるコンポーネント
今回はこの既定値のままとします。
コンポーネントの選択肢

(図13)インスタンスの構成
今回は既定値のままです。(名前付きインスタンスで、インスタンスIDは「SQLEXPRESS」)
SnapCrab_2020-9-10_0-38-0_No-00.png

(図14)サーバーの構成(サービスアカウント)
Windows上のサービスを起動するアカウントやスタートアップの種類は既定値のまま。
SnapCrab_2020-9-10_0-40-9_No-00.png

(図15)サーバーの構成(照合順序)
データベースの照合順序は既定値の「Japanese_CI_AS」のまま、次へ。
SnapCrab_2020-9-10_0-40-36_No-00.png

(図16)データベースエンジンの構成(サーバーの構成)
今回は既定値の「Windows認証」モードで。
SQL Serverの管理者も既定値のAdministrator。
SnapCrab_2020-9-10_0-42-6_No-00.png

(図17)データベースエンジンの構成(データディレクトリ)
この図は既定値です。
データルートディレクトリは、インストール先のディレクトリである「C:\Program Files\Microsoft SQL Server」になっています。
SnapCrab_2020-9-10_0-43-24_No-00.png

(図18)データベースエンジンの構成(データディレクトリ)
ここではデータルートディレクトリを「D:\MSSQL」に変更します。
その他のディレクトリも自動で変わります。
SnapCrab_2020-9-10_0-44-20_No-00.png

(図19)データベースエンジンの構成(TempDB)
全て既定値のままとします。
SnapCrab_2020-9-10_0-45-15_No-00.png

(図20)データベースエンジンの構成(ユーザーインスタンス)
これも既定値のままとします。
SnapCrab_2020-9-10_0-45-26_No-00.png

(図21)データベースエンジンの構成(FILESTREAM)
これも既定値のまま、次へ。
SnapCrab_2020-9-10_0-45-43_No-00.png

(図22)Microsoft Rオープンのインストールに同意する
「承諾」ボタンを押します。
SnapCrab_2020-9-10_0-46-15_No-00.png

(図23)Microsoft Rオープンのインストールに同意する
数秒すると「承諾」ボタンが薄いグレーになり、「次へ」ボタンが押せるようになったら、次へ。
SnapCrab_2020-9-10_0-46-37_No-00.png

(図24)Pythonのインストールに同意する
「承諾」ボタンを押します。
SnapCrab_2020-9-10_0-46-53_No-00.png

(図25)Pythonのインストールに同意する
数秒すると「承諾」ボタンが薄いグレーになり、「次へ」ボタンが押せるようになったら、次へ。
SnapCrab_2020-9-10_0-48-1_No-00.png

(図26)Microsoft Machine Learning Serverコンポーネントのオフラインインストール
「Microsoft Machine Learning Serverコンポーネント」とはRとPythonのモジュールを指しているようです。
インストールパスの右側の「参照ボタン」を押します。
SnapCrab_2020-9-10_0-48-37_No-00.png

(図27)Microsoft Machine Learning Serverコンポーネントのオフラインインストール
フォルダの参照で、RとPythonのモジュールを置いた場所(今回はH:\TEMP)を指定し、OK。
SnapCrab_2020-9-10_0-49-2_No-00.png

(図28)Microsoft Machine Learning Serverコンポーネントのオフラインインストール
RとPythonのモジュールを置いた場所を指定できたら、次へ。
SnapCrab_2020-9-10_0-49-42_No-00.png

(図29)インストールの進行状況
SQL Server 2017のインストールが始まります。
SnapCrab_2020-9-10_0-50-26_No-00.png

(図30)完了
SQL Server 2017のインストールが完了したので、「閉じる」
SnapCrab_2020-9-10_1-15-8_No-00.png

(図31)コントルールパネルのプログラムと機能
SnapCrab_2020-9-10_1-19-51_No-00.png

(図32)サービスの管理画面
SnapCrab_2020-9-10_1-44-11_No-00.png


これでSQL Server 2017 Express Editionがインストールできました。
次回はSQL Server Management Studioのインストールです。

(1/4)SQL Serverダウンロード編
(2/4)SQL Serverインストール編 ←今回
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編

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

SQL Server 2017 Express Editionをオフラインインストールする(1/4) - SQL Serverダウンロード編

Windows Server 2016上にSQL Server 2017 Express Editionをインストールする検証をしてみました。
現在の最新版はそれぞれWindows Server 2019とSQL Server 2019ですが、私の担当している仕事上ではまだまだ1つ前のバージョンが使われる事が多いので、Windows Server 2016上にSQL Server 2017 Express Editionにしています。

また今回はインストール対象のサーバーがインターネットに接続できない状態を想定しています。
実際にお客さまの環境ではよくある事ですね。
そのため、必要なモジュールを事前にダウンロードして揃えておいてから作業に入ります。

SQL Server 2017をインターネットに接続できない環境でインストールする方法はマイクロソフトのこの記事で説明されているのですが、日本語訳がおかしかったり、日本語環境ではそのままではインストール出来なかったりする部分があるので要注意です。
(このブログ記事で解説します)

https://docs.microsoft.com/ja-jp/sql/machine-learning/install/sql-ml-component-install-without-internet-access?view=sql-server-2017
インターネットへのアクセスなしでのインストール - SQL Server Machine Learning Services | Microsoft Docs




ブログ記事は4回に分かれる予定です。
(1/4)SQL Serverダウンロード編 ←今回
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編

現在のSQL Serverは基本的にインターネットに接続した状態でインストールする事を想定しているので、オフライン(インターネットに接続しない状態)でインストールするのは少し面倒です。
事前に以下のダウンロードが必要です。
[1]Microsoft SQL Serverのインストールモジュール
[2]Microsoft Rのモジュール
[3]Microsoft Pythonのモジュール

ダウンロードセンターからダウンロードできるSQL Serverのインストールモジュールは、インターネット接続した状態のオンラインインストール用のモジュールです。
またSQL Server 2017では、SQL Serverに含まれるMachine Learningサービスを実行するために、RとPythonのモジュールが必要です。
この辺がわかりにくい点でした。

[1]Microsoft SQL Serverのインストールモジュール
まずはここからオンラインインストール用のモジュールをダウンロードします。(5MB)

https://www.microsoft.com/ja-jp/download/details.aspx?id=55994
Download Microsoft® SQL Server® 2017 Express from Official Microsoft Download Center



(図1)ダウンロードしたモジュールを実行してインストールメディアのダウンロードを開始します。
インストール01

(図2)メディアのダウンロード
インストール02

(図3)今回は「Express Advanced」を選択します。
インストール03

(図4)インストールメディアのダウンロードが始まります。(732MB)
インストール04

(図5)ダウンロードが成功したら「閉じる」
インストール05

(図6)終了しますか?で「はい」
インストール06

(図7)これがダウンロードしたインストールメディア(732MB)
インストール07

(図8)ダウンロードしたインストールメディアの詳細(SQL Server 2017のRTM)
インストール08



[2]Microsoft Rのモジュール
[3]Microsoft Pythonのモジュール

RとPythonのインストールモジュールはまとめて説明します。
以下の4つのモジュールをダウンロードして1つのフォルダに保存します。
CAB形式のファイルですが、解凍する必要はありません。
リリースファイル名ダウンロード先URL
Microsoft R OpenSRO_3.3.3.24_1033.cabhttps://go.microsoft.com/fwlink/?LinkId=851496&lcid=1041
Microsoft R ServerSRS_9.2.0.24_1033.cabhttps://go.microsoft.com/fwlink/?LinkId=851507&lcid=1041
Microsoft Python OpenSPO_9.2.0.24_1033.cabhttps://go.microsoft.com/fwlink/?LinkId=851502&lcid=1041
Microsoft Python ServerSPS_9.2.0.24_1033.cabhttps://go.microsoft.com/fwlink/?LinkId=851508&lcid=1041


(図9)ダウンロードしたRとPythonのモジュール
ここでは4つのモジュールをH:\TEMPフォルダに置きました。
RとPythonのダウンロード

(図10)ファイル名のロケールIDを変更する
ダウンロードしたファイル名には英語ロケールの「1033」が入っています。
しかしこのままで日本語版SQL Serverのインストール時に認識してくれないので、ファイル名を日本語のロケールIDである「1041」に変更します。
RとPythonのファイル名変更

これでインストールメディアの準備が出来ました。
これらをインストール対象のサーバー上の適当なフォルダに置いておきます。

次回は(2/4)SQL Serverインストール編です。
(1/4)SQL Serverダウンロード編 ←今回
(2/4)SQL Serverインストール編
(3/4)SSMS編 (SQL Server Management Studio)
(4/4)SQL Serverアップデート編

(参考)
RとPythonのモジュールのファイル名が1033のままでは認識しててくれない問題については、この記事が参考になります。
この記事はWindows Server 2012 R2 + SQL Server 2016ですが、Windows Server 2016 + SQL Server 2017でも同じ現象です。

https://www.atmarkit.co.jp/ait/articles/1711/08/news007.html
非インターネット接続環境でR関連機能がインストールできない(インストールトラブル) (1/2):SQL Serverトラブルシューティング(60) - @IT

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

VMware vSphere 6.7のサポート期間(GENERAL SUPPORT)が2022年10月までに延長された

VMware vSphere 6.7のサポート期間(GENERAL SUPPORT)が延長されたようです。
今まではvSphere 6.5と同じ2021年11月まででしたが、vSphere 6.7は2022年10月までに期限を延長しました。

画像は「VMware Lifecycle Product Matrix」の一部を切り貼りしたものです。
VMware vSphere 6.7のサポート期限延長

新型コロナウイルスの影響により、世界規模で新システムへの移行が遅れています。
それを考慮してvSphere 6.7のサポート期限を延長したようです。

詳しくはPublickeyの記事をご覧ください。

VMwareが「vSphere 6.7のジェネラルサポート期間」を11カ月延長すると発表、新型コロナウイルスの影響を考慮して - Publickey


VMware製品のサポート期限については以下のPDFをご覧ください。

VMware Lifecycle Product Matrix

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

VMware vSphere 7.0でもWindows 2000ゲストOSはLegacy Supportでサポートされる

今でも出てくるVMware vSphereのWindows 2000ゲストOSのサポート問題。
念のため最新状況を確認してみました。

Windows 2000ゲストOSは、何とVMware ESXi 7.0でもLegacy Supportでサポートされています。
いやあ、相変わらず旧OSのサポートが長いですね。VMwareは。

図1)VMware Compatibility Guideで検索した結果
Windows2000 ゲストサポート

詳しくは「VMware Compatibility Guide」で確認してね。

VMwareのLegacy Supportとは、ゲストOSのベンダーがサポートを打ち切っているため、最高レベルのサポートが提供できない状態を指しています。
Windows 2000はマイクロソフトが2010年にサポートを終了しているので、いずれにしても早急に新しいOSに入れ換える事をお勧めします。

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

【仮】Windows Serverバックアップのバッチファイル、指定したドライブのサイズ、空き容量、使用率を返すスクリプト

この記事はブロとも、もしくはパスワードを知っている方のみ閲覧できます
パスワード入力
ブロとも申請

Windows PowerShellのGet-ChildItemでCreationTimeを使ってファイルの作成日時で一覧を出力してみる

Windowsでファイル一覧を取得する際、通常は更新日時が出力されます。
しかしPowerShellのGet-ChildItemコマンドレットでCreationTimeを指定すると作成日時を扱う事が出来ます。

普段は作成日時と更新日時をあまり意識する事は無いのですが、明確に「作成日時」でファイル一覧を扱いたい時にCreationTimeは便利です。

下図はGet-ChildItemの結果をSort-Object CreationTimeに送って作成日時順にソートした例です。
Windows PowerShell
PS C:\> Get-ChildItem -Path E:\norimaki2000\20200202_Cosmic_Club穴掘り\動画 |Select-Object Name,CreationTime,LastWriteTime,Length |Sort-Object CreationTime |Format-Table -A

Name           CreationTime        LastWriteTime          Length
----           ------------        -------------          ------
00836.MTS      2020/02/02 9:49:13  2020/02/02 9:50:36  169789440
P5910062.MP4   2020/02/02 10:27:37 2020/02/02 10:27:36  68642451
00838.MTS      2020/02/02 10:27:50 2020/02/02 10:28:06  33976320
P5910063.MP4   2020/02/02 10:28:25 2020/02/02 10:28:24  60187092
00839.MTS      2020/02/02 10:28:33 2020/02/02 10:28:42  18327552
00840.MTS      2020/02/02 10:29:11 2020/02/02 10:29:34  46252032
00841.MTS      2020/02/02 10:29:58 2020/02/02 10:31:22 171638784
P5910064.MP4   2020/02/02 10:29:58 2020/02/02 10:29:58  73944879
P5910065.MP4   2020/02/02 10:31:19 2020/02/02 10:31:18  64282494
P5910066.MP4   2020/02/02 10:32:22 2020/02/02 10:32:22  28307860
00842.MTS      2020/02/02 10:32:29 2020/02/02 10:33:26 113946624
P5910067.MP4   2020/02/02 10:32:59 2020/02/02 10:32:58  76567500
P5910068.MP4   2020/02/02 10:34:06 2020/02/02 10:34:06  86291688
P5910069.MP4   2020/02/02 10:35:04 2020/02/02 10:35:04  51091698

:以下省略


PS C:\>

コマンドの解説
Get-ChildItem -Path <フォルダ> |Select-Object Name,CreationTime,LastWriteTime,Length |Sort-Object CreationTime |Format-Table -A
Get-ChildItem -Path <フォルダ>指定したフォルダのファイル一覧を取得
Select-Object Name,CreationTime,LastWriteTime,Length各ファイルについて、名前、作成日時、更新日時、サイズを表示する
Sort-Object CreationTimeファイルの作成日時順にソートする
Format-Table -A表形式に表示して各項目を表示する位置を自動調整する

この例では2台のカメラで撮影した動画ファイルを1つのフォルダに保存して、それらを作成日時順にソートしています。
XXXXX.MTSはSONY α7IIIで撮影した動画ファイルですが、動画の作成開始がファイルの作成日時、動画の撮影終了がファイルの更新日時になっています。
PXXXXXXX.MP4はPanasonic LUMIX DMC-FZ1000で撮影した動画ファイルですが、ファイルの作成日時と更新日時がほぼ同じなので、たぶんどちらも動画の撮影終了時の日時なんでしょうね。(未確認です)

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

Windows Server 2016で自動ログオンを設定する

Windows Server 2016でも、netplwizでOS起動時の自動ログオンが設定できるんですね。
この現代でもサービス化されておらず、Windowsデスクトップ上で起動が必要なアプリケーションがたまにあるんですよ。
ほんと、サービス化して欲しい。

(図1)自動ログオンの設定
自動ログオン設定1

(図2)再起動時の自動ログオン
自動ログオン設定2

netplwizを起動すると、自動ログオンしないのに最初からチェックが外れている事がありました。
その場合は一度チェックを入れてからチェックを外せば自動ログオンの設定が出来ました。

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

vCenter Server 6.7がWindows版vCenter Serverの最終

念のためVMware vCenter Server 6.7のサポート範囲などについて確認。
  • Windows版のvCenter Serverは6.7が最終で、今後は仮想アプライアンス版のみに。
  • HTML5版のvSphere Web Clientは「vSphere Client (HTML5)」の名称になり、Flash版のvSphere Web Clientに「ほぼ」近づいた。
  • 現在は「vSphere Client (HTML5)」と「vSphere Web Client」の両方をサポートするが、将来はvSphere Web Client(つまりFlash版)は廃止される。
  • vCenter Server 6.7ではESXi 6.0以降をサポートする。

そんな感じです。

(図1)vSphere 6.7 GA リリース ノート > 製品サポートに関する注意事項
01製品サポートに関する注意事項
https://docs.vmware.com/jp/VMware-vSphere/6.7/rn/vsphere-esxi-vcenter-server-67-release-notes.html?fbclid=IwAR2j2ypMN8I1kRpKP_XYp6XbG5vtbUYF1TSmQMv-go4QB7v4oXnAVRzvvjk#productsupport
vSphere 6.7 GA リリース ノート > 製品サポートに関する注意事項


(図2)vCenter Serverのサポート対象ESXiバージョン
02サポート対象のESXi
https://www.vmware.com/resources/compatibility/sim/interop_matrix.php?fbclid=IwAR3HLOe5O3pybLePtZ_Hg8L9Vd7Z9Geep0QJtPbcYVlOTnJYpRp_pgsTWiM#interop&2=&1=
VMware Product Interoperability Matrices

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

VMware vSphere PowerCLIのGet-HardDiskコマンドレットで全仮想マシンの全仮想ディスクの一覧を抽出する

VMware vSphere仮想環境を管理するvCenter ServerのGUIから、仮想マシンの一覧やデータストアの一覧をCSV形式でエクスポートできます。
とても便利な機能で私もよく利用します。

しかし以前から、仮想ディスクの一覧を取得できたらいいなと思っていました。
調べたら仮想ディスクの一覧を取得するコマンドがあるんですね。
PowerCLIのGet-HardDiskコマンドレットが使えます。

これで、指定した仮想マシンに紐づいている仮想ディスクの一覧が表示されます。
Get-HardDisk -VM <仮想マシン名>

全部の仮想マシンの全仮想ディスクの一覧は、こんな感じで抽出できます。
コマンドは改行無しの1行で入力します。
VMware PowerCLI 6.5 Release 1 build 4624819
PowerCLI C:\> Get-VM |Get-HardDisk |Select-Object {$_.Parent,$_.Name,$_.CapacityGB,$_.StorageFormat}

$_.Parent,$_.Name,$_.CapacityGB,$_.StorageFormat
------------------------------------------------
{VM-SERVER01, ハード ディスク 1, 100, EagerZeroedThick}
{VM-SERVER01, ハード ディスク 2, 800, EagerZeroedThick}
{TEST-SV01, ハード ディスク 1, 80, Thin}
{TEST-SV01, ハード ディスク 2, 200, Thin}
{TEST-SV01, ハード ディスク 3, 400, Thin}

PowerCLI C:\>

当然ですが、事前にConnect-VIServerコマンドレットでvCenter Serverに接続します。

Get-VMで仮想マシン名の一覧を抽出し、パイプでGet-HardDiskに送ります。
その結果をさらにSelect-Objectにパイプで送り、必要な項目を表示します。
今回は以下の4つの項目を抽出しています。
項目名説明
Parent仮想ディスクの親となる仮想マシン名です。
Name仮想ディスク名です。vCenter Serverの仮想マシンの編集画面で見える、ハードディスク1とか、ハードディスク2とかのあれです。
CapacityGB仮想ディスクのサイズ(GB)です。CapacityKBの指定もできます。シンタイプの仮想ディスクの場合は、プロビジョニングされた値を示します。
StorageFormatシンかシックかわかります。私の試した環境ではThinとEagerZeroedThickのどちらかでしたが、ZeroedThickもあるんでしょうね。
EagerZeroedThickは仮想ディスクを作成した時点ですべてのブロックがゼロ埋めされます。
ZeroedThickは仮想ディスクを作成した時点で一部のブロックがゼロ埋めされます。


全仮想マシンの全仮想ディスク一覧をCSV形式に抽出するコマンドの例です。
Get-VM |Get-HardDisk |Export-Csv -Encoding Default -Path C:\Temp\Get-HardDisk.csv

CSV形式にエクスポートするともっと多くの項目が出力されます。
例えばFilenameには、仮想ディスクを配置するデータストア、ディレクトリ、ファイル名が出力されます。
こんな感じです。
[VM-SERVER01] VM-SERVER01/VM-SERVER01.vmdk
[VM-SERVER01] VM-SERVER01/VM-SERVER01_1.vmdk
[VM-SERVER01] VM-SERVER01/VM-SERVER01_2.vmdk


Get-HardDiskコマンドレットも便利ですね。

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

VMware vSphere PowerCLIのGet-VMHostHbaコマンドレットでFC-HBAのダウンしているポートを検出する

VMware vSphereで、通常はESXiホストのFC-HBAのポートは二重化しています。
しかし、あるとき、あるシステムの、あるESXiホストで、片方のFCポートがダウンしている事に「たまたま」気づきました。
当然ハード障害の監視はやってるんですけどね。気づきませんでした。
vCenter Serverから冗長性の低下のメールが送られていたのかもしれませんが、いずれにしてもメールは見落としたら、もうわからなくなってしまいます。

多数のESXiホストのFCパスが2本とも有効かどうかをvCenter ServerのGUIで確認したらかなりの手間です。
PowerCLIに何か適当なコマンドレットがないか調べたら、Get-VMHostHbaコマンドレットが良さそうなので試してみました。

Get-VMHostHbaコマンドレットでStatusを見れば、簡単にポートのダウンがわかります。
Statusがonlineなら有効(正常)、offlineなら非活動(異常)と判断できます。

(図1)Get-VMHostHbaコマンドレットを実行した画面のイメージ
Get-VMHostHbaコマンドレット
この結果を文字列でサーチして、"offline"の文字列があったらアラートを出すなどします。


上図をテキスト(文字)で打ち込んだらこんな感じ。
VMware PowerCLI 6.5 Release 1 build 4624819
PowerCLI C:\> Connect-VIServer -Server 192.168.1.1 -Port 20443 -User administrator -Password password

Name                         Port  User
----                         ----  ----
192.168.1.1                  20443 Administrator


PowerCLI
C:\> Get-VMHostHba -Type Fibrechannel |Select-Object VMHost,Device,Type,status,model |Sort-Object VMHost,Device |Format-Table -A

VMHost      Device Type         Status  Model
------      ------ ----         ------  -----
esx01.local vmhba0 FibreChannel online  LPe11000 4Gb Fibre Channel Host Adapter
esx01.local vmhba1 FibreChannel online  LPe11000 4Gb Fibre Channel Host Adapter
esx02.local vmhba0 FibreChannel online  LPe11000 4Gb Fibre Channel Host Adapter
esx02.local vmhba1 FibreChannel online  LPe11000 4Gb Fibre Channel Host Adapter
esx03.local vmhba2 FibreChannel offline LPe12000 8Gb Fibre Channel Host Adapter
esx03.local vmhba3 FibreChannel online  LPe12000 8Gb Fibre Channel Host Adapter
esx04.local vmhba2 FibreChannel online  LPe12000 8Gb Fibre Channel Host Adapter
esx04.local vmhba3 FibreChannel online  LPe12000 8Gb Fibre Channel Host Adapter

PowerCLI C:\>

Connect-VIServerコマンドレットでvCenter Serverに接続します。
Get-VMHostHbaコマンドレットでFC-HBAのポート状態を検出します。

単に「Get-VMHostHba」だけを実行すると、全ESXiホストのHBAが表示されます。
しかしそのホスト名が表示されないんですよね。
なのでSelect-ObjectでVMHostを含むいくつかの項目を表示させています。
そしてSort-Objectでホスト名順のHBAの名前順にソートしています。

これはGet-VMHostHbaの結果をパイプでOut-Fileに送ってテキストファイルに書き込むことを想定しています。
こんな感じです。
Get-VMHostHba -Type Fibrechannel |Select-Object VMHost,Device,Type,status,model |Sort-Object VMHost,Device |Format-Table -A |Out-File -FilePath D:\log\FC-HBAのポート状態.log -Append

まあこんな事をしなくても、パイプでexport-csvに送れば全項目が出力されるのですが、自分の勉強のためにSelect-Objectとか、Out-Fileとかを使ってみました。

当然ですが、すべてのFC-HBAの全FCポートにFCケーブルが差し込まれていて、通常時はリンクアップしている事が前提です。
ESXiホストにFCボードを搭載しているけど、FCケーブルを差し込んでいないポートがあれば、それは常に「offline」になるので、この方法では毎回「異常」となってしまいます。

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

Windows Server 2016でIE11にAdobe Flash Playerをインストールして有効にする

Windows Server 2016でInternet Explorer 11にAdobe Flash Playerをインストールして有効にするには、以下のコマンドを実行してOSを再起動すればOKでした。

管理者: C:\Windows\system32\cmd.exe
C:\>dism /online /add-package /packagepath:"C:\Windows\servicing\Packages\Adobe-Flash-For-Windows-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"


コマンド(途中で改行無しの1行)

dism /online /add-package /packagepath:"C:\Windows\servicing\Packages\Adobe-Flash-For-Windows-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"



詳しくはマイクロソフトのサポートチームのブログに書いてあります。
リモートデスクトップセッションホストにすると、RDS-CALを要求されたりするので、サーバー管理者がFlash Playeyを使用するだけなら、このコマンドで機能を追加する事をお勧めします。

https://blogs.technet.microsoft.com/askcorejp/2017/05/30/windows-server-2016_adobe_flash_supplementary/
Windows Server 2016 及び Windows Storage Server 2016 での Adobe Flash のご利用について (補足) | Ask CORE


Windows Server 2016では、Flash Playerはリモートデスクトップサービスの一部になっているんですね。知りませんでした。
「サーバーの管理者はFlash Playerなんか使うはずがない(使うべきではない)。Flash Playerは、リモートデスクトップサービスを利用するエンドユーザーが使用するんだろう」ってことでしょうか。
Flashは終息する技術なので、出来るだけ使用しない、使用しにくいようにすることに異論はないのですが、リモートデスクトップサービスの一部になっているというのは、ちょっとピンと来ません。

実際にはVMware vCenter Serverに接続するためのvSphere Web Clientなど、サーバー管理者でもFlash Playerは使わざるを得ない場面はあります。(今回はまさにそれでした)
Flash Playerが組み込まれた管理者用PCを用意するのが正しいのかもしれませんが、現実的には様々な制約から管理サーバー1台で全部やらなければならない事がよくあります。

[図1]Windows Server 2016 バージョン1706のIE11で試しました
01Windows2016のIE11

[図2]IEの設定でアドオンの管理を見てみます
02Windows2016のIE11のアドオンの管理A

[図3]最初は何もアドオンが組み込まれていません
02Windows2016のIE11のアドオンの管理B

[図4]dism /online /add-package~コマンドを実行
03ネットワーク隔離状態でFlashPlayerを追加
これでAdobe Flash Playerの機能が組み込まれます。

[図5]インストールしたらOSを再起動
04再起動

[図6]Flash Playerが動作するようになった
05FlashPlayerの状況確認

[図7]IEの設定でアドオンの管理をもう一度見てみる
06Flash再生中のIE11のアドオンの管理
Flash Playerが必要なサイトに接続中にIE11のアドオンの管理を開くと、Shockwave Flash Objectが表示されます。
Flash Player 22と少々古いですが、まあいいでしょう。


こんな感じでWindows Server 2016のIE11に、Adobe Flash Playerをインストールすることが出来ました。
ネットワークが接続できない状態でインストールして確認したので、インターネットに接続できない状況でも大丈夫なはずです。

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

ついにインテルのCPUで従来のBIOSが廃止され、UEFIブートのみになるそうです

そうですか。ついにUEFIブートだけになるんですね。
私自身もWindows Server 2012 R2以降では物理サーバーもUEFIブートにしています。
さすがにもう物理サーバー、物理PCでは従来のBIOSでのブートはいらないでしょう。

VMwareの仮想マシンでは過去の古いゲストOSもサポートするので、当分はBIOS互換は残るかな。

https://pc.watch.impress.co.jp/docs/news/1092273.html
2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch





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

Windows Serverバックアップで古い世代のバックアップを削除する

余りにも久しぶりの投稿で、ブログの書き方を忘れてしまいました(笑)

以前はSystem Recovery、NetBackup、Backup Exec、ARCserve Backup、などのバックアップソフトをよく利用していたのですが、最近はOS標準のWindows Serverバックアップを利用する機会が非常に多くなりました。
理由はいろいろあるのですが、VMware vSphereでvStorage APIを使用したバックアップでは、数年間の運用中にゲストOSのバージョンが新しくなったり、あるいは追加するESXiホストのバージョンが新しくなったりします。
するとvCenter Serverのバージョンをあげなければならないんですが、それに伴ってバックアップソフトのバージョンを上げるのが煩雑だったり、新しいvCenter Serverとバックアップソフトでは古いゲストOSがサポート外になったりと、いろいろ面倒です。
またvStorage APIによる統合したバックアップでは、ゲストの数が増えるとバックアップのスケジュールを調整するのが結構大変だったりします。

そんなこんなで、各ゲストごとにバックアップの方法やタイミングが自由に設定できる方法、つまりゲストOSごとにバックアップを実行する事が増えています。(あくまでも私が担当するお客様では、です)


Windows Serverバックアップでは毎回フルバックアップを実行して保存用のドライブに書き込んでいき、ドライブがいっぱいになったら古い世代が自動で削除されます。
しかし手動で意図的に古い世代を削除する必要があった場合に備え、その方法を確認してみました。
ここではWindows Server 2016[Version 10.0.14393]を例にしていますが、Windows Server 2012 R2でも同じです。

(図1)GUIで見たバックアップの状態
wbadmin.mscのGUIで見たバックアップの状態
ファイル名を指定して実行で、wbadmin.mscを起動します。
現時点でバックアップはこの5世代が作成されています。

(図2)コマンドラインから確認(その1)
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin get versions
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2013 Microsoft Corporation. All rights reserved.

バックアップ時間: 2017/08/10 5:55
バックアップ対象: 固定ディスク ラベル付き Backup(Z:)
バージョン識別子: 08/09/2017-20:55
回復可能: ボリューム, ファイル
スナップショット ID: {38c7bb98-1908-414e-92a5-4c3a5919eba0}

バックアップ時間: 2017/08/10 6:22
バックアップ対象: 固定ディスク ラベル付き Backup(Z:)
バージョン識別子: 08/09/2017-21:22
回復可能: ボリューム, ファイル
スナップショット ID: {acf25500-cba5-4907-ac68-0b7c6a98b69a}

バックアップ時間: 2017/08/10 7:29
バックアップ対象: 固定ディスク ラベル付き Backup(Z:)
バージョン識別子: 08/09/2017-22:29
回復可能: ボリューム, ファイル
スナップショット ID: {a0b08d29-9674-4dd8-9b3d-d88ec58814b6}

バックアップ時間: 2017/08/11 2:49
バックアップ対象: 固定ディスク ラベル付き Backup(Z:)
バージョン識別子: 08/10/2017-17:49
回復可能: ボリューム, ファイル
スナップショット ID: {a1036f1b-6813-45b9-af47-1e5577f6b61a}

バックアップ時間: 2017/08/11 2:56
バックアップ対象: 固定ディスク ラベル付き Backup(Z:)
バージョン識別子: 08/10/2017-17:56
回復可能: ボリューム, ファイル
スナップショット ID: {415a4e45-1bda-4dd3-bc0a-470170fb4d0f}


C:\>
wbadmin get versions」を実行すると、作成されているバックアップの一覧が表示されます。
バックアップを削除する場合、バックアップ時間とバージョン識別子の確認が重要になります。
しかし表示される行数が多くて、パッと見て何世代あるのがわかりにくいですね。

(図3)コマンドラインから確認(その2)
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin get versions |find /i "バックアップ時間"
バックアップ時間: 2017/08/10 5:55
バックアップ時間: 2017/08/10 6:22
バックアップ時間: 2017/08/10 7:29
バックアップ時間: 2017/08/11 2:49
バックアップ時間: 2017/08/11 2:56

C:\>
パイプでfindに文字列を送ってみるとわかりやすくなります。

(図4)コマンドラインから確認(その3)
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin get versions |find /i "バックアップ時間" /c
5

C:\>
さらに「/c」オプションを付けると行数をカウントするので、5世代だと言う事がはっきりわかります。


ではバックアップの古い世代を削除する方法です。

(図5)バックアップを削除するコマンドのヘルプ
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin delete backup -?
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2013 Microsoft Corporation. All rights reserved.

構文: WBADMIN DELETE BACKUP
  {-keepVersions:<コピーの数> | -version:<バージョン識別子> | -deleteOldest}
  [-backupTarget:<ボリューム名>]
  [-machine:<バックアップ コンピューター名>]
  [-quiet]

説明:  指定したバックアップを削除します。指定されたボリュームに
ローカル サーバーのバックアップ以外のバックアップが含まれている場合、
それらのバックアップは削除されません。
このコマンドを使用するには、Backup Operators グループまたは Administrators
グループのメンバーである必要があります。

パラメーター:
-keepVersions  保持する最新のバックアップの数を指定します。値には、正の整数を
               指定する必要があります。オプションの値に -keepVersions:0
               を指定すると、すべてのバックアップが削除されます。

-version       バックアップの MM/DD/YYYY-HH:MM 形式のバージョン識別子です。
               バージョン識別子が不明な場合は、コマンド プロンプトで
               「WBADMIN GET VERSIONS」と入力します。バックアップ専用の
               バージョンは、このコマンドを使用して削除できます。
               バージョンの種類を確認するには、WBADMIN GET ITEMS を使用します。

-deleteOldest  最も古いバックアップを削除します。

-backupTarget  削除するバックアップの保存場所を指定します。
               バックアップの保存場所は、ドライブ文字、
               マウント ポイント、または GUID ベースのボリューム パスです。
               この値は、ローカル コンピューターのバックアップではない
               バックアップの場所を指定する場合にのみ指定する必要があります。
               ローカル コンピューターのバックアップに関する情報は、
               ローカル コンピューターのバックアップ カタログにあります。

-machine       バックアップを削除するコンピューターを指定します。
               複数のコンピューターが同じ場所にバックアップされているときに
               便利です。-backupTarget が指定されている場合のみ
               使用できます。

-quiet         ユーザー プロンプトを表示せずにコマンドを実行します。

注釈: -keepVersions、-version、-deleteOldest のいずれかのパラメーターを
必ず 1 つ指定してください。

例:
WBADMIN DELETE BACKUP -version:03/31/2006-10:00
WBADMIN DELETE BACKUP -keepVersions:3
WBADMIN DELETE BACKUP -backupTarget:f: -deleteOldest

C:\>

System Recoveryのように、バックアップジョブとして保存する世代数を設定しておく機能はありません。
バックアップ完了後に、「wbadmin delete backup ~」を実行して古い世代を削除します。
バックアップを削除する方法は3種類あります。
wbadmin delete backup -deleteOldest一番古い世代のバックアップを削除します。
wbadmin delete backup -keepVersions:<世代数>バックアップを残す世代数を指定します。直近(最新)のバックアップから指定した世代数を残し、それよりも古い世代が削除されます。
wbadmin delete backup -version:<バージョン識別子>指定した世代のバックアップのみを削除します。削除する世代は「バージョン識別子」で指定します。バージョン識別子は、「wbadmin get versions」で確認する事が出来ます。


では古いバックアップの世代を削除してみます。

(図6)コマンドラインから一番古い世代を削除する
管理者: C:\Windows\system32\cmd.exe

C:\>wbadmin delete backup -deleteOldest -quiet
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2013 Microsoft Corporation. All rights reserved.

バックアップを列挙しています...
5 個のバックアップが見つかりました。
削除操作後は 4 個になります。
バックアップ バージョン 08/09/2017-20:55 を削除しています (1/1)...
バックアップを削除する操作が完了し、
1 個のバックアップが削除されました。

C:\>wbadmin get versions |find /i "バックアップ時間"
バックアップ時間: 2017/08/10 6:22
バックアップ時間: 2017/08/10 7:29
バックアップ時間: 2017/08/11 2:49
バックアップ時間: 2017/08/11 2:56

C:\>
「wbadmin delete backup -deleteOldest -quiet」で一番古い世代のバックアップを削除しました。
-quietを付けないと「バックアップを削除しますか?」と聞いてくるので、-quietオプションを付けています。

削除後にwbadmin get versionsを実行すると、5世代だったバックアップが4世代になっている事が確認できます。
図3で確認した5世代のうち、一番古い「2017/08/10 5:55」のバックアップが消えています。


(図7)コマンドラインから指定した世代数を残してそれよりも古い世代を削除する
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin delete backup -keepVersions:2 -quiet
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2013 Microsoft Corporation. All rights reserved.

バックアップを列挙しています...
4 個のバックアップが見つかりました。
削除操作後は 2 個になります。
バックアップ バージョン 08/09/2017-21:22 を削除しています (1/2)...
バックアップ バージョン 08/09/2017-22:29 を削除しています (2/2)...
バックアップを削除する操作が完了し、
2 個のバックアップが削除されました。

C:\>wbadmin get versions |find /i "バックアップ時間"
バックアップ時間: 2017/08/11 2:49
バックアップ時間: 2017/08/11 2:56

C:\>
「wbadmin delete backup -keepVersions:2 -quiet」を実行しました。
削除前は4世代のバックアップがありましたが、指定した新しい2世代を残し、古い2世代が削除されました。

(図8)コマンドラインから指定した世代のバックアップを削除する
管理者: C:\Windows\system32\cmd.exe
C:\>wbadmin delete backup -version:08/10/2017-17:56 -quiet
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2013 Microsoft Corporation. All rights reserved.

バックアップを列挙しています...
2 個のバックアップが見つかりました。
削除操作後は 1 個になります。
バックアップ バージョン 08/10/2017-17:56 を削除しています (1/1)...
バックアップを削除する操作が完了し、
1 個のバックアップが削除されました。

C:\>wbadmin get versions |find /i "バックアップ時間"
バックアップ時間: 2017/08/11 2:49

C:\>
「wbadmin delete backup -version:08/10/2017-17:56 -quiet」を実行しました。

これは残っていた2世代のバックアップのうち、最新の世代を指定して削除しています。
バックアップ時間バージョン識別子削除対象
2017/08/11 2:4908/10/2017-17:49(この世代を残した)
2017/08/11 2:5608/10/2017-17:56この世代の削除を指定した
最新の世代とか、中間の世代が不要になった場合は、この方法で削除できます。
削除の時に指定するのは「バージョン識別子」です。
バージョン識別子はwbadmin get versionsで確認する事が出来ます。

以上です。

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

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

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

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

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

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

昔々はオフコンで販売管理などのアプリケーション開発していた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
最近はWindowsサーバーとVMware vSphereを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・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:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



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


最近の記事
最近のコメント
カレンダー
01 | 2021/02 | 03
- 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 - - - - - -
カテゴリー
FC2カウンター
キーワード

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

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