Powersell 获取日期与获取服务在同一行



寻求帮助,我正在尝试让此列表在运行此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

使用计算的属性,可以克服这种情况。

最新更新