問題タブ [xp-cmdshell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
15034 参照

sql-server-2005 - Microsoft SQL xp_cmdshell は、スペースを含むファイル名を好みません。スペースを別のものに置き換えることはできますか?

BCP を使用してテーブルからデータをダンプするこの TSQL コードがあります。複雑に見えますが、テーブルごとに 1 回実行される @command 文字列を作成し、BCP がテーブル レコードをディスクにダンプするだけです。これは、すべてのテーブル データをすばやくバックアップするための優れた方法です。以下に、少し読みやすい解決済みバージョンを示します。

はスペースのあるものです@bcppathC:\Program Files\Microsoft SQL Server\90\Tools\Binn\bcp.exe

path の周りに二重引用符を使用しないと、二重引用符を使用""する'C:\Program' is not recognized... と、同じエラーが発生します。二重二重引用符を使用"" ""すると、それは言うThe filename, directory name, or volume label syntax is incorrect.

@command は、印刷時にこれに解決されます。

編集:

奇妙なことにECHO ? &&、「パス」の前に を置いたところ、うまくいきました (二重引用符で囲みました) ....なぜですか?

0 投票する
1 に答える
3507 参照

sql-server - xp_cmdshellファイルディレクトリをテキストファイルに書き込みます

ファイルディレクトリをテキストファイルに書き込むにはどうすればよいですか?使用したいディレクトリはC:\です

私が今持っているコードは

ただし、ファイルへの書き込みではありません。私はこれを言う必要がありますか...

0 投票する
1 に答える
746 参照

sql-server - SQL Server エージェント プロキシで xp_cmdshell を使用して実行すると、コンソール アプリが印刷されない

新しい行がデータベース テーブルに挿入されるたびに、ssrs レポートをネットワーク上の特定のプリンターに自動的に印刷する必要があります。データベース テーブルには、xp_cmdshell を使用して、レポートをレンダリングおよび印刷するコンソール アプリケーションを呼び出すトリガーがあります。コマンドプロンプトからコンソールアプリケーションを実行すると動作します。また、SQL Server が実行するアカウントを管理者に変更すると、xp_cmdshell が期待どおりに機能し、レポートが出力されます。しかし、SQL Server を管理者として実行したくないので、sp_xp_cmdshell_proxy_account を使用してプロキシ アカウントを設定しました。SQL Server が xp_cmdshell を実行するアカウントとして管理者を使用し、SQL Server を Local System として実行するように設定しました。でも、

RPC サーバーが利用できません - ソース: System.Drawing - スタック トレース: System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument ドキュメント、PrintEventArgs e) で System.Windows.Forms.PrintControllerWithStatusDialog.OnStartPrint(PrintDocument ドキュメント、PrintEventArgs e) でSystem.Drawing.Printing.PrintController.Print(PrintDocument ドキュメント) で System.Drawing.Printing.PrintDocument.Print() で PrintQCChecklist.Program.Main(String[] args)

次に、xp_cmdshell を使用して whoami.exe を呼び出すと、「administrator」が返されます。SQL サーバーが管理者として実行されているときにドキュメントが印刷されるのに、管理者としてプロキシの下で実行されているとクラッシュするのはなぜですか? (xp_cmdshell を使用することで頭を悩ませないでください。セキュリティ上のリスクは承知しています。ありがとうございます。)

0 投票する
2 に答える
8255 参照

sql-server-2005 - Sysadminとしてストアドプロシージャを実行するにはどうすればよいですか?

ユーザーにSysadminロールを付与したくありません。特定のストアドプロシージャをSysadminまたはsysadminのユーザーとして実行する方法はありますか?ストアドプロシージャはMSSQL2005にあり、xp_cmdshellがあります。コードは次のとおりです。

0 投票する
0 に答える
1145 参照

sql-server-2008-r2 - SQL Server 2008 R2 を使用してフォルダーの内容を削除しようとしています

xp_cmdshellフォルダー内のファイルを削除するために SQL クエリ エディターから実行していますが、結果として 2 行が表示されます。最初の行にはメッセージが含まれ、"The system cannot find the file specified."2 番目の行には次の内容が含まれます"NULL"

次のコマンドを試しました:

0 投票する
1 に答える
614 参照

sql-server - xp_cmdshellを使用して呼び出されたSSISパッケージはSQLServerトランザクションに参加できますか?

1つのデータフロータスク(OLE DBソースからフラットファイルへ)を含む非常に基本的なSSISパッケージがあります。

制御フロー

データフロー

TransactionOptionプロパティがRequiredに設定されており、IsolationLevelオプションをReadCommitted、ReadUncommitted、Serializableに設定してみました。

パッケージは、すべての行をテーブル[TestTable]からフラットファイルにエクスポートします。

次のSQLスクリプトがあります(現時点ではManagement Studioで実行しています)。

パッケージを実行する前にテーブルからすべての行を削除していることに注意してください。理論的には、パッケージはゼロ行をファイルにエクスポートする必要がありますが、実際に起こっているのはパッケージがハングしていることです( TestTable)。質問は次のとおりです。この方法で呼び出されたSSISパッケージは、SQLブロックの先頭で開始されたトランザクションに実際に参加しますか?そうでない場合は参加できますか?

0 投票する
2 に答える
12668 参照

sql - SQL Server 2008 で XP_CMDSHELL を介してネットワーク経由でファイル/フォルダーにアクセスするにはどうすればよいですか?

「EXEC MASTER..XP_CMDSHELL」を使用してフォルダー/ディレクトリにアクセスしようとしていますが、ローカル ファイル/フォルダーに対しては機能しますが、ネットワーク経由でフォルダーにアクセスすることはできません。

ネットワークの場所にはアクセスできますが、SQL サーバーを使用しないことに注意してください。

Sql サーバーは Winodws 認証モードで実行されています。Sql サーバーは、'nt authority\network service' アカウントを使用してリモート フォルダーにアクセスしています。

よろしく

0 投票する
3 に答える
9785 参照

sql - オブジェクト xp_cmdshell で許可が拒否されました

オブジェクト 'xp_cmdshell' で実行権限が拒否されました。

状況は次のとおりです。ExportFile というストアド プロシージャがあります。Virtual PC の Web アプリケーションから SqlCommand を介してストアド プロシージャを呼び出しています。このコマンドの実行中にアクセス許可エラーが発生します。

次に、SQL プロファイラーを介してデバッグし、プロファイラーからクエリ ウィンドウに結果を実行します (これは、プロファイラーからクエリ ウィンドウに基づいて必要なパラメーターを使用して StoredProcedure を実行することを意味します)。ファイルは正常にエクスポートされました。

接続文字列でのログインが所有者お​​よび管理者ユーザーであることを考えると、これには何が問題なのだろうか。

0 投票する
4 に答える
8430 参照

sql - テーブル更新が非同期的にトリガーされた後、SQL Server からコンソール アプリケーションを実行しますか?

問題を解決するための最善の方法を見つけるのに苦労しています。

テーブルの行の値が更新された後、そのテーブルの 2 つのフィールドをコンソール アプリケーションのパラメーターとして使用する必要があります。現時点では、テーブルにトリガーを設定xp_cmdshellし、パラメーターを使用してアプリケーションを実行することで、これを実現できます。ただし、コンソール アプリケーションの終了を待機している間にストアド プロシージャがハングしないように、これを非同期で行う必要があります。

多分私はこれについて間違った方法で進んでいます。

SQL Server 2008 を使用しています

編集 - Andriy Mによる回答は現在最高のようですが、コメントに記載されているように、これを「即座に」実現する方法が必要です。SPまたはトリガーからジョブを呼び出すことはできますか? または、同様の結果を達成する別の方法はありますか?

みんな助けてくれてありがとう。

編集 - より良い解決策を得るのに最も役立ったので、彼の答えを以下に選択しました。私がやったことは、更新された行を追跡する別のテーブルに対してクエリを実行するジョブを作成することでした。次に、更新する必要がある行がある場合、xp_cmdshell を使用して、指定されたパラメーターでアプリケーションを実行します。このソリューションは、これまでのところスムーズに機能しているようです。

0 投票する
1 に答える
5540 参照

sql-server - SQL Server 2000 xp_cmdshell

SQLServer2000の使用クエリアナライザでこのコマンドを使用しようとしています

そして私はこのエラーを受け取ります:

サーバー:メッセージ2812、レベル16、状態62、1行
目ストアドプロシージャ'xp_cmdshell'が見つかりませんでした。

基本的に、このファイルをシステムから削除したいのですが...これを行うにはどのコマンドを実行する必要がありますか?