gpt4 book ai didi

powershell - 比较Get-WmiObject(日期)结果

转载 作者:行者123 更新时间:2023-12-03 00:14:19 26 4
gpt4 key购买 nike

我有一个PowerShell脚本,该脚本将从API中提取保修信息并将其保存到自定义WMI类。

然后,我会将这些数据带入RMM工具中,以便将其与我们的PSA解决方案同步,从而自动/更新保修终止日期以进行续订。

当时我没有考虑的是:具有相同属性(property)值(value)的多项保证。因此,使我的提取值where otherValue='specific text'的穴居脚本无效。

因此,WMI类每个保修都有一个实例,具有以下属性:

ComputerName: SUMGAIZPCEndDate: DD/MM/YYYYItemNumber: 000-0000Model: PewterPro 2000ServiceLevelDescription: When We Get To ItServiceProvider: LOLServiceTag: 1FSD51L;KStartDate: DD/MM/YYYY

So I hammered out something close to this:

Get-WmiObject -Namespace root\Namespace -Class Warranty_Info |
Where-Object ServiceLevelDescription -eq "How About Right Now" |
Select-Object -ExpandProperty EndDate
Get-WmiObject -Namespace root\Namespace -Class Warranty_Info |
Where-Object ServiceLevelDescritpion -eq "When We Get To It" |
Select-Object -ExpandProperty EndDate
Get-WmiObject -Namespace root\Namespace -Class Warranty_Info |
Where-Object ServiceLevelDescription -eq "You're Not Gonna Like It" |
Select-Object -ExpandProperty EndDate

最重要的是,每个命令实际上都是脚本的一部分,该脚本由我们的RMM工具(对于熟悉的人为LabTech)运行,并且由其PowerShell包装程序运行,因此每个命令分别运行,然后存储结果在名为 %powershellresults%的变量中。然后,我将RMM工具中的数据字段的值分别设置为 %powershellresults%

现在,解决问题。有时,保修已被更新。因此,当我从API获取信息时,将使用相同的 ServiceLevelDescription创建两个实例,但使用两个完全不同的 EndDate值。它将 12/15/2009 02/04/1974返回到数据字段,而不仅仅是 12/15/2009。由于该字段将与我们的PSA中的日期字段(仅一个日期)同步,因此我只需要一个日期。

最终,我需要比较所有数据字段(针对每种不同类型的保修),以确定哪个日期可以花费大量时间,但这又是另一天的问题。

如果需要,我可以提供我目前拥有的任何/所有脚本(大约5或6)。

最佳答案

我将通过sort字段上的EndDate编码和仅返回的第一个实例的select尝试一下。

如果您需要最早的日期,可以尝试以下操作:

Get-WmiObject -Namespace root\Namespace -Class Warranty_Info |
Where-Object ServiceLevelDescription -eq "You're Not Gonna Like It" |
Sort-Object EndDate |
Select-Object -First 1 |
Select-Object -ExpandProperty EndDate

至于最新的:
Get-WmiObject -Namespace root\Namespace -Class Warranty_Info |
Where-Object ServiceLevelDescription -eq "You're Not Gonna Like It" |
Sort-Object EndDate -Descending |
Select-Object -First 1 |
Select-Object -ExpandProperty EndDate

格式化提示:选择代码,然后按Ctrl + K ^ _ ^

编辑:然后,如果需要比较每种保修类型的日期,则可以将每个WMI call 返回存储在单独的变量中,然后进行比较。

关于powershell - 比较Get-WmiObject(日期)结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com