在Powershell中获取ADSI命令的输出

时间:2017-07-24 08:02:49

标签: powershell output adsi

我正在尝试删除多台计算机上的一些本地管理员用户。这是我使用的脚本,它起作用:

Import-Csv c:/input.csv | ForEach-Object {
    ([ADSI]"WinNT://$($_.ComputerName)").Invoke("Delete", "user", $_.Username)
}

问题是我希望将未删除的用户的结果直接转换为文本文件。 什么命令对我有帮助?我试过了Out-File,但它给了我一个空文件。

1 个答案:

答案 0 :(得分:0)

使用Get-WmiObject向本地用户查询远程主机:

$csv = Import-Csv 'C:\input.csv'
$lcl = 'LocalAccount=True'

$csv | ForEach-Object { [ADSI]... }

$csv | Sort-Object -Unique ComputerName | ForEach-Object {
  Get-WmiObject -Computer $_.ComputerName -Class Win32_UserAccount -Filter $lcl
} | Select-Object PSComputerName, Name | Export-Csv 'C:\output.csv' -NoType