【问题标题】:Foreach loop output DateTime object plus other details.Foreach 循环输出 DateTime 对象以及其他详细信息。
【发布时间】:2016-01-24 06:57:54
【问题描述】:

我无法让 Powershell Foreach 循环输出 [DateTime] 对象,以便在重新启动后将其与另一个对象进行比较。

下面的示例脚本,我希望创建一个哈希表来存储计算机名 + 上次重新启动时间,然后添加当前重新启动时间,以便可以比较重新启动时间。

$servers = GC D:\Scripts\list1.txt

foreach($server in $servers){

 Try{
  $operatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $server
  $current = [Management.ManagementDateTimeConverter]::ToDateTime($operatingSystem.LastBootUpTime)

  "$server last rebooted $current"
 }#end try

 Catch{
  $err = $_.Exception.GetType().FullName
  Write-Warning "$err on $($server)"}#end catch

}#End foreach

-编辑,上面的脚本将下面的内容输出为字符串。我正在尝试获取TypeName: System.DateTime 对象的集合。

Server1 last rebooted 10/24/2015 11:39:34
Server2 last rebooted 10/22/2015 01:34:33

所以我又摸索了一下,得到了这一行,基本上脚本变成了“重新启动计算机,直到一切正常。”

IF($current -gt ((Get-Date).AddHours(-6)))
{"Server reboot is current for $server"}ELSE{"Please check $server"}

【问题讨论】:

  • 虽然我确信我们可以通过测试来解决这个问题,但如果您向我们展示出了什么问题以及您希望看到的内容会容易得多。
  • 啊,很好,添加了示例。截止日期比镜子中的更近!
  • 如果要输出日期时间对象,请不要将其包装在字符串中。
  • 当然,那我会有没有服务器可参考的日期和时间。我尝试使用哈希表或 PSCustomObject 进行锻炼的原因。​​

标签: powershell datetime foreach


【解决方案1】:

我尝试使用哈希表或 PSCustomObject 进行计算的原因。

不能两者兼得!

$servers = Get-Content "D:\Scripts\list1.txt"

$servers | ForEach-Object{
    $props = @{}
    $props.Server = $_
    Try{
        $operatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $props.Server
        $props.LastBootTime = [Management.ManagementDateTimeConverter]::ToDateTime($operatingSystem.LastBootUpTime)
    } Catch {
      $err = $_.Exception.GetType().FullName
      $props.LastBootTime = $null
      Write-Warning "$err on $($props.Server)"
    }#end catch

    New-Object -TypeName psobject -Property $props
}#End foreach

更改循环结构,因为如果需要,输出更容易通过管道传输。为在 try/catch 块之后转换为对象的每个循环传递构建一个哈希表。未经测试,但它应该工作。

【讨论】:

    猜你喜欢
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多