Нужна помощь с VBS Classes - PullRequest
       0

Нужна помощь с VBS Classes

1 голос
/ 11 августа 2011
Class GetUserName
Private internal_Username
Private internal_strComputer
Private internal_objWMIService
Private internal_colComputer
Private internal_objComputer

Public Property Get EmployeeName
    strComputer = "."
    Set internal_objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set internal_colComputer = internal_objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    For Each objComputer In internal_colComputer
        internal_Username = LCase(Right(internal_colComputer.UserName, Len(internal_colComputer.UserName) - Len(Left(internal_colComputer.UserName, 7))))
    Next
    EmployeeName = internal_Username
End Property
End Class
Dim objEmployee
Set objEmployee = New GetUserName

WScript.Echo objEmployee.EmployeeName

Я получаю сообщение об ошибке

Microsoft VBScript runtime error (13, 4) : Object doesn't support this property or method: 'internal_colComputer.UserName'

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Попробуйте изменить строку

internal_Username = LCase(Right(internal_colComputer.UserName, Len(internal_colComputer.UserName) - Len(Left(internal_colComputer.UserName, 7))))

до

internal_Username = LCase(Right(objComputer.UserName, Len(objComputer.UserName) - Len(Left(objComputer.UserName, 7))))

Я бы заподозрил (хотя я не уверен), что UserName является свойством objComputer, а не коллекцией, через которую вы проходите.

0 голосов
/ 11 августа 2011
>> cnHeadLen = 8
>> s = "CONTOS\firstname.lastname"
>> WScript.Echo Mid( s, cnHeadLen )
>>
firstname.lastname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...