【问题标题】:Error running Powershell script from a .csv从 .csv 运行 Powershell 脚本时出错
【发布时间】:2016-09-13 02:15:57
【问题描述】:

我正在尝试使用 .csv 文件中包含的信息运行 PowerShell 脚本。

我的脚本如下:

Import-CSV \\chem-fp01\shared areas\IT\New IT Folder (Do Not Delete \\Powershell Scripts\Create New User.csv | ForEach-Object {
  $Password = ConvertTo-SecureString $_.password -AsPlainText -Force

  New-Mailbox -Name $_.Name
  -FirstName $_.FirstName
  -LastName $_.LastName
  -Alias $_.Alias
  -UserPrincipalName $_.UserPrincipalName
  -Password $password
  -ResetPasswordOnNextLogon $false 
}

我收到下面的错误,不知道是什么意思

一元运算符“-”后缺少表达式。
在 C:\Scripts\CreateNewUser.psl:7 char:3
+ - 
    

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您必须将所有参数写入一行:

    New-Mailbox -Name $_.Name -FirstName $_.FirstName -LastName $_.LastName -Alias $_.Alias -UserPrincipalName $_.UserPrincipalName -Password $password -ResetPasswordOnNextLogon $false 
    

    或者你可以使用splatting(谢谢Frode F.):

    $parameters = @{
        Name = $_.Name 
        FirstName = $_.FirstName 
        LastName = $_.LastName 
        Alias = $_.Alias 
        UserPrincipalName = $_.UserPrincipalName 
        Password = $password 
        ResetPasswordOnNextLogon = $false 
    }
    
    New-Mailbox @parameters
    

    另一种解决方案是在行尾使用 ` 字符(不推荐):

    New-Mailbox -Name $_.Name `
    -FirstName $_.FirstName `
    -LastName $_.LastName `
    -Alias $_.Alias `
    -UserPrincipalName $_.UserPrincipalName `
    -Password $password `
    -ResetPasswordOnNextLogon $false 
    

    【讨论】:

    • 谢谢...行尾的字符是什么意思?
    • 如果您的 cmdlet 调用产生多行,您必须使用 ` 符号告诉 PowerShell,下一行属于上一行。
    • 谢谢。正如您所说,我已将 ` 放在每行的末尾。但是,现在我收到以下错误。语句块中缺少关闭 >。在 C:\scripts\createNewUser.ps1:15 char:1 * [], ParseException *FullyQualifiedErrorID: MissingEndCurlyBrace
    • 正如错误消息告诉您的那样,您最后缺少}。我将编辑我的答案,以便您可以复制粘贴它...
    • 请不要推荐使用反引号。反引号是邪恶的。使用 splatting 或正常的单行方式。
    【解决方案2】:

    此命令失败的原因是您的 CSV 文件路径包含空格,并且您没有用双引号或单引号将其括起来。

    只要您的路径包含空格,只需在路径的开头和结尾添加引号,如下所示:

    Import-CSV "\\chem-fp01\shared areas\IT\New IT Folder (Do Not Delete \\Powershell Scripts\Create New User.csv"
    

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 1970-01-01
      • 2015-08-04
      • 2015-03-17
      • 2020-09-07
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多