誰かが私と一緒に裸になり、ルーキーの間違いを指摘してくれることを願っています。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
あなたの助けが大いにありがとう:)
まず、SQLコマンドテキストをファイルまたは画面に書き込んで、有効なSQLがあることを確認できるようにします。 – Bruce
$ cmdはどのように定義されていますか? –
$ cmd.commandまたは$ cmd.CommandTextのいずれかが間違った表記のようです。 –