Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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中的标头不正确_Powershell - Fatal编程技术网

Powershell中的标头不正确

Powershell中的标头不正确,powershell,Powershell,导入CSV文件后,我创建了一个变量哈希表,这些变量将在一个简单的命令行中使用 问题是,当我导入CSV文件时,头被转置;它不是一个具有各种标题的表,而是不同的。我的代码是: $Import = Import-Csv "File\path\input.csv" foreach ($user in $import) { $msolparams = @{ UPN = $user.SamAccountName + "@company.com" Title = $

导入CSV文件后,我创建了一个变量哈希表,这些变量将在一个简单的命令行中使用

问题是,当我导入CSV文件时,头被转置;它不是一个具有各种标题的表,而是不同的。我的代码是:

$Import = Import-Csv "File\path\input.csv"

foreach ($user in $import) {

    $msolparams = @{
        UPN = $user.SamAccountName + "@company.com"
        Title = $user.JobTitle
        Deparment = $user.DepartmentTitle
        Displayname = $user.Pname + "," + " " + $user.Plname
        Location = $user.location}

    Set-MsolUser -UserPrincipalName $msolparams.UPN -Title $msolparams.Title -Department $msolparams.Department -DisplayName $msolparams.Displayname}
在使用CSV文件输入检查
$import
变量后,哈希表标题显示如下:

SamAccountName  : kodak.black
Location        : Central
JobTitle        : Title
DepartmentTitle : Department
Pname           : Kodak
Plname          : Black
而不是

 SamAccountName          Location   JobTitle       DepartmentTitle            Plname          Pname      
正因为如此,它不能正确地从标题中获取值,并给出错误
找不到MsolUser。

此外,您不能在变量中的任何位置使用
|ft
,因为代码将出错并停止


请让我知道您的想法

我认为这里的代码没有问题。实际上,您关心的只是数据的表示。这与PowerShell中的解释无关。我再一次很难找到对这种行为的引用,但您可以看到PowerShell在具有4个以上属性的对象上所做的操作。幕后PowerShell正在选择
格式列表
,而不是
格式表
。您可以通过执行
$user |格式列表

这种自动化旨在成为一种功能,使您可以轻松地读取屏幕上的数据,而不是将其压在表格中。横向房地产是有限的。如果您喜欢该视图,则可以将其输出到控制台,如
$user | Format Table-AutoSize


至于你的问题,我只能想象你的输入数据有问题。您可能有隐藏的控制字符、空白等,或者错误是正确的,并且该用户确实不存在

您也可以显示csv文件的2或3行。请在发布前删除一些敏感信息。这可能很有用:我看这里没有问题。Powershell正在向您显示属性列表,因为它认为它无法以表格格式正确显示。有一个自动变量涵盖了这一点。这不应该是你的问题。你能展示一些样本数据吗。你可以很容易地在你的列中留下一些空白,或者是造成这种情况的原因。没有个人信息。这个名字是rap groupDisplay中的一个家伙,与powershell对象的工作方式无关。我不是哈希表方面的专家,但我怀疑其中的列不能超过2列,至少不是您创建它的方式。我认为这是由于一个首选项变量造成的,但我找不到它。所以我认为它是一个format.ps1xml,但我找不到pscustomobject的格式。