1. 計画フェーズ
1.1 要件定義
クライアント数、ネットワーク構成、セキュリティ要件などの確認
WSUSサーバーの役割(アップストリーム、ダウンストリーム)の決定
必要なストレージ容量、CPU、メモリの決定
1.2 設計
WSUSサーバーの構成設計(データベース、同期スケジュールなど)
グループポリシーの設計
ネットワーク構成の設計
1.3 構築計画
構築スケジュール、担当者の決定
必要なハードウェア、ソフトウェアの調達
テスト計画の作成
2. 構築フェーズ
2.1 ハードウェア、ソフトウェアの準備
サーバーハードウェアのセットアップ
Windows Server 2022のインストール
WSUS役割のインストール
2.2 WSUS設定
WSUSコンソールの設定
同期設定(アップストリームサーバー、同期する製品と分類など)
データベース設定
2.3 グループポリシー設定
WSUSクライアント設定のグループポリシー作成
グループポリシーの適用範囲設定
2.4 テスト
WSUSサーバーの同期テスト
クライアントの更新プログラム受信テスト
グループポリシーの適用テスト
負荷テスト
3. 移行フェーズ
3.1 クライアント移行
グループポリシーの適用
クライアントのWSUSサーバーへの接続確認
移行後の動作確認
3.2 運用開始
WSUS運用手順書の作成
関係者への操作説明
WSUSの監視、管理体制の確立
4. 運用フェーズ
4.1 定期的なメンテナンス
WSUSサーバーのディスククリーンアップ
WSUSデータベースのメンテナンス
更新プログラムの承認、拒否
4.2 トラブルシューティング
クライアントの更新プログラム受信エラー対応
WSUSサーバーの同期エラー対応
4.3 運用状況の監視
イベントログの監視
WSUSの同期状況などの監視
WBS作成のポイント:
各タスクの担当者、期限を明確にする。
タスク間の依存関係を考慮する。
リスク管理計画を含める。
テスト計画の作成は重要です。
Microsoft LearnのWindows Server Update Services (WSUS) のベスト プラクティス - Configuration Managerの内容は大変参考になるので参照ください。
https://learn.microsoft.com/ja-jp/windows-server/administration/windows-server-update-services/plan/plan-your-wsus-deployment
[0回]
PR
$servers = "server1", "server2", "server3", "server4", "server5", "server6", "server7", "server8", "server9", "server10"
Invoke-Command -ComputerName $servers -ScriptBlock {
Get-WmiObject -Class Win32_PageFileUsage | Select-Object PSComputerName, CurrentUsage, PeakUsage, AllocatedBaseSize
} | Format-Table
[0回]
▼Powershell
# 圧縮対象のフォルダパス
$sourceDir = "C:\path\to\your\files"
# 圧縮ファイルの出力先フォルダパス
$archiveDir = "C:\path\to\your\archives"
# 圧縮対象の更新日時(YYYYMM形式で指定)
$targetDate = "202008" # 例:2020年8月
# 圧縮処理
try {
# 圧縮対象のファイルを検索
$filesToArchive = Get-ChildItem -Path $sourceDir | Where-Object { $_.LastWriteTime.ToString("yyyyMM") -eq $targetDate -and $_.Extension -eq ".txt" }
if ($filesToArchive) {
foreach ($file in $filesToArchive) {
# 圧縮ファイル名を作成(YYYYMM形式)
$archiveName = "{0}\{1}.zip" -f $archiveDir, $file.LastWriteTime.ToString("yyyyMM")
# 同名ファイルが存在する場合は連番を付与
$counter = 1
while (Test-Path -Path $archiveName) {
$archiveName = "{0}\{1}_{2}.zip" -f $archiveDir, $file.LastWriteTime.ToString("yyyyMM"), $counter
$counter++
}
# 圧縮を実行
Compress-Archive -Path $file.FullName -DestinationPath $archiveName -CompressionLevel Optimal
# 圧縮が成功したら元のファイルを削除
if (Test-Path -Path $archiveName) {
Remove-Item -Path $file.FullName -Force
Write-Host "File '$file.FullName' archived to '$archiveName' and deleted."
} else {
Write-Error "Failed to archive '$file.FullName'."
}
}
} else {
Write-Host "No files found to archive for the specified date '$targetDate'."
}
} catch {
Write-Error "An error occurred: $_"
}
▼スクリプトの説明:
変数の定義:
$sourceDir: 圧縮対象のファイルがあるフォルダパスを指定します。
$archiveDir: 圧縮ファイルを保存するフォルダパスを指定します。
$targetDate: 圧縮対象ファイルの更新日時を YYYYMM 形式で指定します(例: "202008")。
ファイルの検索:
Get-ChildItem コマンドで指定したフォルダ内のすべてのファイルを取得します。
Where-Object コマンドで、更新日時が $targetDate と一致し、拡張子が ".txt" のファイルを絞り込みます。
圧縮処理:
絞り込まれたファイルごとに以下の処理を行います。
圧縮ファイル名を YYYYMM 形式で作成します。
同名ファイルが存在する場合は、連番を付与してファイル名が重複しないようにします。
Compress-Archive コマンドでファイルを圧縮します。
圧縮が成功したら、Remove-Item コマンドで元のファイルを削除します。
エラー処理:
try-catch ブロックでエラーを捕捉し、エラーメッセージを表示します。
スクリプトの実行方法:
スクリプトをテキストファイルに保存します(例: archive_files.ps1)。
PowerShell を管理者権限で実行します。
スクリプトを保存したパスに移動します。
.\archive_files.ps1 と入力してスクリプトを実行します。
注意点:
スクリプト実行前に、$sourceDir、$archiveDir、$targetDate の値を適切に設定してください。
圧縮対象のファイルが存在しない場合は、メッセージが表示されます。
圧縮処理中にエラーが発生した場合は、エラーメッセージが表示されます。
スクリプト実行後、元のファイルは削除されますので、ご注意ください。
[0回]
まとめると
クラスは、オブジェクトの設計図です。
インスタンスは、クラスに基づいて生成された具体的なオブジェクトです。
メソッドは、オブジェクトの振る舞いを定義する関数です。
変数は、オブジェクトの属性(状態)を保持する場所です。
[0回]
オブジェクト指向には、オブジェクトの他に、クラスとインスタンスという概念があります。
クラスは設計図のようなもので、クラスを実体化(インスタンス化)したものがインスタンスです。
オブジェクトは、クラスとインスタンスの総称です。
例え話で考えてみましょう。
クラス:車の設計図
車の色、大きさ、エンジン、タイヤの数など、車の一般的な特徴や動作を定義します。
インスタンス:実際に作られた一台一台の車
赤いセダン、青いSUV、白いスポーツカーなど、設計図に基づいて作られた個々の車です。
それぞれ、色や性能などが異なりますが、共通して「車」という特徴を持っています。
[0回]