示例:

你可以使用一个变量来存放一个数组,通过这个数组对变量分配多个值,在值之间,值需要用分隔号隔开,下面来创建一个示例:

$servers = “EX1”,”EX2”,”EX3”

                   创建一个空的哈希表,可以使用如下语法:

                   $hashtable = @{}

                   创建完哈希表后,我们可以对它进行赋值:

                   $hashtable[“server1”] = 1

                   $hashtable[“server2”] = 2

                   $hashtable[“server3”] = 3

                   我们也可以使用如下一条命令来创建哈希表,语法如下:

                   $hashtable = @{server1 = 1; server2 = 2; server3 = 3}

                   上面的这条命令中,我们使用了分号隔开多个哈希值,也可以使用如下语法:

                   $hashtable = @{

server1 = 1

server2 = 2

server3 = 3

}

                   下面先来看看数据在PewerShell中运行的结果:

Exchange 2013 PowerShell数组和哈希表

上面的结果中,开始是输出结果,后面使用重新赋值的方式把$server[2]的值从EX3修改为EX4

下面继续看一条命令,我们对数组增加值

Exchange 2013 PowerShell数组和哈希表

使用如下命令查看当前数组中值的个数:

Exchange 2013 PowerShell数组和哈希表

我们也可是使用循序语句,把数据中的值以字符串的形式显示出来,语法如下:

 $servers | ForEach-Object {"Server Name: $_"}

Exchange 2013 PowerShell数组和哈希表

还可以使用参数-Contains 或者 –NotContains来查看数组中是否存在指定的值

              PS C:\> $servers -contains "EX1"

True

下面开始将下哈希表的用法:

Exchange 2013 PowerShell数组和哈希表

假如你想对哈希表进行排序,可以使用GetEnumerator()方法,然后使用值进行排序

Exchange 2013 PowerShell数组和哈希表

我们在创建自定义的对象时也能够使用哈希表,或者提供一组参数名称或参数化值。而不需要一个一个命令指定参数的名称,你可以使用哈希表的对应的值去匹配参数的名称以及其关联的键值来被自动输入,下面看个例子:

$parameters = @{

Title = "Manager"

Department = "运维工程部"

Office = "总部"

}

Set-User testuser @parameters

Exchange 2013 PowerShell数组和哈希表

AD里查看下用户信息:

Exchange 2013 PowerShell数组和哈希表

Exchange 2013 PowerShell数组和哈希表

上面的命令中,我们可以看到,用户属性中的TitleDepartmentOffice在使用Set-User被赋值

关于更多哈希表的用法,可以使用帮助系统,允许如下命令:

Get-Help about_Hash_Tables

更多数据和哈希表的用法示例:

可以使用输出结果来创建一个数组,例如,我们使用Get-Mailbox命令来获取一组邮箱

Exchange 2013 PowerShell数组和哈希表

对刚才创建的数组进行操作:

Exchange 2013 PowerShell数组和哈希表

注意:当我们的命令只是返回一个项目,在Exchange 2013是不可以使用数据形式访问的,但是在Exchange 2013 SP1中修复了此问题,看看下面的例子:

Exchange 2013 PowerShell数组和哈希表

假如是Exchange2013版本,我们可以使用如下命令避免输出结果出现错误:

Exchange 2013 PowerShell数组和哈希表

我们可以增加和删除多个属性值,看看下面的例子:我们对Testuser这个用户添加一个Email地址

$mailbox = Get-Mailbox testuser

$mailbox.EmailAddresses += "[email protected]"

Set-Mailbox testuser -EmailAddresses $mailbox.EmailAddresses

Exchange 2013 PowerShell数组和哈希表

看看用户的电子邮件地址信息:

Exchange 2013 PowerShell数组和哈希表

也可以执行删除操作,命令如下:

$mailbox.EmailAddresses -= "[email protected]"

Set-Mailbox testuser -EmailAddresses $mailbox.EmailAddresses

Exchange 2013 PowerShell数组和哈希表

关于更多数组的帮助信息,我们使用Get-Help about_arrays查看