Home >
Windows にまつわる e.t.c.
今月の Windows Update 日を PowerShell で取得する
Windows Server の運用をしているのと、自動化の一環で定例の Windows Update
日(第二火曜日の翌日)を取得したいと思うことがあります。
という事で、PowerShell 関数作ってみました
(スマートなアルゴリズムが思いつかなかったので、少々力技ですけど)
###############################################
# Windows Update 日を取得する(日本)
###############################################
function GetWindowsUpdateDay([datetime]$TergetDate){
# 1日の曜日と US Windows Update 日のオフセット ハッシュテーブル
$DayOfWeek2WUOffset = @{
[System.DayOfWeek]"Wednesday" = 13 # 水曜日
[System.DayOfWeek]"Thursday" = 12 # 木曜日
[System.DayOfWeek]"Friday" = 11 # 金曜日
[System.DayOfWeek]"Saturday" = 10 # 土曜日
[System.DayOfWeek]"Sunday" = 9 # 日曜日
[System.DayOfWeek]"Monday" = 8 # 月曜日
[System.DayOfWeek]"Tuesday" = 7 # 火曜日
}
# 年月が指定されていない(default)
if( $TergetDate -eq $null ){
# 今の日時
$TergetDate = Get-Date
}
# 1日
$1stDay = [datetime]$TergetDate.ToString("yyyy/MM/1")
# US Windows Update 日のオフセット
$Offset = $DayOfWeek2WUOffset[$1stDay.DayOfWeek]
if( $Offset -ne $null ){
# US Windows Update 日
$WUDayUS = $1stDay.AddDays($Offset)
# 日本の Windows Update 日(US Windows Update の翌日)
$WUDay = $WUDayUS.AddDays(1)
}
else{
$WUDay = $null
}
return ($WUDay).ToString("yyyy/MM/dd")
}
|
おまけ機能で、2017/6 とか年月を渡すと、その月の Windows Update 日を返します。
インストールしたい場合は、リポジトリ公開しているので、そちらから入手してください。
GetWindowsUpdateDay
https://github.com/MuraAtVwnet/GetWindowsUpdateDay
git@github.com:MuraAtVwnet/GetWindowsUpdateDay.git
関連情報
.ps1 に組み込んで使うこと想定で書きましたが、PowerShell プロンプトで実行したい場合はこちらもどうぞ
関数を PowerShell プロンプトで実行する
http://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm
Copyright © MURA
All rights reserved.