使用PowerShell在输出结果中添加列

时间:2016-11-18 13:24:03

标签: windows powershell

我需要在命令输出中添加一列。

该命令在终端服务上运行并获取用户的状态

$users = Invoke-Command -ScriptBlock {query user}

$users | Out-File c:\users.txt

"查询用户"的输出是:

USERNAME    SESSIONNAME  ID     STATE    IDLE TIME  LOGON TIME  
user1        rdp-tcp#1   272    Active         3     18/11/2016 04:09  
user2        rdp-tcp#24  277    Active       1:59    18/11/2016 06:05

但是我需要在运行命令时包含一个包含日期时间的列,请参阅:

USERNAME    SESSIONNAME  ID     STATE    IDLE TIME  LOGON TIME        EXEC TIME
user1        rdp-tcp#1   272    Active         3     18/11/2016 04:09  11:00 
user2        rdp-tcp#24  277    Active       1:59    18/11/2016 06:05  11:00

我尝试过使用

$users | Add-Member NoteProperty IName($fiel.Hour)

在命令中,但它不起作用......

2 个答案:

答案 0 :(得分:0)

我对脚本进行了更改并且有效(我得到了一个人的帮助)

$scriptblock = 
(query user)  | ConvertFrom-Csv | 
Select-Object *,@{n='Exec Time';exp={Get-Date}} 

$users = Invoke-Command -ScriptBlock {$scriptblock}
$users | Out-File c:\users.txt

因为我需要继续使用原始布局的文件,并且我想将结果写在txt文件中的上一个结果中。

答案 1 :(得分:0)

在同一个文件中包含新结果,只需插入参数" -Append" 更改最后一行" $ users | Out-File c:\ users.txt -Append"