从.csv运行Powershell脚本时出错



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

我的脚本如下:

Import-CSV \chem-fp01shared areasITNew IT Folder (Do Not Delete \Powershell ScriptsCreate 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字符:3+-<lt<lt;姓氏$_.LastName+类别信息:ParserError:(-:String)[],ParseException+FullyQualifiedErrorId:MissingExpressionAfterOperator

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

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

或者你可以使用飞溅(谢谢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 

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

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

Import-CSV "\chem-fp01shared areasITNew IT Folder (Do Not Delete \Powershell ScriptsCreate New User.csv"

最新更新