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

Скрипт определяющий серверная ОС или нет

Добавлено: Пн фев 21, 2011 20:04
HA3APET
Возникла надобность сделать автоматический запуск приложений с автоматическим определением ОС.
То есть если у нас серверная ОС, то запускается одна программа, если нет, то другая.
Наверное это будет выглядеть как скрипт определяющий битность ОС

Код: Выделить всё

IF EXIST "%ProgramFiles(x86)%" ( 
  Program1.exe 
) Else ( 
  Program2.exe 
)
Очень хотелось бы в виде батника.
Есть у кого какие идеи?

Добавлено: Пн фев 21, 2011 20:22
Flasher
Сравнительный анализ наличия системных папок что показывает? Вот от этого и пляши. Аналогично с переменными окружения.

Добавлено: Пн фев 21, 2011 20:38
HA3APET
Flasher
Не нашёл отличий в системных папках и в переменных. По-этому и прошу помощи.

Добавлено: Пн фев 21, 2011 20:49
MVV
А команда ver в консоли что выдает на серверной винде?

Добавлено: Вт фев 22, 2011 00:33
Rodny
MVV писал(а):А команда ver в консоли что выдает на серверной винде?
На 2003 SP1: "Microsoft Windows [Версия 5.2.3790]"

Добавлено: Вт фев 22, 2011 01:18
Flasher
Rodny
А set LOGONSERVER & set USERDOMAIN ?

Да и есть какие-то команды, которые только на серваке работать будут, типа net group и т.д., можно проверять по команде.

Добавлено: Вт фев 22, 2011 03:01
Rodny
Flasher писал(а):А set LOGONSERVER & set USERDOMAIN ?
Здесь никакой разницы с обычной XP.

Добавлено: Вт фев 22, 2011 12:33
Flasher
Rodny
А этот XP в цепочку ЛС входит?

Добавлено: Вт фев 22, 2011 13:21
Rodny
Flasher писал(а):А этот XP в цепочку ЛС входит?
Расшифруй. XP в локалке, обычная рабочая группа.

Добавлено: Вт фев 22, 2011 16:41
Flasher
Rodny
А ты уверен, что нет отличий? На сервере имена должны совпадать, а на ХP, вхожем в рабочую группу, logonserver должен соответствовать имени серверной машины.

Добавлено: Вт фев 22, 2011 18:32
Batya
Flasher писал(а):А set LOGONSERVER & set USERDOMAIN ?
Flasher писал(а):На сервере имена должны совпадать
Сравниваю "Windows 7 Максимальная" и "Windows Server 2008" в домене. Значения "LOGONSERVER" и "USERDOMAIN" отличаются между собой как на одной системе, так и на другой. Причём, значения для одной переменной равны на разных системах.
Заметил, что на на "Windows Server 2008" присутствует некая переменная "PEGASUS_PLATFORM", которой нет на "Windows 7 Максимальная".

Добавлено: Вт фев 22, 2011 18:58
Flasher
Batya писал(а):Значения "LOGONSERVER" и "USERDOMAIN" отличаются между собой как на одной системе, так и на другой. Причём, значения для одной переменной равны на разных системах.
На сервере LOGONSERVER отличается только наличием сдвоенного слэша спереди? У тебя так?
Batya писал(а):Причём, значения для одной переменной равны на разных системах.
Имена машин, может, одинаковые?
Batya писал(а):"PEGASUS_PLATFORM"
Вот, пусть топикстартер у себя перепроверит.

Добавлено: Вт фев 22, 2011 19:16
Rodny
Flasher писал(а):На сервере имена должны совпадать, а на ХP, вхожем в рабочую группу, logonserver должен соответствовать имени серверной машины.
А, вот на что смотреть...
Ничего не перепутано? У меня с точностью до наоборот:
на 2003: "LOGONSERVER=\\NetBIOS-имя_компьютера", "USERDOMAIN=имя_домена"
на XP: "LOGONSERVER=\\NetBIOS-имя_компьютера", "USERDOMAIN=NetBIOS-имя_компьютера"

У XP обычная домашняя локалка, отдельного сервера нет.
На 2003 поднят контроллер домена.

На XP абсолютно совпадают "set COMPUTERNAME & set USERDOMAIN"
"PEGASUS_PLATFORM" в 2003 нет.

Добавлено: Вт фев 22, 2011 19:23
Flasher
Rodny писал(а):на 2003: ""USERDOMAIN=имя_домена"
на XP: "USERDOMAIN=NetBIOS-имя_компьютера"
А, ну вот. HA3APET-то пишет, что никаких отличий. Будем ждать, если подтвердится, то вопрос в паре минут.
Кстати, имя домена и имя компьютера не совпадают?

Добавлено: Вт фев 22, 2011 22:43
MVV
Да, если не совпадают, проблема условно решена :)

Код: Выделить всё

if "%LOGONSERVER%"=="\\%USERDOMAIN%" (
  echo XP
) else (
  echo server
)