PowerShell 技能连载 - 获取 DELL 保修信息(第二部分)
适用于 PowerShell 2.0 及以上版本
在前一个技巧中我们演示了如何用一个 Web Service 来获取 DELL 电脑的保修信息。我们收到了许多反馈,所以在我们介绍新内容之前,先展示这段可以获取保修信息的代码:
$serial = '36GPL41'
$service = New-WebServiceProxy -Uri http://143.166.84.118/services/assetservice.asmx?WSDL
$guid = [Guid]::NewGuid()
$info = $service.GetAssetInformation($guid,'warrantycheck',$serial)
$Entitlements = $info.Entitlements
$Entitlements
现在,如果您试着将 $Entitlements
加到一个用户界面的文本框中,或者将它输出为文本,结果可能不是您想要的:
PS> "Your Entitlements: $Entitlements"
Your Entitlements: Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1ervices_assetservice_asmx_WSDL.EntitlementData Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1ervices_assetservice_asmx_WSDL.EntitlementData Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1ervices_assetservice_asmx_WSDL.EntitlementData
PS>
这是因为 $Entitlements
是一个对象数组。当将它以文本方式显示时,我们希望 PowerShell 扩展类型系统能处理这些对象,所以将它们用 Out-String
处理一下:
PS> $EntitlementsText = $Entitlements | Out-String
PS> "Your Entitlements: $EntitlementsText"
Your Entitlements:
ServiceLevelCode : TS
ServiceLevelDescription : P, ProSupport
Provider : DELL
StartDate : 23.03.2004 00:00:00
EndDate : 23.03.2007 00:00:00
DaysLeft : 0
EntitlementType : Expired
ServiceLevelCode : ND
ServiceLevelDescription : C, NBD ONSITE
Provider : UNY
StartDate : 23.03.2005 00:00:00
EndDate : 23.03.2007 00:00:00
DaysLeft : 0
EntitlementType : Expired
ServiceLevelCode : ND
ServiceLevelDescription : C, NBD ONSITE
Provider : UNY
StartDate : 23.03.2004 00:00:00
EndDate : 24.03.2005 00:00:00
DaysLeft : 0
EntitlementType : Expired
PowerShell 技能连载 - 获取 DELL 保修信息(第二部分)
http://blog.vichamp.com/2015/02/25/getting-dell-warranty-information-part-2/