我编写了一个脚本来对 DELL PowerEdge 服务器上的 BIOS 设置进行一些更改。到目前为止,脚本按预期工作,这意味着我可以看到更改正在等待处理。这里的挑战是需要创建一个作业才能立即应用这些更改(服务器重新启动)或在下次重新启动时应用。
WebGUI 具有三个按钮:“应用并重新启动”、“下次重新启动时应用”和“放弃所有待处理”。如果不按这些按钮之一,即使服务器重新启动,更改仍将显示为待处理。
我尝试了一些 API 端点,但我似乎不知道如何创建这些作业。
这是我尝试过的端点:
# iDRAC API URI for BIOS settings
$biosUri = "https://$idracIp/redfish/v1/Systems/System.Embedded.1/Bios/Settings"
# iDRAC API URI for creating a job
$jobServiceUri = "https://$idracIp/redfish/v1/JobService"
# Apply BIOS settings
try {
Invoke-RestMethod -Uri $biosUri -Method Patch -Headers @{Authorization=("Basic {0}" -f $encodedCredentials)} -Body $jsonBiosSettings -ContentType "application/json"
Write-Host "BIOS settings updated successfully for iDRAC at $idracIp."
# Create job for BIOS settings
$jobBody = @{
TargetSettingsURI = "/redfish/v1/Systems/System.Embedded.1/Bios/Settings"
ScheduledStartTime = "TIME_NOW"
} | ConvertTo-Json
# iDRAC API URI for creating a job
$jobServiceUri = "https://$idracIp/redfish/v1/Managers/System.Embedded.1/Oem/Dell/DellJobService/Actions/DellJobService.SetupJobQueue"
$jobUri = "https://$idracIp/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset"
好吧,我明白了。
要安排作业但不重新启动,需要删除这一行
ScheduledStartTime = "TIME_NOW"
具有魅力。