Страница 1 из 1

Нужно определить версии NW клиентов

СообщениеДобавлено: 03 окт 2003, 11:41
victorpr
Нужна тулза для определения версий используемых NW клиентов в большой сети.
Ссылка на clientdoc.exe , приведенная на странице http://www.novell.com/coolsolutions/tools/1443.html - не работает :( .
Может кто знает (или имеет :wink: ) утилиты, решающие эту задачу.
Я почему-то не нашел в NDK элементарную функцию API, типа "покажи версию клиента" (присутствует только запрос "покажи версию сервера"). А то можно было бы и быстренько накропать утилитку.

СообщениеДобавлено: 03 окт 2003, 15:08
Андрей Троценко
Попробуйте взять ее в registry: HKLM\NetWork\Novell\System Config\Install\Client Version

СообщениеДобавлено: 03 окт 2003, 15:34
Владимир Горяев
Можно через Login script организовать.
Есть переменные %REQUESTER_VERSION, %REVISION, %SHELL_VERSION. Их можно передать в переменные окружения, а их в свою очередь свалить со всех клиентов в файл на сервере.

А www.novell.com уже часа 4 не отвечает :(

СообщениеДобавлено: 03 окт 2003, 19:10
victorpr
Андрей Троценко писал(а):Попробуйте взять ее в registry: HKLM\NetWork\Novell\System Config\Install\Client Version

Такой подход, к сожалению, требует изучения специфики прописывания себя в реестр различных версий клиентов на различных виндах (т.е. целая научная работа :D ). Так, например, у меня (в XP Pro Rus + 4.83 SP2) указанного Вами пути нет, а есть
HKLM\SOFTWARE\Novell\NetWareWorkstation\CurrentVersion. У моего сотрудника стоит XP Pro Eng и клиент более старшей версии и все прописано в другом месте. Если было бы документированное одинаковое место для всех версий OS и клиентов, то я бы этим методом воспользовался. А пока ... :(

СообщениеДобавлено: 03 окт 2003, 19:20
victorpr
Владимир Горяев писал(а):Есть переменные %REQUESTER_VERSION, %REVISION, %SHELL_VERSION

Можно, конечно и так, но в моем случае, почему-то с переменной %REVISION какая-то напряженка (т.е. не формирует ее клиент при интерпретации скрипта). А мне очень нужно знать, кроме всего, номер накатанного сервиспака. Так что этот метод решает задачу не полностью :( .

Есть решение...

СообщениеДобавлено: 03 окт 2003, 21:01
Сергей Дубров
victorpr писал(а):А мне очень нужно знать, кроме всего, номер накатанного сервиспака.

Можно добиться желаемого с помощью утилиты ACU (идёт в комплекте со всеми клиентами32, но правильнее использовать самую последнюю версию).

В логин скрипт вписываете примерно следущее:

Login script
========
REM *** Windows 95/98 ***
If PLATFORM = "W95" or PLATFORM = "W98" THEN
#\\server\sys\public\client\win95\acu.exe
IF "%ERROR_LEVEL" = "1" THEN BEGIN
EXIT
END
END

REM *** Windows NT/2000 ***
If PLATFORM = "WNT" THEN
#\\server\sys\public\client\winnt\i386\acu.exe
IF "%ERROR_LEVEL" = "1" THEN BEGIN
EXIT
END
END
======

В директорию с ACU.EXE кладёте ACU.INI, в котором есть следущие строки:

ACU.INI:
======
[LaunchInstall]
Launch=No <- чтобы не началась реальная установка

[StatusLogging]
Use=Yes
File=\\server\sys\public\client\cl32.log
=======

На файл cl32.log всем дать права на запись и отобрать право R (чтобы видно не было). При логине каждая машина впишет в этот файл строку, полностью определяющую версию и сервис-пак клиента.

Re: Есть решение...

СообщениеДобавлено: 03 окт 2003, 21:07
Андрей Тр. aka RH
Сергей Дубров писал(а):Можно добиться желаемого с помощью утилиты ACU
:) Вот и я тоже так подумал про ACU .. но как-то не придумал, как именно сохранять эту major / minor version и номер сервиспака. Извлекать из лог-файла уж больно .. хитро получается. Думал, может ключик у нее есть заветный, чтобы просто вернуть идентификатор клиента - ан нет, вроде нет такого ..

СообщениеДобавлено: 06 окт 2003, 11:40
Влад А.Сокол aka Akina
Можно после ACU запустить парсер, который выделит версию и поместит в переменные окружения... а чтобы не было видно файла cl32.log (впрочем, почему?) - помещать (или переносить) его в каталог, в котором отобрать право просмотра (file scan).

СообщениеДобавлено: 06 окт 2003, 18:08
victorpr
Cсылка http://www.innovativesoftsystems.com/fi ... mentor.zip заработала. Там есть исходники на Васике. Если отбросить из них всю муть на 40 к, то остается 3 строки:
Major = GetKeyValue(HKEY_LOCAL_MACHINE, "Software\Novell\NetWareWorkstation\CurrentVersion\", "MajorVersion", "")
Minor = GetKeyValue(HKEY_LOCAL_MACHINE, "Software\Novell\NetWareWorkStation\CurrentVersion\", "MinorVersion", "")
Internal = GetKeyValue(HKEY_LOCAL_MACHINE, "Software\Novell\NetWareWorkStation\CurrentVersion\", "MinorInternalVersion", "")
Попробую дергать именно эти переменные из реестра.

СообщениеДобавлено: 06 окт 2003, 18:13
victorpr
Кстати, у меня на машине никакого MinorInternalVersion нет и впомине :)

СообщениеДобавлено: 07 окт 2003, 10:40
Сергей Дубров
victorpr писал(а):Кстати, у меня на машине никакого MinorInternalVersion нет и впомине :)

MajorInternalVersion и MinorInternalVersion - дело добровольное, основная инсталляция по умолчанию про них не в курсе и переменных с таким именем не создаёт. Я, когда обновляю установку Cl32 очередным постфиксом, в unnatended файле всегда эти переменные инкрементирую, чтобы ACU работала.

СообщениеДобавлено: 07 окт 2003, 10:55
victorpr
victorpr писал(а):Cсылка http://www.innovativesoftsystems.com/fi ... mentor.zip заработала.

При этом мой DrWeb 4.30a пишет "Возможно BACKDOOR.TROJAN" на файлеClientDoc.Exe. Я, конечно, не уверен в том, что на офсайте может быть зараза, но... будьте осторожны"