【发布时间】:2014-04-22 18:47:38
【问题描述】:
我正在自学 Powershell,但我正在努力掌握哈希表。我明白了这个概念,但应用它是另一回事。
我正在使用“Hey Scripting Guy”帖子作为参考,http://blogs.technet.com/b/heyscriptingguy/archive/2011/10/15/automatically-create-a-powershell-hash-table-10-15-11.aspx,即这里的这篇文章:
To create a hash table dynamically, follow these steps:
1. Create an empty hash table.
2. Store the empty hash table in a variable.
3. Collect the data.
4. Store the collected data in a variable.
5. Use the foreach statement to walk through the collected data.
6. Inside the loop call the add method to add the key value pairs to the hash table.
An example of this procedure is shown here:
$hash = $null
$hash = @{}
$proc = get-process | Sort-Object -Property name -Unique
foreach ($p in $proc)
{
$hash.add($p.name,$p.id)
}
效果很好,但是当我尝试将其满足我的需求时,它会说:
Cannot find an overload for "Add" and the argument count: "1".
At line:15 char:10
+ $hash.add <<<< ($strGroup)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest
Google 没有发现任何相关信息,所以我求助于 Stack Overflow Powershell 用户,我在这里做错了什么?
import-module activedirectory
$strDate = Get-Date
$strGroupList = get-content "C:\Users\MYUSERNAME\Documents\Group Audit\audit.txt"
$strGroupDetails = Get-ADGroupMember -identity $strGroup
$strGroupList #list groups found
$hash= $null #empty the hash table
$hash = @{}
foreach ($strGroup in $strGroupList)
{
$hash.add($strGroup)
}
我所做的只是进入一个文本文件,获取 Active Directory 组的名称,返回它们(为了逐步执行代码),目的是获取每个项目中组的所有成员在我的列表(文本文件)中,按组放入单独的数组中。例如:
Group1 Time/Date
------ ---------------
member1
member2
member3
member4
Group Owner:__________
Group2 Time/Date
------ ----------------
member1
member2
member3
member4
Group Owner:__________
问题是我不知道自己做错了什么。我通读了帖子,按照他的方式做的很好,但是我的方式有问题。我确定我用手指指了一些东西,但我就是找不到!
感谢任何帮助,欢迎任何批评。
【问题讨论】:
标签: powershell active-directory hashtable