我正在尝试运行一个Powershell命令行的问题。我们需要的是使用Powershell从PC中获取PC Name和LastLogonDate。
以下是我试图运行的代码:
Get-Content C:\Hosts.txt | ForEach-Object{Get-ADComputer $_ -Properties Name,LastLogonDate | Select-Object Name,LastLogonDate | Export-Csv C:\Output.csv}
当我运行该代码时,我收到一条错误,指出:“无法找到具有标识的对象:'ComputerName'”尽管PC确实在AD中。让我感到困惑的是,如果你自己运行它,ForEach-Object之后的所有东西都会运行得很好。添加Get-Content和ForEach-Object时,错误开始。我可以从错误消息中看到正在从文本文件中读取每个单独的计算机名称,但我想知道它是否以Get-ADComputer不喜欢的方式传递它。
答案 0 :(得分:0)
一些事情。首先是查看hosts.txt文件中的内容。第二件事是将Export-Csv命令移到ForEach-Object语句之外。如果保留原样,它将只返回它在csv文件中处理的最后一个对象。我已经发布了一个应该如何的例子。
Get-Content C:\Hosts.txt | ForEach-Object {Get-ADComputer $_ -Properties Name,LastLogonDate | Select-Object Name,LastLogonDate} | Export-Csv C:\Output.csv
我无法复制您的问题,唯一不同的是hosts.txt文件的内容,因此查看它会很有帮助。