Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 理解键';哈希表的s和值_Powershell_Csv_Key_Hashtable - Fatal编程技术网

Powershell 理解键';哈希表的s和值

Powershell 理解键';哈希表的s和值,powershell,csv,key,hashtable,Powershell,Csv,Key,Hashtable,我目前正在阅读一本书,我遇到了一个关于哈希表的示例,我们有一个CSV文件,我们想通过管道传送到New ADUser,CSV如下所示: 属性名称与New ADUser接受的属性名称不匹配,因此Import CSV。\newusers.CSV | New ADUser将不起作用,但我们可以创建一个哈希表来更改属性名称以匹配New ADUser接受的输入,本书提供的解决方案如下: C:\> import-csv .\newusers.csv | >> select-object -

我目前正在阅读一本书,我遇到了一个关于哈希表的示例,我们有一个CSV文件,我们想通过管道传送到
New ADUser
,CSV如下所示:

属性名称与
New ADUser
接受的属性名称不匹配,因此
Import CSV。\newusers.CSV | New ADUser
将不起作用,但我们可以创建一个哈希表来更改属性名称以匹配
New ADUser
接受的输入,本书提供的解决方案如下:

C:\> import-csv .\newusers.csv |
>> select-object -property *,
>> @{name='samAccountName';expression={$_.login}},
>> @{label='Name';expression={$_.login}},
>> @{n='Department';e={$_.Dept}}
我知道有一个键和一个与之相关的值,总共有3个键,我对这个特定解决方案的问题是:

  • 为什么密钥必须是Name、N、Label或L?我可以不输入自定义密钥名吗?使用名称、N、标签或L的意义是什么

  • 键的
    samAccountName
    Name
    的值都是
    $\登录
    。。。
    $\登录名
    来自哪里?在这种情况下这意味着什么


该键表示您的财产的财产名称,您必须使用所述的
名称
标签
标识符来定义该财产。属性的名称将是指定给键的值


$\登录名
来自您的CSV。您必须附加
$。
,因为您要在表达式中访问属性。

这会清除问题,但我仍然不明白为什么必须使用
名称
标签
来指定属性名称?我不能改用
custom01
custom02
吗?不管怎样,我仍然拥有相同的属性名称和值?属性名称仍然可以通过
New ADUser
ByPropertyName
传递,因此我不知道不使用
name
label
会如何改变这一点?PowerShell如何知道
custom01
是属性的名称?您必须指定属性名称e。g
custom01
使用的标识符是
name
label
对不起,我的措辞很糟糕,我的问题是:标识符必须是
name
label
?例如:
{name='samAccountName';expression={$\.login}
{custom='samAccountName';expression={$\.login}
指定
samAccountName
的属性名和
$\.login
的值,但标识符已更改,使用的标识符是否有任何更改?如果不是,名称或标签标识符之间是否存在差异,或者标识符只是用于保持事物的有序性?是的,标识符必须是名称或标签,但它仅用于powershell实际标识符是什么。因此name=samAccountName使用表达式中指定的值创建一个名为samAccountName的新属性。名称和标签之间没有区别。该功能被调用。