arrays - Powershell - 使用 Quest CMDlet 搜索和比较数组

标签 arrays search powershell compare quest

尝试确定网络上是否存在没有关联用户帐户的用户文件夹。当大多数结果应返回“找到”时,所有结果都返回“缺失”。有什么想法吗?

$Dir = "\\ServerName\Share\"
$FolderList = Get-ChildItem($Dir) | where {$_.psIsContainer -eq $true}
$UserList = get-qaduser -sizelimit 0 | select LogonName

foreach ($Folder in $FolderList)
{
if ($UserList -contains $Folder.name)
{
"Found:  " + $Folder.name
}
Else
{
"Missing:  " + $Folder.name
}
}

最佳答案

尝试一种稍微不同的方法,使用哈希表(它提供非常快速的键查找):

$users = @{}
Get-QADUser -sizelimit 0 | Foreach {$users["$($_.LogonName)"] = $true}
$dir = "\\ServerName\Share\"
Get-ChildItem $dir | Where {$_.PSIsContainer -and !$users["$($_.Name)"]}

如果文件夹名称与 LogonName 不完全匹配,那么正如 EBGreen 所指出的,您需要调整键 ($users["$($.LogonName)"]) 或文件夹名称用它来索引哈希表 (!$users["$($.Name)"])。

关于arrays - Powershell - 使用 Quest CMDlet 搜索和比较数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273323/

相关文章:

powershell - 自动化帐户链接到工作区 Azure

java - 如何确定数组是否包含单独数组中的所有整数

c# - 如何在 C# 中的 "Search Previous"Windows 窗体中实现 "Find Keyword"

delphi - 标记单词的所有实例(Delphi、RichText)

根据文件名派生的子串移动文件

powershell - 选择第二个或第三个对象/元素

java - 向 json 对象 java 中的数组添加新元素

php - 对数组进行排序并显示其对应者

c++ - 字符数组快速转换为ASCII键值的方法

arrays - Swift:按键引用数组元素