【问题标题】:Formatting the results of a powershell script格式化 powershell 脚本的结果
【发布时间】:2014-12-09 22:17:12
【问题描述】:

如何在此脚本的每行结果左侧添加服务器名称?谢谢!

$servers = Get-Content -path .\Machines.txt
[pscustomobject]$result = @()  
$subresult =
ForEach ($server in $servers) 
{
Set-Service -computername $servers -Name sacsvr -StartupType Disabled -PassThru
}
$result = $subresult 
$result | Out-File local_group_members.csv

这是一个示例结果:

Status   Name               DisplayName                           
------   ----               -----------                           
Stopped  sacsvr             Special Administration Console Helper 
Stopped  sacsvr             Special Administration Console Helper 
Stopped  sacsvr             Special Administration Console Helper 

【问题讨论】:

    标签: powershell service output


    【解决方案1】:

    或者,您可以只为您现在输出的对象添加一个属性。像这样将您的 Set-Service 传递给 Add-Member:

    Set-Service -computername $servers -Name sacsvr -StartupType Disabled -PassThru | Add-Member -MemberType NoteProperty -Name 'Server' -Value $Server -PassThru
    

    现在您传递给$subresult 的每个对象都有一个新属性Server,它是运行它的服务器的名称。您可能希望在输出时通过 Select 管道获得所需的顺序。

    $SubResult | Select Server, Status, Name, DisplayName | Export-CSV 'local_group_members.csv' -NoType
    

    【讨论】:

    • 感谢您的回答,非常有帮助。另一个问题,我如何添加一些东西来检查服务器是否已启动(如测试连接)并将结果也放入此脚本的 Export-CVS 中?。
    • 这有点复杂,更适合它自己的单独问题。您需要检查服务器是否已启动,然后运行 ​​Set-Service,并添加一个成员说服务器已启动,或者输出服务器已关闭,因为如果它已关闭,则运行 set-service 将失败.
    【解决方案2】:

    您可以使用Select-Object 任意重新排序或添加到您的输出中。您可以使用hash tables 来包含计算的属性,例如您想要的 ServerName。

    因此,对于每个服务器,您可以设置服务并使用该服务器名称标记输出:

    ForEach ($server in $servers) 
    {
        Set-Service -computername $server -Name sacsvr -StartupType Disabled -PassThru |
        Select @{Name = 'ServerName'; Expression = {$server}}, Name, DisplayName, Status
    }
    

    以上是以下的简写:

    Select-Object -Property (properties)
    

    -Property 参数允许您选择要通过管道输入的对象类型的任意属性分组。另一个参数 -InputObject 允许我们按值通过管道输入对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2014-03-23
      • 2023-04-02
      • 1970-01-01
      • 2021-12-23
      • 2017-08-20
      相关资源
      最近更新 更多