2017-02-27 4 views
1

誰かが私と一緒に裸になり、ルーキーの間違いを指摘してくれることを願っています。PS SQL挿入を機能させることができません。複数の "ExecuteNonQuery"エラー

私はADのデータを取得して、それをCSVファイルに入れます。次に、データをSQLサーバーに挿入し、既存のデータを上書きする必要があります。

何らかの理由で私はこれを動作させることができません。過去5時間をここや他の場所で検索したが、役に立たなかった。

Get-ADGroupMember -Identity "CN=Nearmiss APP,CN=Users,DC=domain,DC=AD" -Recursive | 
Get-ADUser -Properties Mail,displayName | 
Select-Object displayName,Mail | 
Export-CSV -Path D:\autostore\GetADusers\NearMissApp.csv -NoTypeInformation -encoding "unicode" -force 
# (Get-Content D:\autostore\GetADusers\NearMissApp-Temp.csv) | % {$_ -replace ‘"‘, ''} | out-file D:\autostore\GetADusers\NearMissApp.csv -Force 


#Connect to the SQL database NearMissApp-Users 
$sqlsvr = "sql" 
$database = "autostore" 
$table = "NearMissApp-Users" 
$csvFile = "D:\autostore\GetADusers\NearMissApp.csv" 


#Create SQL Connection 
$cmd.Connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$sqlsvr;Initial Catalog=$database; Integrated Security=true") 
$cmd.command = $connection.CreateCommand() 
$cmd.Connection.Open() 

Import-Csv $csvFile -Header displayName,Mail | % { 
    $cmd.CommandText = "INSERT INTO $table (displayName, Mail) VALUES ('$($_.displayName)', '$($_.Mail)')" | Out-host 
    $cmd.ExecuteNonQuery() 
    } 

    $cmd.connection.close 

私が手にエラーがある:

例外は "0" 引数(複数可)と "は、ExecuteNonQuery" を呼び出す: "は、ExecuteNonQuery:CommandTextをプロパティが初期化されていない" Dで :\オートストア\ GetADusers \ GetUsers-NearMissアプリ-DBupdate.ps1:23文字:3 + $ cmd.ExecuteNonQuery() + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId:InvalidOperationException

あなたの助けが大いにありがとう:)

+1

まず、SQLコマンドテキストをファイルまたは画面に書き込んで、有効なSQLがあることを確認できるようにします。 – Bruce

+0

$ cmdはどのように定義されていますか? –

+0

$ cmd.commandまたは$ cmd.CommandTextのいずれかが間違った表記のようです。 –

答えて

0

$cmd.CommandText = ...ラインから| Out-hostを削除してください。

関連する問題