VBScript: разное поведение под Win2000 и WinXP
Добавлено: 18 апр 2006, 10:17
Всем привет!
Есть следующий фрагмент сценария:
Do While strUserDisplayName = "No User Logged In"
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_LogonSession")
For Each objLogonSession In colUsers
If objLogonSession.LogonType = 2 Then
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_ComputerSystem")
Под WinXP исполняется нормально, под Win2000 выдаёт ошибку пустого множества в строке определения цикла. Модифицируем:
Do While strUserDisplayName = "No User Logged In"
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_LogonSession")
If colUsers.Count > 0 Then
For Each objLogonSession In colUsers
If objLogonSession.LogonType = 2 Then
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_ComputerSystem")
Под WinXP исполняется нормально, под Win2000 выдаёт неопределённую ошибку 80004005 в строке проверки условия.
Есть идеи, как исключить ошибку? Использование On Error Resume Next просьба не предлагать.
С уважением,
Student
P.S. Ошибка проявляется только при исполнении сценария от учётной записи системы в тот момент, когда ни один пользователь не вошёл в систему интерактивно.
Есть следующий фрагмент сценария:
Do While strUserDisplayName = "No User Logged In"
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_LogonSession")
For Each objLogonSession In colUsers
If objLogonSession.LogonType = 2 Then
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_ComputerSystem")
Под WinXP исполняется нормально, под Win2000 выдаёт ошибку пустого множества в строке определения цикла. Модифицируем:
Do While strUserDisplayName = "No User Logged In"
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_LogonSession")
If colUsers.Count > 0 Then
For Each objLogonSession In colUsers
If objLogonSession.LogonType = 2 Then
Set colUsers = objWMIService.ExecQuery("SELECT * FROM _ Win32_ComputerSystem")
Под WinXP исполняется нормально, под Win2000 выдаёт неопределённую ошибку 80004005 в строке проверки условия.
Есть идеи, как исключить ошибку? Использование On Error Resume Next просьба не предлагать.
С уважением,
Student
P.S. Ошибка проявляется только при исполнении сценария от учётной записи системы в тот момент, когда ни один пользователь не вошёл в систему интерактивно.