麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > shell > 正文

xp_cmdshell

2024-07-21 02:06:45
字體:
來源:轉載
供稿:網友
xp_cmdshell
  新增信息 - 2001 年 9 月

以操作系統命令行解釋器的方式執行給定的命令字符串,并以文本行方式返回任何輸出。授予非管理用戶執行 xp_cmdshell 的權限。



說明  在 microsoft® windows® 98 操作系統中執行 xp_cmdshell 時,將不把 xp_cmdshell 的返回代碼設置為喚醒調用的可執行文件的進程退出代碼。返回代碼始終為 0。


語法
xp_cmdshell {'command_string'} [, no_output]
參數
'command_string'

是在操作系統命令行解釋器上執行的命令字符串。command_string 的數據類型為 varchar(8000) 或 nvarchar(4000),沒有默認值。command_string 不能包含一對以上的雙引號。如果由 command_string 引用的文件路徑或程序名稱中有空格,則需要使用一對引號。如果使用嵌入空格不方便,可考慮使用 fat 8.3 文件名作為解決辦法。

no_output

是可選參數,表示執行給定的 command_string,但不向客戶端返回任何輸出。
返回代碼值
0(成功)或 1(失?。?br>結果集
執行下列 xp_cmdshell 語句將返回當前目錄的目錄列表。

xp_cmdshell 'dir *.exe'

行以 nvarchar(255) 列的形式返回。

執行下列 xp_cmdshell 語句將返回隨后的結果集:

xp_cmdshell 'dir *.exe', no_output

下面是結果:

the command(s) completed successfully.
注釋
xp_cmdshell 以同步方式操作。在命令行解釋器命令執行完畢之前,不會返回控制。

當授予用戶執行權限時,用戶能在 microsoft windows nt® 命令行解釋器上執行運行 microsoft sql server™ 的帳戶有權執行的任何操作系統命令。

默認情況下,只有 sysadmin 固定服務器角色的成員才能執行此擴展存儲過程。但是,也可以授予其他用戶執行此存儲過程的權限。

當作為 sysadmin 固定服務器角色成員的用戶喚醒調用 xp_cmdshell 時,將在運行 sql server 服務的安全上下文中執行 xp_cmdshell。當用戶不是 sysadmin 組的成員時,xp_cmdshell 將模擬使用 xp_sqlagent_proxy_account 指定的 sql server 代理程序的代理帳戶。如果代理帳戶不能用,則 xp_cmdshell 將失敗。這只是針對于 microsoft® windows nt® 4.0 和 windows 2000。在 windows 9.x 上,沒有模擬,且 xp_cmdshell 始終在啟動 sql server 的 windows 9.x 用戶的安全上下文下執行。



說明  在早期版本中,獲得 xp_cmdshell 執行權限的用戶在 mssqlserver 服務的用戶帳戶上下文中運行命令。可以通過配置選項配置 sql server,以便對 sql server 無 sa 訪問權限的用戶能夠在 sqlexecutivecmdexec windows nt 帳戶的上下文中運行 xp_cmdshell。在 sql server 7.0 中,該帳戶稱為 sqlagentcmdexec。現在,不是 sysadmin 固定服務器角色成員的用戶將在該帳戶上下文中運行命令,而無需再進行配置更改。


權限
xp_deletemail 的執行權限默認授予 sysadmin 固定服務器角色的成員,但可以授予其他用戶。



重要  如果為 mssqlserver 服務選用的 windows nt 帳戶不是本地管理員組的成員,則非 sysadmin 固定服務器角色成員的用戶將無法執行 xp_cmdshell。


示例a. 返回可執行文件列表
下例顯示執行目錄命令的 xp_cmdshell 擴展存儲過程。

exec master..xp_cmdshell 'dir *.exe'
b. 使用 windows nt net 命令
下例顯示 xp_cmdshell 在存儲過程中的使用。下例先用 net send 通知用戶 sql server 即將關閉,然后用 net pause 暫停服務器,最后用 net stop 關閉服務器。

create proc shutdown10asexec xp_cmdshell 'net send /domain:sql_users ''sql server shutting down in 10 minutes. no more connections allowed.', no_outputexec xp_cmdshell 'net pause sqlserver'waitfor delay '00:05:00'exec xp_cmdshell 'net send /domain: sql_users ''sql server shutting down in 5 minutes.', no_outputwaitfor delay '00:04:00'exec xp_cmdshell 'net send /domain:sql_users ''sql server shutting down in 1 minute. log off now.', no_outputwaitfor delay '00:01:00'exec xp_cmdshell 'net stop sqlserver', no_output
c. 不返回輸出
下例使用 xp_cmdshell 執行命令字符串,且不向客戶端返回輸出。

use masterexec xp_cmdshell 'copy c: qldumps/pubs.dmp / erver2/backups qldumps', no_output
d. 使用返回狀態
在下例中,xp_cmdshell 擴展存儲過程也給出了返回狀態。返回代碼值存儲在變量 @result 中。

declare @result intexec @result = xp_cmdshell 'dir *.exe'if (@result = 0) print 'success'else print 'failure'
e. 將變量內容寫入文件
下例將 @var 變量的內容寫入當前服務器目錄下名為 var_out.txt 的文件中。

declare @cmd sysname, @var sysnameset @var = 'hello world'set @cmd = 'echo ' + @var + ' > var_out.txt'exec master..xp_cmdshell @cmd
f. 將命令的結果捕獲到文件
下例將當前目錄的內容寫入當前服務器目錄中名為 dir_out.txt 的文件中。

declare @cmd sysname, @var sysnameset @var = 'dir/p'set @cmd = @var + ' > dir_out.txt'exec master..xp_cmdshell @cmd

請參見


create procedure

execute

創建安全帳戶

系統存儲過程(常規擴展過程)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 久久精品一二三区白丝高潮 | 成人免费毛片一 | 九九热这里只有精品8 | 久久成人免费观看 | 国产精品免费一区二区三区都可以 | 欧日韩在线视频 | 午夜免费一区 | 国产亚洲欧美在线视频 | 欧美国产成人在线 | 久久草在线视频国产 | 青青操国产 | 日韩精品中文字幕一区二区三区 | 在线播放h| 成人免费看片a | 久久久久国产精品久久久久 | 久久艳片 | 精品免费在线视频 | 一日本道久久久精品国产 | 成人福利在线 | 羞羞视频免费观看入口 | 国产精品九九久久一区hh | 性日本xxx | 91福利国产在线观一区二区 | 日韩视频一区二区在线观看 | 久草影音 | 国产精品9191 | 91天堂国产在线 | 狠狠干最新网址 | 久久久久久久久久性 | 精品中文视频 | 久久国产28 | 在线天堂中文在线资源网 | 毛片在线播放视频 | 91成人免费看 | 国产午夜精品久久久久久久蜜臀 | 草草免费视频 | 爱唯侦察 国产合集 亚洲 | 欧美日本一 | 免费视频a | a视频网站 | 毛片在线免费视频 |