none
Invoke-Salcmdでのwindows認証 RRS feed

  • 質問

  • 既存のバッチファイルを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で行う場合どのように記述するべきでしょうか。


    どうかよろしくお願いいたします。
    2014年10月16日 2:51

すべての返信

  • コマンドレット自体が見つかっていないようですが、SQLPS モジュールのインポートは行っていますか?

    2014年10月16日 3:42
  • 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

    2014年10月16日 4:29
  • チャブーンです。

    おそらくですが、SQL ServerのPowerShellモジュールがインストールされていないのではないでしょうか?

    SQL ServerのPowerShellモジュールはSQL Serverセットアップからインストールします。またSQL Serverのバージョンによってはデフォルトでインストールされないので、インストールのコンポーネントの選択で、明示的に指定しないと、期待した状況にならないと思います。

    管理コンポーネント等はSQL Serverセットアップを再実行することで、その部分だけ追加インストールできたはずです。

    2014年10月16日 6:08
  • こんにちは、

    話はそれますが、PowerShellからそのままsqlcmdを使うというのでは駄目なのでしょうか?

    2014年10月16日 6:18