我想将输出传输到一个.csv,但是当我这样做时,我不能添加主机名,所以我已经决定将它拍摄到一个.txt,然而,我没有太多的空间来操作结果。
原来的一条船是:
$([ADSI]"WinNT://$env:COMPUTERNAME").Children | where {$_.SchemaClassName -eq 'user'} | select @{l='name';e={$_.name}},@{l='LastLogin';e={$_.lastlogin}} | export-csv C:\csv.csv我修改了它以针对一个列表运行,但是原始代码并不表示主机名.我很想知道怎么做。以下是修改后的代码:
$computers = Get-Content C:\LocalLogin.txt
ForEach ($Computer in $Computers)
{
$COMPUTER | Out-File C:\StaleLocalLogins.txt -Append
$([ADSI]"WinNT://$COMPUTER").Children |
where {$_.SchemaClassName -eq 'user'} |
select @{l='name';e={$_.name}},@{l='LastLogin';e={$_.lastlogin}} |
Out-File C:\StaleLocalLogins.txt -Append
}发布于 2018-09-18 15:23:25
因此,基本上可以将主机名从$env:COMPUTERNAME添加到脚本的后面部分。下面是一个1的衬垫,但间距是为了便于阅读。
$([ADSI]"WinNT://$env:COMPUTERNAME").Children |
where {$_.SchemaClassName -eq 'user'} |
select @{l='name';e={$_.name}},@{l='LastLogin';e={$_.lastlogin}} |
%{
$_ |
Add-Member -MemberType NoteProperty -Name "HostName" -Value "$env:COMPUTERNAME"
$_ | Select-Object "HostName", "Name", "LastLogin"
} | Export-Csv "C:\Test\test.csv"此部分向创建的PSCustomObject添加一个新属性。它存储主机名。然后按照HostName、Name、LastLogin的顺序重新排序自定义对象。
%{
$_ | Add-Member -MemberType NoteProperty -Name "HostName" -Value "$env:COMPUTERNAME"
$_ | Select-Object "HostName", "Name", "LastLogin"
}在这里,它是一条单线。
$([ADSI]"WinNT://$env:COMPUTERNAME").Children | where {$_.SchemaClassName -eq 'user'} | select @{l='name';e={$_.name}},@{l='LastLogin';e={$_.lastlogin}} | foreach-object {$_ | Add-Member -MemberType NoteProperty -Name "HostName" -Value "$env:COMPUTERNAME"; $_ | Select-Object "HostName", "Name", "LastLogin"} | Export-Csv "C:\scripts\test.csv" -NoTypeInformationhttps://stackoverflow.com/questions/52389415
复制相似问题