首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -使用Quest CMDlets搜索和比较阵列

Powershell -使用Quest CMDlets搜索和比较阵列
EN

Stack Overflow用户
提问于 2009-08-13 17:06:45
回答 2查看 1.2K关注 0票数 2

正在尝试确定网络上是否存在没有关联用户帐户的用户文件夹。所有结果都返回"Missing“,而大多数结果应该返回"Found”。有什么想法吗?

代码语言:javascript
复制
$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
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-14 02:29:34

尝试使用哈希表(提供异常快速的键查找)的稍微不同的方法如何:

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

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

票数 2
EN

Stack Overflow用户

发布于 2009-08-13 19:05:44

如果集合中的项与您正在测试的项相同,则-contains将匹配,因此请确保$Folder.Name与LogonName完全相同。通常情况下不会这样。对于名为foo的用户,大多数公司的文件夹名为foo$。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1273323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档