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

首頁 > 編程 > VBScript > 正文

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

2020-07-26 12:02:48
字體:
來源:轉載
供稿:網友
問:
您好,腳本專家!如何確定腳本正在哪一個帳戶下運行?
-- 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 腳本針對遠程計算機的運行效果都與它們在本地計算機上的運行效果一樣好。我們確實時常在談論一些實質內容?。?nbsp;
接下來我們遇到了下面這行代碼:
復制代碼 代碼如下:

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
国产亚洲精品一区二区| 成人免费看片视频| 亚洲的天堂在线中文字幕| 国模精品视频一区二区| 欧美福利视频在线观看| 成人欧美一区二区三区在线| 色黄久久久久久| 97久久精品视频| 欧美亚洲视频一区二区| 亚洲国产精品网站| 亚洲精品有码在线| 日韩av免费网站| 亚洲第一区中文99精品| 日韩在线中文字| 欧美乱大交xxxxx另类电影| 亚洲美女av在线播放| 九九久久综合网站| 性欧美激情精品| 中文日韩在线视频| 国产精品一区二区三区毛片淫片| 亚洲高清免费观看高清完整版| 亚洲色图在线观看| 亚洲一区二区三区777| 亚洲va欧美va在线观看| 国产精品海角社区在线观看| 亚洲日本欧美中文幕| 亚洲欧美中文字幕| 亚洲天堂影视av| 日韩精品免费在线观看| 国产999精品久久久影片官网| 国产精品私拍pans大尺度在线| 国内精品久久久久| 在线激情影院一区| 国产欧美在线观看| 在线看片第一页欧美| 欧美激情在线有限公司| 欧美亚洲第一区| 午夜精品一区二区三区在线| 亚洲欧美国产精品| 国产精品露脸av在线| 国产精品香蕉av| 久久视频免费在线播放| 亚洲国产精彩中文乱码av| 18久久久久久| 中文字幕av一区二区| 亚洲国产精品嫩草影院久久| 久久久久久久一区二区| 日本国产欧美一区二区三区| 国产精品亚洲美女av网站| 欧美极度另类性三渗透| 国产精品一区二区三区久久| 久久国产加勒比精品无码| 日日狠狠久久偷偷四色综合免费| 日韩精品视频中文在线观看| 欧美性猛交xxxx免费看久久久| 亚州av一区二区| 国产在线视频欧美| 91久久精品日日躁夜夜躁国产| 日韩电影在线观看免费| 91麻豆桃色免费看| 国产精品69久久| 91国产高清在线| 狠狠躁夜夜躁人人爽天天天天97| 欧美性猛交xxxxx水多| 亚洲国模精品一区| 日韩中文第一页| 久久精彩免费视频| 欧美限制级电影在线观看| 影音先锋欧美在线资源| 国产精品综合久久久| 久久视频在线直播| 欧美成人午夜剧场免费观看| 高清日韩电视剧大全免费播放在线观看| 免费成人高清视频| 日韩免费在线播放| 久久国产精品久久精品| 亚洲精品久久久久久下一站| 精品久久久一区| 亚洲国产精品悠悠久久琪琪| 日韩中文娱乐网| 欧美香蕉大胸在线视频观看| 日韩av在线看| 激情懂色av一区av二区av| 亚洲直播在线一区| 午夜精品久久久久久久久久久久| 911国产网站尤物在线观看| 久久午夜a级毛片| 中文字幕久久精品| 亚洲第一天堂无码专区| 日韩av在线一区二区| 尤物yw午夜国产精品视频| 国产精品久久久久久久av电影| 亚洲美女精品成人在线视频| 欧美另类在线播放| 国产精品香蕉国产| 国产精品黄色影片导航在线观看| 国产成人精品999| 久久艹在线视频| 亚洲九九九在线观看| 亚洲色图17p| 国产一区二区三区丝袜| 成人精品在线观看| 国产精品久久久久久久av电影| 欧美一性一乱一交一视频| 91日本视频在线| 欧美大片在线影院| 97精品视频在线播放| 国产精品1区2区在线观看| 成人福利在线观看| 国产精品视频免费观看www| 亚洲国产精品中文| 久久久国产影院| 欧美中文在线观看| 亚洲free性xxxx护士hd| 久久视频国产精品免费视频在线| 欧美日韩一区二区精品| 久久99亚洲热视| 欧美刺激性大交免费视频| 日韩美女主播视频| 亚洲www永久成人夜色| 国产免费观看久久黄| 中文在线资源观看视频网站免费不卡| 亚洲精品第一国产综合精品| 久久人人爽亚洲精品天堂| 精品视频在线播放免| 国产精品久久久91| 亚洲欧美日韩精品久久亚洲区| 久久免费视频这里只有精品| 欧美日韩加勒比精品一区| 亚洲第一中文字幕在线观看| 91精品国产综合久久久久久久久| 欧美激情视频在线观看| 欧美福利视频在线观看| 国产99久久精品一区二区| 欧美黑人巨大xxx极品| 欧美亚洲国产视频| 中文字幕亚洲图片| 美日韩精品免费观看视频| 亚洲综合在线小说| 国产精品极品美女粉嫩高清在线| 日韩av在线资源| 国产精品视频99| 欧美成在线观看| 久久精品男人天堂| 亚洲高清免费观看高清完整版| 日韩视频在线观看免费| 亚洲无亚洲人成网站77777| 久久不射电影网| 欧美性视频精品| 亚洲综合小说区| 成人妇女免费播放久久久| 欧美激情国内偷拍| 欧美日韩免费观看中文| 久久久久亚洲精品国产| 亚洲天堂一区二区三区| 亚洲一级片在线看| 中文字幕在线成人| 欧美日韩国产一区二区三区| 日韩精品免费一线在线观看| 国产欧美一区二区白浆黑人| 日韩在线不卡视频| 欧美视频免费在线| 亚洲精品美女视频| 国产精品电影一区|