2016-05-17 15 views
1

.csvファイルに含まれている情報を使用してPowerShellスクリプトを実行しようとしています。.csvからPowershellスクリプトを実行する際のエラー

私のスクリプトは以下の通りです:私は以下のエラーを取得していますし、1行にすべてのパラメータを記述し、それはあなたがどちらかに持っている

Missing expression after unary operator '-'. 
At C:\Scripts\CreateNewUser.psl:7 char:3 
+ - <<<<LastName $_.LastName 
    + CategoryInfo   : ParserError: (-:String) [], ParseException 
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

答えて

3

を何を意味するのか分からない

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 
} 

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 
+0

はありがとう...あなたはの終わりに文字が何を意味していますこの線? – Aaron

+0

コマンドレットの呼び出しによって複数の行が生成された場合、PowerShellに 'シンボルを使用して、次の行が上記の行に属することを伝える必要があります。 –

+0

ありがとうございます。私はあなたが言ったように '各行の最後に'を入れました。しかし、今私は次のエラーを取得しています。文ブロックで '>'を閉じることができません。 FalseQualifiedErrorID:MissingEndCurlyBrace – Aaron

関連する問題