【问题标题】:Getting Output of ADSI Command in Powershell在 Powershell 中获取 ADSI 命令的输出
【发布时间】:2017-07-24 08:02:48
【问题描述】:

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

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

问题是我想将未删除用户的结果直接获取到文本文件中。 什么命令可以帮助我?我试过Out-File,但它给了我一个空文件。

【问题讨论】:

  • “未删除用户的结果”是什么意思?是否要在删除操作后将剩余本地用户帐户的列表写入文件?
  • @AnsgarWiechers 完全正确!

标签: powershell output adsi


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 2023-03-25
    • 2014-08-02
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多