使用Powershell列出具有特定文件夹的计算机

使用Powershell列出具有特定文件夹的计算机,powershell,directory,inventory,Powershell,Directory,Inventory,我正在尝试创建一个安装了测试版本程序的AD计算机的清单。该程序不会在Windows程序列表中创建条目,它只是在公用用户文件夹中创建一个文件夹。出于许多原因,如果我可以通过轮询广告来获取计算机列表,然后在PublicUser中搜索测试文件夹,那就太好了 这是我想到的,但当然失败了,因为我是新手 Get-ADComputer -Filter * | Get-ChildItem -path 'C:\Users\Public\Program\Test | Export-Csv \\computer\Us

我正在尝试创建一个安装了测试版本程序的AD计算机的清单。该程序不会在Windows程序列表中创建条目,它只是在公用用户文件夹中创建一个文件夹。出于许多原因,如果我可以通过轮询广告来获取计算机列表,然后在PublicUser中搜索测试文件夹,那就太好了

这是我想到的,但当然失败了,因为我是新手

Get-ADComputer -Filter * | Get-ChildItem -path 'C:\Users\Public\Program\Test | Export-Csv \\computer\Users\Daren\Desktop\testfolder.csv
这是一个更好的脚本,有人在另一个板上发布了这个问题后编写的,但输出是空白的,他们没有告诉我如何修复它

$computers = get-adcomputer -filter *

$output = @()

ForEach ($computer in $computers) {

If(Test-Path -Path "\\$($computer.Name)\c$\Users\Public\path\test") {

    $output += $computer

    }

}

$output | Export-Csv -NoTypeInformation -Path .\test.csv

欢迎并感谢所有的意见

大概是这样的:

get-adcomputer -filter * | foreach-object {
  $computerName = $_.Name
  if ( test-path "\\$computerName\C$\Users\Public\path\test" ) {
    $computerName
  }
} | out-file list.txt
或者:

get-adobject -ldapfilter "(objectClass=computer)" | foreach-object {
  $computerName = $_.Name
  if ( test-path "\\$computerName\C$\Users\Public\path\test" ) {
    $computerName
  }
}

比尔,非常感谢你的迅速回复!!我正在测试,将报告我的发现。输出文件再次为空!我很困惑。这是我得到的错误:get adcomputer:服务器返回了以下错误:枚举上下文无效。在第1行中,字符:1+获取adcomputer-筛选器*|针对每个对象{+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+CategoryInfo:未指定:[获取adcomputer],ADException+FullyQualifiedErrorId:ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands。GetADComputer@Dazza-尝试其他答案。Bill,非常感谢您的帮助,但是我遇到了与以前类似的错误:get-adobject:服务器返回了以下错误:枚举上下文无效。第1行字符:1+get-adobject-ldapfilter objectClass=computer | foreach对象{+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:未指定:[get-adobject],异常+FullyQualifiederRoId:ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADObject