Приветствую!
Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить
Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса
при операции программирования объектов: 'GetObject'
Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
Здравствуйте Vacheslav, Вы писали:
V>Приветствую! V>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>при операции программирования объектов: 'GetObject'
V>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
Вроде это в WMI есть. Насколко я помню доступно для скачивания с сайта MS, но вот как на счет 98-ых?...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Vacheslav, Вы писали:
V>>Приветствую! V>>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>>при операции программирования объектов: 'GetObject'
V>>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
VD>Вроде это в WMI есть. Насколко я помню доступно для скачивания с сайта MS, но вот как на счет 98-ых?...
Есть это в WMI. Но работает только в NT. Скачал и поставил на WMI9x.EXE — тот же результат (в смысле сообщение о ошибке). Как бы это побороть, то есть, что бы брался объект WinNT://DOMAIN/USER.... Может есть другой, унифицированный путь?
Здравствуйте Vacheslav, Вы писали:
V>Есть это в WMI. Но работает только в NT. Скачал и поставил на WMI9x.EXE — тот же результат (в смысле сообщение о ошибке). Как бы это побороть, то есть, что бы брался объект WinNT://DOMAIN/USER.... Может есть другой, унифицированный путь?
А DCOM 9x 1.3 (или более свежий) у тебя на машине стоит?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Vacheslav, Вы писали:
V>>Есть это в WMI. Но работает только в NT. Скачал и поставил на WMI9x.EXE — тот же результат (в смысле сообщение о ошибке). Как бы это побороть, то есть, что бы брался объект WinNT://DOMAIN/USER.... Может есть другой, унифицированный путь?
VD>А DCOM 9x 1.3 (или более свежий) у тебя на машине стоит?
Скачал с сайта микрософт и поставил DCOM 98. Сообщение об ошибке такое же. В чем еще может быть проблема? Где копать? На клиенте осуществляется вход в сеть майкрософт (в домен). Раньше стоял обычный вход, думал из-за этого проблема. Поменял — все то же самое. Судя по сообщению, не может подключиться объект (то есть класс — возможно нет какой-то длл). Может еще что-то требуется установить?
Здравствуйте Vacheslav, Вы писали:
V>Приветствую! V>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>при операции программирования объектов: 'GetObject'
V>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
V>Хелп, однако...
это ADSI, на Win9X его нет, скачай провайдер с microsoft.com/adsi/ и поставить на каждую машину, где будет запускаться этот код
Здравствуйте Vacheslav, Вы писали:
V>Скачал с сайта микрософт и поставил DCOM 98. Сообщение об ошибке такое же. В чем еще может быть проблема? Где копать? На клиенте осуществляется вход в сеть майкрософт (в домен). Раньше стоял обычный вход, думал из-за этого проблема. Поменял — все то же самое. Судя по сообщению, не может подключиться объект (то есть класс — возможно нет какой-то длл). Может еще что-то требуется установить?
Черт его знает. Моежт тогда он вообще с 9x не фурычит. Это тебе нужно в конфы где администрированием занимаются. Вы лично живем на обычных батах. Как-то хотели vbs попробывать, но подумали, что лишня головная боль нам не нужна.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте magcyril, Вы писали:
M>Здравствуйте Vacheslav, Вы писали:
V>>Приветствую! V>>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>>при операции программирования объектов: 'GetObject'
V>>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
V>>Хелп, однако...
M>это ADSI, на Win9X его нет, скачай провайдер с microsoft.com/adsi/ и поставить на каждую машину, где будет запускаться этот код
M>Кирилл
Поставил ADS98 — те же грабли... Может ADS9x только для Active Directory? У меня AD нету — домен на NT4... Запарился с этой ерундой. Если никаких идей больше нету — брошу это нафиг, оставлю батники. А хотелось все цивильно сделать ((
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Vacheslav, Вы писали:
V>>Скачал с сайта микрософт и поставил DCOM 98. Сообщение об ошибке такое же. В чем еще может быть проблема? Где копать? На клиенте осуществляется вход в сеть майкрософт (в домен). Раньше стоял обычный вход, думал из-за этого проблема. Поменял — все то же самое. Судя по сообщению, не может подключиться объект (то есть класс — возможно нет какой-то длл). Может еще что-то требуется установить?
VD>Черт его знает. Моежт тогда он вообще с 9x не фурычит. Это тебе нужно в конфы где администрированием занимаются. Вы лично живем на обычных батах. Как-то хотели vbs попробывать, но подумали, что лишня головная боль нам не нужна.
Спасибо за сочуствие и помощь. Я-то как раз хотел отойти от батников, так как VBS — это все-таки язык высокого уовня: вроде проще писать, понятнее, да и возможностей побольше, чем у CMD. Я так думаю, что под 9х эта фишка все-таки должна работать, так как 9х — полноправный (почти) клиент Microsoft Network. Остается умыться, выпить кофе, выкурить сигару и признать, что мой разум недостаточно развит для понимания технологий MS в области скриптования на VBS... Sad but true.
А в админские форумы я такой вопрос кидал, все факи перерыл — складывается ощущение, что либо люди сразу прыгают на ActiveDirectory с полным переводом клиентских станций под W2K, либо решают такую проблему самостоятельно и молча, либо вообще не знают про возможность скриптования логона на VBS...
Может кто знает как из батника узнать в какой группе NT находится пользователь? KIX32 не предлагать... Хотя — это точно оффтопик... Сорри.
2Модератор: сорри за оффтопик и флейм — замучился драться с ветряными мельницами...
Здравствуйте Vacheslav, Вы писали:
V>Здравствуйте magcyril, Вы писали:
M>>Здравствуйте Vacheslav, Вы писали:
V>>>Приветствую! V>>>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>>>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>>>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>>>при операции программирования объектов: 'GetObject'
V>>>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
V>>>Хелп, однако...
M>>это ADSI, на Win9X его нет, скачай провайдер с microsoft.com/adsi/ и поставить на каждую машину, где будет запускаться этот код
M>>Кирилл
V>Поставил ADS98 — те же грабли... Может ADS9x только для Active Directory? У меня AD нету — домен на NT4... Запарился с этой ерундой. Если никаких идей больше нету — брошу это нафиг, оставлю батники. А хотелось все цивильно сделать ((
а ошибка та же, не найдено имя файла или класса?
если она, то, может, ты что то не то поставил?
чтобы точно убедиться, сделай простой проект на VisualBasic, в references проекта укажи ADSI
запусти прогу на клиенте. дело в том, что были у меня как то проблемы, когда под VB
GetObject работал, а под VBS почему то упорно не видел нужный компонент, но это касалось только дополнительный компонентов ADSI
работает только с локальной базой пользователей NT/Win2K, с Win9x он таким образом на контролер домена в принципе не попадет, для этого есть другой формат обращения к доменному аккаунту и работать он будет только с Active Directory
это все воспоминания-предположения, тебе надо документацию по ADSI внимательно прочесть, скачать и посмотреть ADSI SDK
Здравствуйте magcyril, Вы писали:
M>Здравствуйте Vacheslav, Вы писали:
V>>Здравствуйте magcyril, Вы писали:
M>>>Здравствуйте Vacheslav, Вы писали:
V>>>>Приветствую! V>>>>Мучаю логон-скрипт на VBS. Возник вопрос: как можно под Win98 выполнить V>>>>Set oTempUser = GetObject("WinNT://" + strDOMAIN + "/" + strUserName)
V>>>>Говорит, что: Ошибка выполнения Microsoft VBScript: Не найдено имя файла или класса V>>>>при операции программирования объектов: 'GetObject'
V>>>>Под WinNT работает нормально. Я так понял, что какой-то класс (длл) не загружена. Пытался найти FileMon какие в этот момент dll вызываются под WinNT, но все равно не заводится...
V>>>>Хелп, однако...
M>>>это ADSI, на Win9X его нет, скачай провайдер с microsoft.com/adsi/ и поставить на каждую машину, где будет запускаться этот код
M>>>Кирилл
V>>Поставил ADS98 — те же грабли... Может ADS9x только для Active Directory? У меня AD нету — домен на NT4... Запарился с этой ерундой. Если никаких идей больше нету — брошу это нафиг, оставлю батники. А хотелось все цивильно сделать ((
M>а ошибка та же, не найдено имя файла или класса? M>если она, то, может, ты что то не то поставил?
M>чтобы точно убедиться, сделай простой проект на VisualBasic, в references проекта укажи ADSI M>запусти прогу на клиенте. дело в том, что были у меня как то проблемы, когда под VB M>GetObject работал, а под VBS почему то упорно не видел нужный компонент, но это касалось только дополнительный компонентов ADSI
M>возможно, что формат
M>"WinNT://" + strDOMAIN + "/" + strUserName
M>работает только с локальной базой пользователей NT/Win2K, с Win9x он таким образом на контролер домена в принципе не попадет, для этого есть другой формат обращения к доменному аккаунту и работать он будет только с Active Directory
M>это все воспоминания-предположения, тебе надо документацию по ADSI внимательно прочесть, скачать и посмотреть ADSI SDK
M>успехов,
M>Кирилл
Да, ошибка таже.
Я то же думаю, что под Win98 нет прямого доступа к базе домена — это же не WinNT. Но, с другой стороны, Win98 — клиент MSNetwork, значит должен быть какой-то путь получить доступ к этой базе. Буду работать в двух направлениях — искать сторонние утилитки для эмуляции функций VBS в обычном батнике и буду мучить ADSI SDK.
Если что-нибудь найду — отпишу.
Спасибо за поддержку.
Успехов!
M>>"WinNT://" + strDOMAIN + "/" + strUserName
V>Да, ошибка таже. V>Я то же думаю, что под Win98 нет прямого доступа к базе домена — это же не WinNT. Но, с другой стороны, Win98 — клиент MSNetwork, значит должен быть какой-то путь получить доступ к этой базе. Буду работать в двух направлениях — искать сторонние утилитки для эмуляции функций VBS в обычном батнике и буду мучить ADSI SDK. V>Если что-нибудь найду — отпишу.
А посмотри в Реестре Win98, наличествует ли такая запись HKEY_CLASSES_ROOT\WinNT?
Насколько я понимаю, это же моникер "WinNT:****". Если нет WinNT класса, то нет и моникера. Так что неуспех объясним.
Здравствуйте Vi2, Вы писали:
Vi2>Здравствуйте Vacheslav, Вы писали:
M>>>"WinNT://" + strDOMAIN + "/" + strUserName
V>>Да, ошибка таже. V>>Я то же думаю, что под Win98 нет прямого доступа к базе домена — это же не WinNT. Но, с другой стороны, Win98 — клиент MSNetwork, значит должен быть какой-то путь получить доступ к этой базе. Буду работать в двух направлениях — искать сторонние утилитки для эмуляции функций VBS в обычном батнике и буду мучить ADSI SDK. V>>Если что-нибудь найду — отпишу.
Vi2>А посмотри в Реестре Win98, наличествует ли такая запись HKEY_CLASSES_ROOT\WinNT? Vi2>Насколько я понимаю, это же моникер "WinNT:****". Если нет WinNT класса, то нет и моникера. Так что неуспех объясним.
Нету... Я так понимаю, что заводить пустую ветку HKEY_CLASSES_ROOT\WinNT или своровать эту ветку со станции под WinNT не прокатит?
Здравствуйте Vacheslav, Вы писали:
V>Нету... Я так понимаю, что заводить пустую ветку HKEY_CLASSES_ROOT\WinNT или своровать эту ветку со станции под WinNT не прокатит?
Скорее всего нет. Там используется adsnt.dll. Есть ли такая в Win98, не знаю. Хотел дома посмотреть (там 98), но я не в курсе самой проблемы, так как не пользовался этим сервисом, и не знаю точно что искать.
Но может там что-то подобное есть — Win98 или т.п.
Здравствуйте Vacheslav, Вы писали:
V> А в админские форумы я такой вопрос кидал, все факи перерыл — складывается ощущение, что либо люди сразу прыгают на ActiveDirectory с полным переводом клиентских станций под W2K, либо решают такую проблему самостоятельно и молча, либо вообще не знают про возможность скриптования логона на VBS...
Ну, я бы такое рещение только приветствовал.
Мы уже 5 лет сидим на NT и ее разновидности и еще никто не жаловался.
Но, можно обратиться на формумы MS. Там переодически обитают сами разрабатчики. Так что может и скажут, чё умное.
V> Может кто знает как из батника узнать в какой группе NT находится пользователь? KIX32 не предлагать... Хотя — это точно оффтопик... Сорри.
А не проще ли усерам просто разные скрпты назначать?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте Vacheslav, Вы писали:
V>>>Да, ошибка таже. V>>>Я то же думаю, что под Win98 нет прямого доступа к базе домена — это же не WinNT. Но, с другой стороны, Win98 — клиент MSNetwork, значит должен быть какой-то путь получить доступ к этой базе. Буду работать в двух направлениях — искать сторонние утилитки для эмуляции функций VBS в обычном батнике и буду мучить ADSI SDK. V>>>Если что-нибудь найду — отпишу.
Vi2>>А посмотри в Реестре Win98, наличествует ли такая запись HKEY_CLASSES_ROOT\WinNT? Vi2>>Насколько я понимаю, это же моникер "WinNT:****". Если нет WinNT класса, то нет и моникера. Так что неуспех объясним.
V>Нету... Я так понимаю, что заводить пустую ветку HKEY_CLASSES_ROOT\WinNT или своровать эту ветку со станции под WinNT не прокатит?
А у меня дома в Win98 есть такая учётная запись. Тик-тик как в NT4.0. Как появилась, я не знаю. Ничего вроде не устанавливал такого крутого. Только Win и MS DevStudio, правда, почти полностью.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Vacheslav, Вы писали:
V>> А в админские форумы я такой вопрос кидал, все факи перерыл — складывается ощущение, что либо люди сразу прыгают на ActiveDirectory с полным переводом клиентских станций под W2K, либо решают такую проблему самостоятельно и молча, либо вообще не знают про возможность скриптования логона на VBS...
VD>Ну, я бы такое рещение только приветствовал.
VD>Мы уже 5 лет сидим на NT и ее разновидности и еще никто не жаловался.
VD>Но, можно обратиться на формумы MS. Там переодически обитают сами разрабатчики. Так что может и скажут, чё умное.
V>> Может кто знает как из батника узнать в какой группе NT находится пользователь? KIX32 не предлагать... Хотя — это точно оффтопик... Сорри.
VD>А не проще ли усерам просто разные скрпты назначать?
Спасибо за идею. Попробую. А на счет разных скриптов — не пройдет — разных пользователей много.
Здравствуйте Vi2, Вы писали:
Vi2>Здравствуйте Vacheslav, Вы писали:
V>>>>Да, ошибка таже. V>>>>Я то же думаю, что под Win98 нет прямого доступа к базе домена — это же не WinNT. Но, с другой стороны, Win98 — клиент MSNetwork, значит должен быть какой-то путь получить доступ к этой базе. Буду работать в двух направлениях — искать сторонние утилитки для эмуляции функций VBS в обычном батнике и буду мучить ADSI SDK. V>>>>Если что-нибудь найду — отпишу.
Vi2>>>А посмотри в Реестре Win98, наличествует ли такая запись HKEY_CLASSES_ROOT\WinNT? Vi2>>>Насколько я понимаю, это же моникер "WinNT:****". Если нет WinNT класса, то нет и моникера. Так что неуспех объясним.
V>>Нету... Я так понимаю, что заводить пустую ветку HKEY_CLASSES_ROOT\WinNT или своровать эту ветку со станции под WinNT не прокатит?
Vi2>А у меня дома в Win98 есть такая учётная запись. Тик-тик как в NT4.0. Как появилась, я не знаю. Ничего вроде не устанавливал такого крутого. Только Win и MS DevStudio, правда, почти полностью.
Нету. Смотрел на нескольких машинах. Есть HKLM\SOFTWARE\MICROSOFT\WINDOWSNT — но это не то. На станциях обычный MSOffice 2000, IE5.5 и 1С. А в ветке у тебя что?
Здравствуйте Vacheslav, Вы писали:
Vi2>>А у меня дома в Win98 есть такая учётная запись. Тик-тик как в NT4.0. Как появилась, я не знаю. Ничего вроде не устанавливал такого крутого. Только Win и MS DevStudio, правда, почти полностью.
V>Нету. Смотрел на нескольких машинах. Есть HKLM\SOFTWARE\MICROSOFT\WINDOWSNT — но это не то. На станциях обычный MSOffice 2000, IE5.5 и 1С. А в ветке у тебя что?
У меня дома Win98. Поэтому точно не смогу ответить — отвечу так: один в один как в NT. Но HKEY_CLASSES_ROOT\Typelib не показывается или его нет в Реестре.
Здравствуйте Vi2, Вы писали:
Vi2>Здравствуйте Vacheslav, Вы писали:
Vi2>>>А у меня дома в Win98 есть такая учётная запись. Тик-тик как в NT4.0. Как появилась, я не знаю. Ничего вроде не устанавливал такого крутого. Только Win и MS DevStudio, правда, почти полностью.
V>>Нету. Смотрел на нескольких машинах. Есть HKLM\SOFTWARE\MICROSOFT\WINDOWSNT — но это не то. На станциях обычный MSOffice 2000, IE5.5 и 1С. А в ветке у тебя что?
Vi2>У меня дома Win98. Поэтому точно не смогу ответить — отвечу так: один в один как в NT. Но HKEY_CLASSES_ROOT\Typelib не показывается или его нет в Реестре. Vi2>