我是Power Shell的新手,我正在测试一些命令和想法。我坚持认为应该很简单。我想将AD中的计算机对象的名称拉入文件中。我到目前为止尝试的方法是这个
$computers = Get-ADComputer -Filter * | Format-List name
write($computers) | Out-File -FilePath .\computers.txt
我遇到的问题是,输出的文件看起来像这样
name : SERVER1
name : SERVER2
name : WORKSTATION1
name : WORKSTATION2
而且我正在寻找一个直接的名单列表,其中包含前面的“名称:”部分。我不确定是否有更好的方法来实现这一目标。
答案 0 :(得分:4)
这应该比@ MDMoore313的解决方案更快,因为没有循环结果&在每次旅行中写入磁盘(在我的AD环境中为我的1.1s和写入RAMDisk的1.1s):
$computers = Get-ADComputer -Filter * | select-object -expandproperty name | out-file .\computers.txt
答案 1 :(得分:1)
如果您使用的是PowerShell 3,则可以使用下面的简写点符号。
(Get-ADComnputer -filter *).name > .\computers.txt
or
(Get-ADComnputer -filter *).name | out-file .\computers.txt
答案 2 :(得分:1)
这是普通的面包&黄油:
Get-ADComputer -Filter * | Format-Table name
只需将命令中的“List”更改为单词“Table”即可获得您所要求的内容 - 主机名前面没有“name:”文本(并且每个结果之间没有换行符,或者!)。
答案 3 :(得分:0)
$computers = Get-ADComputer -Filter * | foreach { $_.Name | Add-Content -Path .\computers.txt}
答案 4 :(得分:0)
我找到了(get-adcomputer -filter *)。name> 。\ computers.tx无法正常工作,但如果原始定位有一些修改,它可以正常工作:
$computers = Get-ADComputer -Filter * | Format-table name
write($computers) | Out-File -FilePath .\computers.txt