none
SQLSERVER の xp_cmdshell を用いてのバッチ実行でファイルコピーがしたい。 RRS feed

  • 質問

  • お世話になります。
    クライアントPCから、Aサーバー上にある、SQLSERVERのストアドプロシージャー経由にて、
    Aサーバーにあるバッチを実行したいです。バッチには、AサーバーのA.txt 
    というファイルを Bサーバーの指定フォルダにコピーしたいという処理になります。

    xp_cmdshellストアドプロシージャーにて実行した結果、下記のようなエラーが発生して
    実現できませんでした(直接バッチファイルを実行した場合成功します)

    "使用されているアカウントはコンピュータアカウントです。
     このサーバーにアクセスするにはグローバルユーザーアカウント又は
     ローカルユーザーアカウントを使用して下さい。"

    ※AサーバーのA.txt を Aサーバーの指定フォルダにコピーをするというストアド経由でのバッチ
     処理は正常に動作します(同一サーバー上のSQLSERVER上でのコピー処理であればOK?)


    【環境】
    ・Aサーバー(windows サーバー)
    OS:Windows Server2019
       Sqlserver2019


    ・Bサーバー(linux サーバー)
    OS:linuxですが、正確な情報は不明です。


    ・クライアントPC
    OS:Windows 10

    【その他の情報】
    ・Aサーバー、Bサーバー、クライアントPCはすべて同一ドメイン上に存在
    ・クライアントPCへのログインはドメインへ(ドメインユーザー)
    ・Bサーバーのコピー先フォルダへのアクセス権限は everyone 権限(フルコントロール)

    ★他に試した事
    ・AサーバーにBサーバーのコピー先 フォルダをネットワークドライブの割り当て 指定して
     コピー処理ができるかを確認 → 同じエラーが発生

    ・資格情報の管理から、いろいろと設定してみたが駄目でした。
     (資格情報について、かなりの無知でどのように設定したらよいかがわからなかったので、
      かなり適当でいろいろやってみましたが駄目でした・・・)


    大変申し訳ありませんが、

    "使用されているアカウントはコンピュータアカウントです。
     このサーバーにアクセスするにはグローバルユーザーアカウント又は
     ローカルユーザーアカウントを使用して下さい。"

    がなぜ発生するのか?また、回避策は何かあるか?を
    ご教示いただけると幸いです。

    もし、上記情報で足りないものがあれば、ご指摘いただければと思います。
    その際は、不足情報を連携させていただきたく思います。

    よろしくお願いいたします。
    2021年9月22日 15:03

すべての返信

  • お世話様です。

    あるサーバーから、別のサーバーに対し、コピー&ペーストを試みたところ

    下記のようなエラーが発生しました。

    "使用されているアカウントはコンピュータアカウントです。 このサーバーにアクセスするにはグローバルユーザーアカウント又は ローカルユーザーアカウントを使用して下さい。"

    考えられる事と、解決方法をいくつか教えていただければと思っております。

    当方、PCスキルが素人なので、できるだけ具体的にご教示いただけると嬉しいです。

    ※当方の環境は以下です

    OS:windows 10 pro

    ログインはドメイン環境にログインしています(というか、ドメインにログインしていると思いますが正しいです。

    というのも申し訳ありませんが、あまりその辺りが詳しくありませんので。)

    よろしくお願いします。

    2021年9月24日 0:18
  • ↓ このスレッドと同じ話ですか?

    SQLSERVER の xp_cmdshell を用いてのバッチ実行でファイルコピーがしたい。
    https://social.technet.microsoft.com/Forums/ja-JP/b110e8bb-958c-489d-a87b-8fc35a702fe1/sqlserver-12398-xpcmdshell?forum=sqlserverja
    2021年9月24日 1:14
  • そうです。

    よろしくお願い致します。

    2021年9月24日 1:44
  • papapachamaさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    xp_cmdshellというユーザーはsysadmin固定サーバーロールのメンバーでしょうか。 
    そうでない場合は、xp_cmdshell_proxy_accountを作成する必要があります。 
    Xp_cmdshellは、## xp_cmdshell_proxy_account ##という名前の資格情報に保存されているアカウント名とパスワードを使用してWindowsに接続します。 
    このプロキシクレデンシャルが存在しない場合、xp_cmdshellは失敗します。 詳細はxp_cmdshell プロキシアカウントをご参照ください。

    最初に有効にしたとき、xp_cmdshellを実行するにはCONTROLSERVER権限が必要です。
    また、xp_cmdshellによって作成されたWindowsプロセスには、SQLServerサービスアカウントと同じセキュリティコンテキストがあります。 詳細はアクセス許可をご参照ください。

    他にご存知の方がおりましたら、情報をご共有いただければ幸いです。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年9月24日 5:38
    モデレータ
  • Haruka6002 さん>

    以下のスレッドと同じ話だそうですので統合していただけませんか。スレッドの乱立は参加者に迷惑ですので。

    あるファイルをコピー&ペーストしたらエラーがでました。考えられる事をご教示いただけると助かります。 
    https://social.msdn.microsoft.com/Forums/ja-JP/7d6d6c71-d230-43c4-9a72-ef35e586ab40/12354124271250112449124521252312434124671250012540652861250612?forum=sqlserverja
    2021年9月24日 5:46
  • お世話様です。

    ありがとうございます。

    xp_cmdshell に関しては有効化した状態です。

    よろしくお願いしあmす。

    2021年9月24日 6:41
  • >SurferOnWwwさん、ご確認いただきありがとうございます。
    スレッドの結合が完了しました。
    今後ともよろしくお願いいたします。

    >papapachamaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。
    この問題はいま確認中となっており、何かの更新があり次第、返信させていただきます。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年9月27日 8:56
    モデレータ
  • papapachamaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    xp_cmdshellに関しては有効化した状態だということが承知いたしましたが、
    前回の返信で述べたように、ユーザー権限もご確認いただけますでしょうか。


    どうぞよろしくお願いいたします。 


    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年9月28日 0:54
    モデレータ