使用示例
API 功能的用处多种多样。 很多都被 Security Controls 客户认为颇为实用,以下为两个示例。
将 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. 开始部署 。 .”
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
}
特别是,该实例脚本可:
- 导入所需的模块。
- 扫描 SQL 群集中的单个节点。
- 查看修补程序扫描,并在完成前阻止进一步操作。
- 获取扫描结果。
输出包含各种详细信息,例如关于目标计算机的信息、缺失和已安装修补程序的数量、说明扫描过程已完成的消息等。 - 如有缺失修补程序,将挂起 SQL 群集的节点,并准备修补系统。
为此,请挂起群集的节点,并将该节点的所有当前会话调至其他节点。 - 使用标准目标,启动修补程序部署。
- 查看修补程序部署进度,并在完成前阻止进一步操作。
这会显示部署的当前状态,包括已计划、完成并重启、挂起的重新扫描以及已完成。 - 将节点添加回 SQL 群集和重新恢复操作。
根据需要,对额外的 SQL Server 实例或群集的节点重复此操作。