|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Чтение свойств объекта с динамическим именем |
|
VBS/WSH/JS - [решено] Чтение свойств объекта с динамическим именем
|
Пользователь Сообщения: 96 |
Профиль | Отправить PM | Цитировать Есть скрипт:
Parameter0 = WScript.Arguments.Item(0) Set strADsPath = GetObject("SOME LDAP QUERY") for each strADsPathObject in strADsPath WScript.Echo strADsPathObject.[Parameter0] next cscript /nologo parameter.vbs PropertyName Выдаёт ошибку: Microsoft VBScript runtime error: Object doesn't support this property or method: 'strADsPathObject.Parameter0' То есть, как-бы так сказать, Parameter0 не преобразуется в собственное значение. Как можно обратиться к свойству объекта посредством переменной, указанной в качестве свойства объекта? |
|
Отправлено: 10:48, 26-03-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Spooner:
|
|
Отправлено: 10:58, 26-03-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать LDAP://127.0.0.1:389/OU=Servers,DC=vdi,DC=vmware,DC=int
В запросе проблемы нет, с возвращением объектов - тоже. Проблема в том, каким образом обратиться к свойству через переменную. Parameter0 в скрипте возвращает "pae-vm". Но интерпретатор воспринимает его как strADsPathObject.Parameter0, а не strADsPathObject.pae-vm |
Последний раз редактировалось Spooner, 26-03-2015 в 11:36. Отправлено: 11:06, 26-03-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Spooner, например, так (корректность/существование атрибутов, заданных аргументами скрипта, в свойствах объектов каталога не проверяется; пример для простых типов данных атрибутов):
Option Explicit
Dim objIADsContainer
Dim objIADs
Dim strArgument
If WScript.Arguments.Count > 0 Then
Set objIADsContainer = GetObject("LDAP://127.0.0.1:389/OU=Servers,DC=vdi,DC=vmware,DC=int")
For Each objIADs In objIADsContainer
For Each strArgument In WScript.Arguments
WScript.Echo strArgument, vbTab, objIADs.Get(strArgument)
Next
Next
Set objIADsContainer = Nothing
Else
' Nothing to do
End If
WScript.Quit 0
|
Отправлено: 15:05, 26-03-2015 | #4 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Вкратце, вместо strADsPathObject.[Parameter0] - использовать метод strADsPathObject.Get(Parameter0). Спасибо! То, что нужно!
|
|
Отправлено: 11:42, 27-03-2015 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Не запускаются файлы с именем setup.exe (именно с именем) | Temix | Microsoft Windows 8 и 8.1 | 13 | 12-12-2014 22:05 | |
Мультимедиа - Нужен проигрыватель с динамическим плейлистом | morebeauty | Программное обеспечение Windows | 14 | 10-01-2014 09:57 | |
C/C++ - Вопрос по динамическим массивам | nikit-xxx | Программирование и базы данных | 5 | 13-05-2011 03:46 | |
[решено] Чтение текстового файла с неизвестным именем | ZeroCrash | AutoIt | 4 | 01-07-2009 19:03 | |
Проблема с динамическим диском | MoRoman | Microsoft Windows NT/2000/2003 | 8 | 05-06-2006 16:03 |
|