1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WSFC(Windows Server Failover Clustering)の情報採取

Last updated at Posted at 2015-12-31
## やること ##
# 1.WSFC(Windows Server Failover Clustering)の情報を、
#   Get-Clusterや、Get-ClusterResourceなど複数の参照コマンドレットを利用し、採取する
#
# 2.Excelの設計書と比較するので、CSV形式で採取する 
#   出力するCSVファイルは、「ホスト名_参照コマンドレット名.csv」と名前を付けて、1つのフォルダに出力する
#
# 3.参照コマンドレットのどれかが失敗した場合に、このスクリプトのログに出力する
#  このスクリプトのログは2と同じフォルダに出力する
#
# 4.実行したい参照コマンドレットが増えた場合に、簡単に追加できるようにする
#
# CSV出力フォルダ作成 → メイン処理関数定義 → 
#  前処理関数(メイン処理に渡す)定義 → 前処理関数を実行(引数1)


# ↓ここからPowershell(PS1)はじまり

# 日付
$TODAY = Get-Date -format "yyyy-MMdd-HHmm"

# ホスト名
$HOSTNAME = Invoke-Expression -Command hostname

# CSV出力先フォルダ定義
  # ※ $OUTDIRで定義するディレクトリ配下に、「yyyy-mmdd-hhmm_ホスト名__WSFC_Getinfo」という名前で作成
$OUTDIR = "c:\work"
$OUT = "${OUTDIR}\${TODAY}_${HOSTNAME}_WSFC_Getinfo"



# CSV出力先フォルダの作成

  $ErrorActionPreference = "Stop"
    # フォルダ作成に失敗した場合、処理を終了するため、エラーストップを設定
    # .NET の例外は、try{}catch{} で取得できる
    # コマンドレットの例外は、$ErrorActionPreferenceを設定する
    # 詳しくは→http://tech.guitarrapc.com/entry/2013/07/22/000738


  try {
  # CSV出力先作成
  mkdir ${OUT}
  # 実行結果を変数格納
  $RESULT = "フォルダ名【${OUT}】正常に作成できました"
  } catch [Exception] {
  # エラー時に実行結果の変数書き換え
  $RESULT = "フォルダ名【${OUT}】作成に失敗しました"
  # 出力先作成に失敗した場合、終了
  exit 100
  } finally {
  # 結果を標準出力
  Write ${RESULT}
  # 結果をログ出力
  Write ${RESULT} | Out-File ${OUT}\WSFC_Getinfo_${TODAY}.log
  }





# CSV出力処理


 ## メイン処理関数
  ### 第一引数で受け取ったコマンドラインを実行して、結果を取得
  ### 第二引数で受け取ったコマンドレット名を、メッセージに付与し、
  ### 結果をこのスクリプトのログに出力する
function main {
  # 受け取った2つの引数を変数格納
  param($param1,$param2)
  try {
  # 第一引数($param1)をコマンドとして実行
    ## &でコマンドとして扱う
    & ${param1}
    $RESULT = "【${param2}】の処理が正常に終了しました"
  } catch [Exception] {
    $RESULT = "【${param2}】の処理が異常終了しました"
  } finally {
    Write ${RESULT}
    Write ${RESULT} | Out-File ${OUT}\WSFC_Getinfo_${TODAY}.log -Append
  }
}




 ## 前処理用関数
  ### メイン処理関数に渡す第一引数(コマンド名)、
  ### 第二引数(実行するコマンドライン)を作成

function watasu {
# 第一引数は実行コマンド名
param($param1)
   ## 第一引数の実行コマンド名を${COMMAND}に格納。
  $COMMAND = ${param1}
   ## メイン処理関数で実行するコマンドライン作成
    ### 実行コマンドをパイプでExport-csvに渡し、CSV出力。
    ### 上で作成したCSV出力先に、UTF8で出力。
    ### 「ホスト名_コマンド名.csv」で出力
  $COMMANDLINE = {& ${COMMAND} | Export-Csv -Encoding UTF8 ${OUT}\${HOSTNAME}_${COMMAND}.csv}
  ## 実行するコマンド名を第一引数に、
  ## 実行するコマンドラインを第二引数にして、メイン処理関数を呼び出し
  main ${COMMANDLINE} ${COMMAND} 
}






## 前処理用関数に第一引数としてコマンド名を渡し、実行させる
## コマンドを追加したい場合、一番下に同じ形式で追加すれば、CSVで結果を出力してくれます
## 増えてきたら外ファイルに持たせます
## やり方は、gc使ってCSV読み込むなどを検討中
watasu {Get-Cluster}
watasu {Get-ClusterQuorum}
watasu {Get-ClusterGroup}
watasu {Get-ClusterResource}
watasu {Get-ClusterNode}
watasu {Get-ClusterNetwork}
watasu {Get-ClusterNetworkInterface}
# watasu {Get-Alias}
# watasu {Get-Command}



1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?