MMCスナップインからWSUSサーバークリーンアップウィザードを実行すると、次のWSUSデータベースエラーが表示されることがあります。
エラー:データベースエラー
データベース操作を実行しようとしたときにエラーが発生しました。 これは、データベースが非常にビジー状態である場合、データベースサービスが停止している場合、データベースへの接続が失われている場合、インストール後のタスクが正常に完了していない場合に発生する可能性があります。 問題が解決しない場合は、システム管理者にお問い合わせください。
サーバーノードのリセットをクリックして、サーバーへの接続を再試行します。
長い間クリーンアップを実行していない場合、これが起こる可能性があります。 そのため、wsusutilのマニュアルを読むことにするかもしれません。あなたはd e l eteunneededrevisionsスイッチがすべての問題を解決すると思うexeツールは、しかし、それはwsusutilと思われます。EXEパラメータdeleteunneededrevisionsはWSUS3.1には存在しません。
幸いなことに、powershellを使用して同じことを達成できます。 ここの利点は次のとおりです:
- このpowershellスクリプトを一度使用したことがある場合は、GUIからサーバークリーンアップウィザードを再度使用できます。
- タスクスケジューラを使用して、このpowershellスクリプトの実行をスケジュールすることができます(たとえば、毎月一度)。私のWSUSサーバーでは、約600GBの更新がありました。 このスクリプトを実行した後、ほぼ2000の更新が圧縮され、ほぼ200GBのディスク容量が節約されました!
powershellスクリプトの内容を”WSUSCleanup.ps1″に保存すると、DOSコマンドプロンプトウィンドウから次のようにこのスクリプトを実行できます: powershell-file”WSUSCleanup.ps1″
DOSコマンドプロンプトを管理者として開いていることを確認してください!
スクリプト自体の長さはわずか11行です(コメントを含める場合は13行です):
# WSUSCleanup.ps1
::LoadWithPartialName(“Microsoft.更新サービス。管理”)’/out-null
ws wsus=::GetUpdateServer();
$cleanupScope=new-object Microsoft.更新サービス。管理。CleanupScope;
$cleanupScope.DeclineSupersededUpdates=true true
clean cleanupScope。DeclineExpiredUpdates=true true
clean cleanupScope.CleanupObsoleteUpdates=true true
$cleanupScope.CompressUpdates=true true
$cleanupScope.CleanupObsoleteComputers=true true
$cleanupScope.CleanupUnneededContentFiles=$true
$cleanupManager=$wsus.GetCleanupManager();
$クリーンアップマネージャー。スクリプトを終了するには、次の手順を実行します。
スクリプトの出力は、最初に実行したときに次のようになりました:
C:\scripts>powershell-ファイル”WSUSCleanup.ps1″
Supersedupdatesdeclined : 0
ExpiredUpdatesDeclined : 0
ObsoleteUpdatesDeleted : 3
UpdatesCompressed : 1953
ObsoleteComputersDeleted : 0