使用例

API 機能には数多くの使い方があります。 ここでは、Security Controls のお客様の多くに役立つ可能性の高い例を2つ示します。

Security Controls を脆弱性スキャナと統合する

脆弱性スキャナを使用してネットワークの脆弱性を識別している場合、数百、あるいは数千といったコンピュータの問題が検出される場合があります。 いきなりこの数で圧倒されますが、何が起きているかというと、脆弱性スキャナが大量のノイズを生成しているだけなのです。 脆弱性スキャナは、見つからない個々のパッチをすべて脆弱性として報告することがよくありますが、実際にコンピュータ上に見つからないのは、おそらく、大量の古いパッチに取って代わるほんの数個の主要なパッチのみです。 いわゆる脆弱性の多くを解決するために必要なパッチは、ほんのわずかであることがよくあります。

これに対処するには、API を使用して次のことを行えます。

  • 脆弱性スキャナを呼び出す
  • 脆弱性リスト (CVE からなる) を抽出する
  • それらの CVE を Security Controls パッチ グループにインポートします。
  • 当該パッチ グループを使用してパッチのスキャンと配布を実行します。

パッチ エンジンが、取って代わられる古いパッチをすべて除外し、実際に不足している一握りのパッチを識別します。 パッチ配布後、脆弱性スキャナを再実行すると、ほとんどの脆弱性が排除されているはずです。

PowerShell スクリプトを使用して、クラスタ化された SQL Server にパッチを適用する

この例は、PowerShell スクリプトを使用して、SQL クラスタ内のコンピュータに対するパッチ スキャンおよびパッチ配布のプロセスを制御する方法を示しています。 この例の目標は、イベントを調整して、パッチ適用中のダウン時間をゼロにすることです。

Import-Module STProtect -PassThru

Import-Module ServerManager

Add-WindowsFeature RSAT-Clustering

Import-Module FailoverClusters

 

Write-Host “Scanning SampleSQL1”

$scan = Start-PatchScan –EndpointName “SampleSQL1”

–CredentialFriendlyName “Sample Domain Cred” –TemplateName “Security Patch Scan”

 

$scan | Watch-PatchScan

Write-Host “Scanning SampleSQL1 Complete”

 

$scanDetail = $scan | Get-PatchScan

Write-Host “SampleSQL1 Final Details”

$scanDetail | Format-PatchScanTable

 

#ターゲット ノードに見つからないパッチがあるかどうかを識別します。 ある場合、クラスタ内のノードを停止して、システムにパッチを適用します。

If ($scanDetail.MachineStates[0].MissingPatches –ne 0)

{

$totalMissingPatches = scanDetail.MachineStates[0].MissingPatches

 

Write-Host “$totalMissingPatches total missing patches will be deployed. Starting deploy . . ”

Write-Host “Stopping cluster node on SampleSQL1”

Suspend-ClusterNode –Name SampleSQL1 –Cluster SampleSQLCluster –Drain

 

$deploy = $scan | Start-PatchDeploy –TemplateName “Standard”

$deploy | Watch-PatchDeploy | Format-Table

 

Write-Host “Starting cluster node on SampleSQL1”

Resume-ClusterNode –Name SampleSQL1 –Cluster SampleSQLCluster –Failback NoFailback

}

特に、このサンプル スクリプトで行われるのは、次のことです。

  1. 必要なモジュールをインポートします。
  2. SQL クラスタ内の単一ノードをスキャンします。
  3. パッチ スキャンを監視して、スキャン完了まで他のアクションをブロックします。
  4. スキャン結果を取得します。
    出力には、ターゲット コンピュータに関する情報、見つからないパッチの数、インストール済みパッチの数、スキャン プロセスの完了を示すメッセージなどの詳細が含まれます。
  5. 見つからないパッチがある場合、 SQL クラスタ内の当該ノードを一時停止し、システムへのパッチ適用の準備が行われます。
    これは、クラスタ内の当該ノードを一時停止し、すべての現行セッションをこのノードから別のノードに排出することによって行います。
  6. 標準テンプレートを使用してパッチ配布を開始します。
  7. パッチ配布の進行状況を監視して、パッチ配布完了まで他のアクションをブロックします。
    これにより、配布の現在のステータス (スケジュール済み、完了して再起動、保留中の再スキャン、完了など) が表示されます。
  8. ノードを SQL クラスタに戻し、処理を再開します。

クラスタ内の SQL Server インスタンスまたはノードについて、必要に応じてこのプロセスを繰り返します。