我目前有一個Power Shell腳本,它使用WMI向計算機查詢服務標籤/序列號&,然後使用SOAP請求查詢Dell的網站以獲取保修信息。問題在於,對於某些計算機,我在查詢中收到多個結果,而不是單個保修日期。我需要做的是能夠比較返回的值以獲得正確的保修信息。我認爲我需要將返回的結果解析爲數組,然後進行比較,但我不確定。任何幫助表示讚賞。Powershell比較返回的結果
$c = 'localhost'
$service = New-WebServiceProxy -Uri https://xserv.dell.com/services/assetservice.asmx?WSDL
$system = Get-WmiObject -ComputerName $c win32_bios -ErrorActionSilentlyContinue
$serial = $system.serialnumber
$guid = [guid]::NewGuid()
$info = $service.GetAssetInformation($guid,'check_warranty.ps1',$serial)
$info | Select-Object -ExpandProperty entitlements | Where-Object {$_.ServiceLevelCode -eq "SV" -or $_.ServiceLevelCode -eq "TS"}
下面是一臺計算機返回的結果:
ServiceLevelCode: TS
ServiceLevelDescription : ProSupport
Provider : DELL
StartDate : 8/8/2014 12:00:00 AM
EndDate : 8/7/2016 12:00:00 AM
DaysLeft : 306
EntitlementType : Active
ServiceLevelCode : TS
ServiceLevelDescription : ProSupport
Provider : DELL
StartDate : 8/7/2013 12:00:00 AM
EndDate : 8/7/2014 12:00:00 AM
DaysLeft : 0
EntitlementType : Expired
感謝馬特,不幸的是我不知道如何獲得有效的保證。我認爲我的關鍵是找到一種方法來比較返回結果的結束日期,並選擇最新的日期即8/7/2016 12:00:00 AM比8/7/2014更新12 :00:00 – Raproductions
@生產正是他的'排序'方法。它根據EndDate屬性對結果進行排序並選擇第一個結果。 – TheMadTechnician
@生產''_ _。EntitlementType -eq「活動」'得到有效和_active_保證。它是你在問題中顯示的屬性。除第二個代碼外,還可以獲得最新結束日期的條目。所以從理論上說,日期是你有最後一天的保修期。我的問題是有幾種dell保修的風格。 – Matt