Powershell中的标题不正确

时间:2018-06-29 16:39:24

标签: powershell

导入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}

在将$import变量与CSV文件输入一起检查后,哈希表标头如下所示:

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

代替

 SamAccountName          Location   JobTitle       DepartmentTitle            Plname          Pname      

由于这个原因,它不能正确地从标头中获取值并给出错误Cannot find MsolUser .

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

请让我知道您的想法

1 个答案:

答案 0 :(得分:3)

我没有看到这里显示的代码有问题。您真正关心的只是数据的表示。这与PowerShell中的解释无关。我再次遇到麻烦,无法找到对此确切行为的引用,但是您正在看到PowerShell对具有4个以上属性的对象执行的操作。在幕后,PowerShell选择了Format-List而不是Format-Table。您可以通过$user | Format-List

自己模拟

此自动化旨在作为一项功能,使您可以轻松地读取屏幕上的数据,而不是将其压缩在表格中。横向房地产是有限的。如果您希望使用该视图,则可以将其输出到$user | Format-Table -AutoSize之类的控制台。 Note Please do not save the output of that snippet. It is meant as a display mechanism.

关于您的问题,我只能为您输入的数据出现问题提供图像。您具有隐藏的控制字符,空格等,或者错误正确且该用户确实不存在。