Active directory 以文本文件形式从PC获取Active Directory信息-Powershell

Active directory 以文本文件形式从PC获取Active Directory信息-Powershell,active-directory,powershell-3.0,Active Directory,Powershell 3.0,我尝试运行的Powershell命令行出现问题。我们需要的是使用Powershell从PC的文本文件列表中获取PC名称和LastLogonData 以下是我尝试运行的代码: Get-Content C:\Hosts.txt | ForEach-Object{Get-ADComputer $_ -Properties Name,LastLogonDate | Select-Object Name,LastLogonDate | Export-Csv C:\Output.csv} 当我运行该代码时

我尝试运行的Powershell命令行出现问题。我们需要的是使用Powershell从PC的文本文件列表中获取PC名称和LastLogonData

以下是我尝试运行的代码:

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对象,那么ForEach对象之后的一切都运行得很好。添加Get Content和ForEach对象时,错误开始出现。我可以从错误消息中看到,每个单独的计算机名都是从文本文件中读取的,但我想知道它是否以计算机不喜欢的方式传递它。

。首先是查看hosts.txt文件中的内容。第二件事是将Export Csv命令移到ForEach对象语句之外。如果保持原样,它将只返回它在csv文件中处理的最后一个对象。我已经发布了一个例子说明它应该是怎样的

Get-Content C:\Hosts.txt | ForEach-Object {Get-ADComputer $_ -Properties Name,LastLogonDate | Select-Object Name,LastLogonDate} | Export-Csv C:\Output.csv

我无法复制您的问题,唯一不同的是hosts.txt文件的内容,因此查看它会很有帮助。

您能举一个hosts.txt的例子吗,根据您的错误,它以“computername”开头。我很抱歉,刚刚意识到这仍然没有得到答复。我不知道为什么这以前不起作用,但我在我所在的新公司进行了测试,一切正常。我确实在export命令中添加了一个append,但除此之外,它的工作方式与它应该的工作方式完全相同。在那种特殊的环境下,这一定是一种奇怪的侥幸。获取内容C:\Hosts.txt | ForEach对象{Get-ADComputer$|-Properties Name,lastLogonData |选择对象名称,lastLogonData |导出Csv C:\Output.Csv-Append}是的,我现在在一家新公司工作,使用一个普通的旧文本文件,每行一个计算机名,效果很好,正如预期的那样。在旧环境中一定是侥幸。我只想在Csv导出中添加一个-Append。