IT記事、時々ぼのぼの

ぼのぼのに毎日癒されつつ仕事しているエンジニアのブログです。


WSUS 4.0の自動承認スクリプト

WSUS4.0から、PowerShellで操作できることが格段に増えたので、手動で運用しているようなものをバッチ回して自動的に処理させる。

1. Itanium系のパッチ拒否
2. 数日経過してから承認する(WSUSの基本機能だと適用期限しか設定できないため)
3. 先行適用グループと全体適用グループで承認間隔を分ける
4. クリーンナップ

注意点

先行適用グループと全体適用グループ用に承認スケジュールを分けると、「未承認」、「承認済み」で検索条件を分ける必要がある。
未承認と承認済みは、以下のパラメータとなる。

未承認

IsApproved = False
IsDeclined = False

承認済み

IsApproved = True
IsDeclined = False

スクリプト

#
# WSUS4.0サーバ用 自動承認スクリプト
#

# パラメータ設定
$day = get-date -format "yyyyMMdd"
$log_dir = "C:\Tools\wsus_maintenance\log"

# WSUSのポートをデフォルトから80へ変更している場合(WSUSサーバ上で実行)
$wsus = Get-WsusServer -name localhost -PortNumber 80

# 日付設定
$5daysago = Get-Date (Get-Date).AddDays(-5) -format "yyyy/MM/dd 0:00:00"
$6daysago = Get-Date (Get-Date).AddDays(-6) -format "yyyy/MM/dd 0:00:00"
$7daysago = Get-Date (Get-Date).AddDays(-7) -format "yyyy/MM/dd 0:00:00"
$8daysago = Get-Date (Get-Date).AddDays(-8) -format "yyyy/MM/dd 0:00:00"


# Itaniumの拒否: Itaniumのクライアントがいない場合はこれらは不必要

$ia64 = $wsus.GetUpdates() | Where-Object {$_.title.indexof("Itanium") -gt 1 -and $_.title.indexof("x64") -eq -1 -and $_.ArrivalDate -gt [datetime]::Now.AddDays(-7)}
foreach($patch in $ia64) {
  $wsus | Get-WsusUpdate -UpdateId $patch.id.updateid | Deny-WsusUpdate
}

#
# 自動承認(先行適用グループ用)
# 6日前にダウンロードされたものを承認
#

$ahead = $wsus.GetUpdates() | Where-Object {$_.ArrivalDate -gt $6daysago -and $_.ArrivalDate -lt $5daysago -and $_.IsApproved -eq $False -and $_.IsDeclined -eq $False}
foreach($patch in $ahead) {
  $wsus | Get-WsusUpdate -UpdateId $patch.id.updateid | Approve-WsusUpdate -TargetGroupName "先行適用G" -Action Install
}

#
# 自動承認(その他すべて)
# 8日前にダウンロードされたものを承認
#

$allgroup = $wsus.GetUpdates() | Where-Object {$_.ArrivalDate -gt $8daysago -and $_.ArrivalDate -lt $7daysago -and $_.IsApproved -eq $True -and $_.IsDeclined -eq $False}
foreach($patch in $allgroup) {
  $wsus | Get-WsusUpdate -UpdateId $patch.id.updateid | Approve-WsusUpdate -TargetGroupName "すべてのコンピューター" -Action Install
}

# クリーンアップ:置き換えられたパッチや拒否済みのものを削除する
$wsus | Invoke-WsusServerCleanup -CleanupObsoleteUpdates -CleanupUnneededContentFiles -CompressUpdates -DeclineExpiredUpdates > C:\Tools\wsus_maintenance\log\$day.log

# ログローテーション
forfiles /P $log_dir /M * /C "cmd /c if @isdir==FALSE del /s @path" /D -30

Mac OS X の無線LAN接続設定スクリプト

Mac OS X で、無線LANSSIDパスフレーズを設定するスクリプトです。

networksetupコマンドで、無線LANインターフェースを指定する必要があるので、機種に依存せずに、スクリプトでインターフェースを持ってくるようにしてます。

#!/bin/sh

WIFI_DEV_NAME=$(networksetup -listallhardwareports | grep -w Wi-Fi -A1 | awk '/^Device:/{ print $2 }')
if [ -z "${WIFI_DEV_NAME}" ]; then
echo "Wi-Fi device not found"
exit 1
fi

sudo networksetup -setairportnetwork ${WIFI_DEV_NAME} SSID Password

exit 0

タイルカーペット敷いた!

子供が1歳ちょっとで、よく歩くようになってきてフローリングだと転んだりするとかなり痛そう><なので、タイルカーペットを敷いてみた。

使ったのはこれ↓↓↓


ポイントは、1枚当たりの単価がほかのメーカーのものよりもかなり安く、床暖房対応というところ。

実際に敷くところが結構ハードル高そうだったけど、以外とうまくできた。
滑り止めの効きもいいし、壁際の長さ調整(カッターで切る)も、やってみると以外とできた。
↓↓↓参考

www.toli.co.jp


まだ、リビングの一部だけだけど、ほかの部屋などにも敷いてみようかなと思わせる。

安かろう悪かろうでもないので、おすすめです。
※初めての場合は、狭いエリアで試してみてからでもいいかもです。

SBI FXトレードでらくらく自動積立!!

普通の外貨預金の積立機能もいいけど、FXで積立するとレバレッジをかけスワップポイントも得られるということなのだが、普通のFXでは毎月購入を手動で実施しなくてはいけなかったりと手間がかかるので自動積立ができるところを探してみた。

Googleさんに聞いてみたところ、SBI FXトレード(定期的に自動購入!|SBI FXトレード)で、自動積立機能があるようだ。

また、このサイトによると、手数料も安く、自動で毎日少しずつ買えるのでドルコスト平均法も日単位まで細かくできるみたい。
外貨積立するなら外貨預金よりもオトクなSBI FXトレード - ただいまFX自動売買中


口座申込のうえ、以下のメニューで設定することにより、好きな金額、タイミング、通貨で積立可能です。
※口座開設時に「定期取引口座」を含めておく必要あり。

f:id:red9999:20160904210719p:plain


為替相場での損はありますが、銀行預金などよりも高い利率を望めるので、1倍で豪ドルあたりを積立てみようと思います。

Xperia Z2 Tablet のroot化

Xperia Z2 Tabletのroot化の手順を記載します。
タブレットが正常に起動しなくなる恐れがありますので、試す場合は自己責任の範囲でお願いします。<環境>
モデル:SGP512
Androidバージョン:4.4.2

ブートローダーのアンロック

ちょっと手順が長いので↓のサイトを参考

http://sosukeblog.com/2014/04/10/3577/

CWM Recoveryのインストール

http://www.techaudible.net/root-sony-xperia-z2-tablet-and-install-cwm-recovery/

1.Fastbootのファイル群をダウンロードし、適当な場所に解凍する。
http://fastboot.zip/

2.CWM Recoveryダウンロードし、fastboot.exeファイルを同じ場所に保存しておく。
http://doomlord.xperia-files.com/download.php?dlid=WjJUYWJfRG9vTUxvUkRfQWR2U3RrS2VybmVsX1dJRkktdjAzXzE3LjEuMS5BLjAuNDAy

3.SuperSU.zipをダウンロードし、タブレットの適当なフォルダにコピーしておく。
現時点(2014/12/30)での最新は2.40
http://download.chainfire.eu/641/SuperSU/UPDATE-SuperSU-v2.40.zip

4.コマンドプロンプトから、ブートローダーのアンロック実行時にインストールした、adbツールのディレクトリへ移動し、以下のコマンドを実行する。

adb reboot bootloader

5.ブートローダモードでタブレットが再起動しますので、以下のコマンドを実行する。

fastboot.exe flash boot Z2Tab_DooMLoRD_AdvStkKernel_WIFI-v03_17.1.1.A.0.402.img

6.CWM Recoveryインストール完了後、再起動する。

fastboot.exe reboot

7.タブレット起動後、リカバリーモードで起動する。

adb reboot recovery

8.コピーしていた、"SuperSu.zip"を、"install zip from SD card"から、インストールする。

9.インストール完了後、再起動して完了です。

PowershellでのActiveDirectoryドメイン参加

Windows 7以降のPCにて、Active Directoryへのドメイン参加コマンドを探してみた。
Windows Vista以前では、netdomコマンドなどがあったり、Windows 7以降でもwmic.exeや、VBSからのドメイン参加もできました。

しかし、VBSやwmic.exeだと、パスワードの入力のところがどうもマスクづらかったりしたので、Powershellで検討してみました。

使ったコマンドレット

Add-Computer

注意事項

以降のコマンドを実行する場合は、Powershellを「管理者として実行」しておく必要があります。
f:id:red9999:20140624003634p:plain:w200

ドメイン参加

シンプルにドメイン参加するだけであれば、以下のコマンドを実行し、権限のあるユーザー情報を入力する。

# Add-Computer -DomainName ドメイン名 -Credential Get-Credential

OUを指定する場合

ドメイン参加後にOUを移動するのが面倒な場合、参加と同時にOUを指定することができる。

# Add-Computer -DomainName ドメイン名 -OUPath 'OU=階層2,OU=階層1,DC=hogehoge,DC=local' -Credential ドメイン名\ユーザー名

バッチ実行する場合

バッチファイルに以下のように記載し、右クリックから「管理者として実行」することにより、管理者でコマンドが実行できます。
f:id:red9999:20140624005120p:plain:w200

# Powershell -Command $cred = get-credential; Add-Computer -DomainName ドメイン名 -OUPath 'OU=階層2,OU=階層1,DC=hogehoge,DC=local' -Credential $cred

今回はあえて都度資格情報を入力できるように作りました。
セキュリティ的に気にしなければ、パスワード埋め込みも簡単にできると思います。