質問者
Invoke-Salcmdでのwindows認証

質問
-
既存のバッチファイルをpowershell(2.0)に書き直すという作業行っています。
以下のようにpowershellに書き直したのですが、エラーが表示されてしまいます。
修正前:
sqlcmd -S 接続先データベース -E -i 入力ファイルパス -o 出力ファイルパス
修正後:
Invoke-Sqlcmd -ServerInstance "接続先データベース" -InputFile "入力ファイル" | Out-File -filePath "出力ファイルパス"
エラー:
用語 'Invoke-Sqlcmd' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再
試行してください。
発生場所 行:1 文字:14
+ Invoke-Sqlcmd <<<<
+ CategoryInfo : ObjectNotFound: (Invoke-Sqlcmd:String) []、CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
このエラーが出力されるのは記述方法がおかしいからでしょうか?
また、Windows認証をpowershell2.0で行う場合どのように記述するべきでしょうか。
どうかよろしくお願いいたします。
すべての返信
-
コマンドレット自体が見つかっていないようですが、SQLPS モジュールのインポートは行っていますか?
- 回答の候補に設定 牟田口大介Moderator 2014年11月13日 1:35
-
sqlpsのモジュールを行っていませんでした。
モジュールの読み込みですが、以下のコマンドを実行すればいいのでしょうか?
Import-Module “sqlps” -DisableNameChecking
こちらのコマンドを実行したところエラーが表示されてしまいました。
Import-Module : モジュール ディレクトリに有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'sqlps' は読み込まれませんでした。
発生場所 行:1 文字:14
+ Import-Module <<<< "sqlps"
+ CategoryInfo : ResourceUnavailable: (sqlps:String) [Import-Module]、FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand -
チャブーンです。
おそらくですが、SQL ServerのPowerShellモジュールがインストールされていないのではないでしょうか?
SQL ServerのPowerShellモジュールはSQL Serverセットアップからインストールします。またSQL Serverのバージョンによってはデフォルトでインストールされないので、インストールのコンポーネントの選択で、明示的に指定しないと、期待した状況にならないと思います。
管理コンポーネント等はSQL Serverセットアップを再実行することで、その部分だけ追加インストールできたはずです。
- 回答の候補に設定 牟田口大介Moderator 2014年11月13日 1:35