如何檢查計算機是否使用VBscript鎖定?我想在計算機被鎖定時停止運行應用程序,並在解鎖時再次運行它。檢查計算機是否使用VBscript鎖定
1
A
回答
0
您可以嘗試檢查logonui.exe
進程是否存在。如果你找到它,計算機被鎖定或沒有登錄。
Function IsLocked(strComputer)
With GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
IsLocked = .ExecQuery("select * from Win32_Process where Name='logonui.exe'").Count > 0
End With
End Function
要測試本地計算機,通過PC的名稱或一段時間。例如:
If IsLocked(".") Then MsgBox "Local computer is locked."
0
爲多個用戶登錄的工作解決方案!
不工作的遠程用戶...溶液WIP
dim islocked
do
call checklock
loop while islocked = 0
'=================================
'Functions
'=================================
function checklock
Dim computer : computer = "."
If WScript.Arguments.Count = 1 Then
computer = WScript.Arguments(0)
End If
If locked(computer) Then
msgbox "debugging: locked"
Else
msgbox "debugging: not locked"
wscript.sleep 3000 'for debugging - allow time to enter lock screen
End If
end function
Function locked(computer)
Dim wmi : Set wmi = GetObject("winmgmts://" & computer & "/root/cimv2")
Dim lockapp_count : lockapp_count = wmi.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = 'lockapp.exe'").Count
Dim explorer_count : explorer_count = wmi.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = 'explorer.exe'").Count
locked = (lockapp_count >= explorer_count)
End Function
其他細節問題的背景:
解ISSUE(機瓦特/多個用戶) 直到我加入另一用戶到我使用這一段時間機器。現在,當OTHER用戶鎖定了他們的屏幕時,即使我的屏幕處於活動狀態,但未鎖定,VBS表示它已被鎖定,B/logonUI.exe
正在運行 - 因此會引發誤報。這也是棘手的B/C過程是由系統而不是由用戶運行,所以你不能做一個交叉檢查。但我確實想知道,如果您可以統計lockapp.exe
進程的數量並與logonui.exe
進程的數量進行比較。但是 - 我不知道他們是否一對一。
WIP解決方案 - 這被發現工作 - 耶 - 解決方案和代碼移動到我的評論的頂部。 計算活動用戶數並將計數與logonui.exe
進程數進行比較。爲此,我試圖計算找到了多少次explorer.exe
,然後比較logonui.exe
實例的數量。
失敗的解決方案1:
比較logonui.exe
到lockapp.exe
計數 理性的數 - 這些都要一起去,我是假設你永遠只能得到1個logonui過程,但多lockapp過程;錯誤的假設。
相關問題
- 1. 用於檢查計算機是否存在於Active Driectory中的VBScript
- 2. 如何使用VBA鎖定計算機
- 3. 檢查計劃任務是否使用vbscript運行
- 4. vbscript,檢查網絡上的計算機上的特定應用程序
- 5. VBscript檢查在多臺計算機上運行的進程
- 6. VBScript - 檢查是否啓用防火牆
- 7. OSX:檢查屏幕是否鎖定
- 8. 如何檢查pthread_mutex_t是否被鎖定
- 9. 檢查設備是否被鎖定?
- 10. 解鎖本地計算機使用.net
- 11. 是否可以檢查用戶是否被鎖定?
- 12. LDAP檢查用戶帳戶是否被ppolicy鎖定/解鎖
- 13. 檢查計算機上
- 14. 使用Java來檢測設備是否插入到計算機
- 15. 檢查計算是否超過MaxValue
- 16. 如何檢查是否沒有在計算機[]
- 17. 檢查計算機是否支持PSE彙編器
- 18. 檢查SQL Server實例是否在本地計算機上?
- 19. 如何檢查計算機名是否爲INT
- 20. 檢查以太網上的Windows計算機是否通過C++
- 21. 檢查計算機上是否安裝了Microsoft Security Essentials
- 22. 如何檢查計算機是否正在響應C#
- 23. Applescript:檢查計算機是否在播放任何聲音
- 24. ansible - 檢查本地計算機上是否存在文件
- 25. 檢查計算機上是否安裝了磁帶庫
- 26. 檢查是否有人正在使用遠程桌面連接到計算機
- 27. 使用Microsoft.Sdc.Tasks.ServiceProcess.ControlService如何檢查遠程計算機上是否存在服務?
- 28. 如何檢查是否有人正在積極使用他們的計算機?
- 29. 檢查是否正在使用Seam對話,但沒有鎖定
- 30. WebClient.DownloadFile在計算機鎖定時掛起
謝謝。我試過運行它,但即使計算機被鎖定,IsLocked也是錯誤的。我使用Windows 7 64位。 – 2014-09-01 05:18:41
嗯。我也在Win7-64上,這對我來說工作得很好。我剛剛創建了一個腳本,每秒調用一次該函數10秒,並將返回值寫入文本文件。然後我運行腳本,幾秒鐘後鎖定計算機,然後輸入密碼解鎖計算機。在鎖定計算機的時間內,IsLocked()返回「True」,否則返回False。 – Bond 2014-09-01 13:43:57
對不起,再次檢查,它的工作 – 2014-09-02 15:16:19