寻求帮助,我正在尝试让此列表在运行此PS脚本时填充当前时间。
$serverlist = Get-Content E:Scripts3PL-pkgsToolsServiceCheckermachines_List.txt
$servicecheck = ForEach ($server in $serverlist)
{
$serverlist = Get-Content E:Scripts3PL-pkgsToolsServiceCheckermachines_List.txt
$time = Get-Date -Format g
Get-Service -Computername $server "foo*", "bar*", "biz*", "baz*", "Exp*" | time, machinename, name, status
}
$servicecheck
计算属性可以为您解决此需求。 计算属性允许将哈希表添加到 Select-Object
语句中的对象列表,以引用当前管道中未公开的现有属性。 它们看起来像这样:
@{Name='ColumnName';Expression={#SomeCodeHere}}
因此,由于您已经有一个变量,其中包含要存储在 $time
中的值,我们要做的就是将其添加到您选择的列列表中,如下所示
Get-Service -Computername $server "f*" |
Select-Object @{L='time';exp={$time}}, machinename, name, status
}
对于以下结果:
time MachineName Name Status
---- ----------- ---- ------
3/7/2018 11:14 AM localhost Fax Stopped
3/7/2018 11:14 AM localhost fdPHost Stopped
3/7/2018 11:14 AM localhost FDResPub Stopped
3/7/2018 11:14 AM localhost fhsvc Stopped
3/7/2018 11:14 AM localhost FontCache Running
3/7/2018 11:14 AM localhost FrameServer Stopped
您可以像这样向对象添加别名属性 -
Get-Service -Computername $server "foo*", "bar*", "biz*", "baz*", "Exp*" |
foreach {
$_ | Add-Member -MemberType AliasProperty -Name Time -Value $time -PassThru
} |
Select time, machinename, name, status
使用计算的属性,可以克服这种情况。