亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

用vbs確定腳本正在哪一個帳戶下運行

2020-06-26 18:07:31
字體:
來源:轉載
供稿:網友
問: 
您好,腳本專家!如何確定腳本正在哪一個帳戶下運行? 
-- KW 
答: 
您好,KW。您知道,自從我們以各種托辭而開設這一專欄以來已有一段時間了,對于我們而言,這并非易事:畢竟,尋找托辭是我們這些腳本專家的拿手好戲。明確了這一點,那就讓我們以我們最喜歡的一個托辭開始吧:我們將向您介紹的腳本只在 Windows XP 和 Windows Server 2003 上有效。我們將向您介紹使得該腳本在 Windows 2000 上同樣有效的方法,但后者絕對不及前者好。 
噢,是的:現在感覺該方法不錯。 
好了,不找托辭了(至少是現在)。還是讓我們討論一下腳本吧。該腳本如下: 
復制代碼代碼如下:

strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where " & _  
    "Name = 'cscript.exe' or Name = 'wscript.exe'")  
For Each objProcess in colProcessList  
    If InStr(objProcess.CommandLine, "test.vbs") Then  
        colProperties =   objProcess.GetOwner(strNameOfUser,strUserDomain)  
        Wscript.Echo "This script is running under the account belonging to " _   
            & strUserDomain & "/" & strNameOfUser & "."  
    End If  
Next 

正如您所看到的那樣,雖然也可很容易地針對遠程計算機運行此腳本,但我們還是首先連接至本地計算機上的 WMI 服務。(是的,我們的確說過很多次這樣的話了。但這并不是托辭,而只是陳述事實:幾乎所有的 WMI 腳本針對遠程計算機的運行效果都與它們在本地計算機上的運行效果一樣好。我們確實時常在談論一些實質內容!)  
接下來我們遇到了下面這行代碼: 
復制代碼代碼如下:

Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where " & _  
    "Name = 'cscript.exe' or Name = 'wscript.exe'") 

您可能已經猜到我們需要使用 Win32_Process 類來執行我們的任務,這是因為 Win32_Process 是用來跟蹤計算機上當前運行的所有進程的 WMI 類。當然,我們并不關心計算機上運行的所有進程,我們只關心腳本。正因如此,我們添加了一個 Where 子句,該子句將只返回以下兩個 Windows 腳本宿主的實例的信息:Cscript.exe 和 Wscript.exe。 
注意:是的,我們本來可以以稍有不同的方式來編寫此腳本的,或許那樣會在進程中省下一兩行代碼。我們之所以選擇了此方法,是因為該方法與我們在 Windows 2000 上執行此任務的方法更相似。 
發出查詢后,我們建立一個 For Each 循環,以遍歷返回的集合。在本例中,我們試圖確定名為 Test.vbs 的腳本的所有者。因此,我們需要檢查每個腳本,以查看它的名稱是否為 Test.vbs。我們如何去做呢?通過使用下面這行代碼: 
If InStr(objProcess.CommandLine, "test.vbs") Then 
我們此處要做的是使用 InStr 函數來確定是否可在屬性 CommandLine 中的某個位置找到字符串 test.vbs。什么是 CommandLine 屬性?簡單地說,它就是從命令提示符啟動腳本所需的命令字符串。例如,CommandLine 可能為下列內容: 
C:/Scripts/Test Scripts/Test.vbs 
由于我們假定不存在名為 MyTest.vbs 的腳本,因此我們將檢查 test.vbs。如果您擔心此類名稱沖突,那么,我們可以只使用 InStr 并針對類似 /test.vbs 的字符串進行測試。這是一個您必須決定的問題。 
如果確實可以在 CommandLine 值中找到我們的目標字符串,則我們將調用 GetOwner 方法來找出進程的“所有者”(即,腳本在其下運行的帳戶的名稱): 
objProcess.GetOwner(strNameOfUser,strUserDomain) 
我們需要使用 GetOwner 傳遞一對“輸出參數”。輸出參數就是方法將用一個值對其進行填充的變量(由我們自己來命名該變量)。這里,我們將傳遞名為 strNameOfUser 和 strUserDomain 的變量。反過來,GetOwner 將用戶名稱和擁有進程的用戶所在的域賦值給這兩個變量。 
此時我們所要做的就是回顯返回信息: 
Wscript.Echo "This script is running under the account belonging to " _  
    & strUserDomain & "/" & strNameOfUser & "." 
那么,我們為何不能在 Windows 2000 上運行此腳本呢?實際上,有充分的理由來對此進行解釋:只有 Windows XP 和 Windows Server 2003 上才有 CommandLine 屬性。在其他版本的 Windows 上,我們無法標識各個腳本;最好的方法就是為恰好正在運行的 Cscript.exe 和 Wscript.exe 的所有實例返回所有者信息。如果只有一個腳本在運行,也同樣沒有問題:CScript.exe 或 Wscript.exe 的單個實例必須為該單個腳本。換句話說,這就意味著腳本宿主進程的所有者也是腳本進程的所有者。如果運行了多個腳本,則是另外一回事了。如果確實為此種情況,您最好是說:“嗯,Ken Myer 擁有其中的一個腳本,盡管我們不知道具體是哪一個。他未擁有的某個腳本恰好為 Pilar Ackerman 所擁有。 
不,沒有那么好。不過事實就是這樣。(是的,這是一個托辭。盡管有點漏洞百出,但它仍是一個托辭。) 
下面是 Windows 2000 解決方案(也可以說是:部分解決方案): 
復制代碼代碼如下:

strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where " & _  
    "Name = 'cscript.exe' or Name = 'wscript.exe'")  
For Each objProcess in colProcessList  
    objProcess.GetOwner strNameOfUser,strUserDomain  
    Wscript.Echo "A script is running under the account belonging to " _   
        & strUserDomain & "/" & strNameOfUser & "."  
Next 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图综合久久| 精品国产鲁一鲁一区二区张丽| 久久久人成影片一区二区三区观看| 欧美一区二区三区精品电影| 日韩美女在线播放| 91高潮在线观看| xx视频.9999.com| 欧美高清视频在线观看| 国产91色在线免费| 久久久视频在线| 亚洲第一精品自拍| 中文.日本.精品| 国产女同一区二区| 国产亚洲欧洲高清| 亚洲国产精品成人精品| 在线亚洲男人天堂| 欧美国产极速在线| 久久久久久久久久久成人| 中文字幕亚洲欧美日韩在线不卡| 久久久久久久久久久91| 欧美老肥婆性猛交视频| 91在线观看免费| 在线电影欧美日韩一区二区私密| 亚洲精品自在久久| 欧美特黄级在线| 欧美视频在线观看免费| 91香蕉嫩草神马影院在线观看| 精品国产鲁一鲁一区二区张丽| 日韩免费高清在线观看| 国产91久久婷婷一区二区| 国产国语刺激对白av不卡| 超在线视频97| 久久亚洲精品国产亚洲老地址| 亚洲大尺度美女在线| 久久久人成影片一区二区三区观看| 青草青草久热精品视频在线网站| 欧美猛少妇色xxxxx| 国产在线拍揄自揄视频不卡99| 亚洲美女av电影| 91av免费观看91av精品在线| 国产精品狼人色视频一区| 久久久精品电影| 精品无人国产偷自产在线| 日韩av在线天堂网| 性色av一区二区三区免费| 国产精品久久久久免费a∨大胸| 国产午夜精品视频| www.欧美三级电影.com| 亚洲偷熟乱区亚洲香蕉av| 在线电影av不卡网址| 国产精品久久久久久久久久久不卡| 日韩亚洲精品电影| 亚洲乱码av中文一区二区| 欧美激情一区二区三区高清视频| 久久艳片www.17c.com| 欧美日韩爱爱视频| 91中文字幕在线| xxxx欧美18另类的高清| 成人一区二区电影| 上原亚衣av一区二区三区| 亚洲人成网7777777国产| 富二代精品短视频| 欧美日本黄视频| 亚洲国产99精品国自产| 国产精品视频男人的天堂| 国产91精品网站| 精品国产拍在线观看| 国产噜噜噜噜噜久久久久久久久| 国产午夜精品美女视频明星a级| 亚洲第一福利网| 91成人性视频| 中文字幕av日韩| 欧美精品免费在线| 亚洲国产精品嫩草影院久久| 国模极品一区二区三区| 亚洲精品黄网在线观看| 国产99久久久欧美黑人| 亚洲区在线播放| 亚洲高清不卡av| 亚洲精品中文字幕女同| 在线日韩第一页| 久国内精品在线| 亚洲视频一区二区| 尤物精品国产第一福利三区| 日韩一区二区在线视频| 国产精品久久在线观看| 欧美成人亚洲成人| 久久精品人人爽| 国产精品999999| 日本一区二区在线播放| 成人午夜两性视频| 久久久久久久亚洲精品| 亚洲日本欧美中文幕| 欧美刺激性大交免费视频| 久久综合免费视频影院| 丁香五六月婷婷久久激情| 亚洲精品一区二区网址| 日韩在线观看电影| 亚洲成年人影院在线| 日本一区二区三区在线播放| 最近2019年好看中文字幕视频| 久久在线免费视频| 欧美丝袜第一区| 日本精品久久久久影院| 日韩有码在线观看| 成人亚洲综合色就1024| 岛国视频午夜一区免费在线观看| 欧美午夜宅男影院在线观看| 国产精品成人一区二区三区吃奶| 国产精品久久久久久久久久新婚| 久久高清视频免费| 亚洲性xxxx| 一本大道亚洲视频| 久久天堂av综合合色| 日韩中文字幕在线视频播放| 国内久久久精品| 韩剧1988免费观看全集| 亚洲一区二区福利| 日韩在线国产精品| 自拍偷拍亚洲精品| 欧美成aaa人片免费看| 久久国产加勒比精品无码| 国产大片精品免费永久看nba| 91视频-88av| 欧美日本精品在线| 国产成人精品999| 日本高清视频精品| 91久久精品国产91性色| 日韩精品在线观看网站| 日本久久久久亚洲中字幕| 国产精品美女www爽爽爽视频| 亚洲伊人第一页| 精品在线欧美视频| 亚洲色图第三页| 成人精品一区二区三区电影黑人| 国产欧美日韩专区发布| 91精品视频大全| 日韩有码在线播放| 国产亚洲欧洲在线| 色综合男人天堂| 亚洲视频网站在线观看| 国产精品高潮粉嫩av| 久久免费成人精品视频| 亚洲91精品在线观看| 亚洲黄色免费三级| 91精品久久久久| 亚洲免费精彩视频| 高清视频欧美一级| 国产精品揄拍500视频| 欧美在线视频一区| 中文字幕精品一区久久久久| 欧美色videos| 久久精品视频在线观看| 亚洲综合色激情五月| 亚洲国产成人久久综合一区| 欧美性猛交丰臀xxxxx网站| 欧美精品情趣视频| 亚洲四色影视在线观看| 久久久免费高清电视剧观看| 欧美日韩成人网| 久久精品国产欧美激情| 久久久久国产精品免费网站| 欧美亚洲另类视频| 国产亚洲一区精品|