Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Скрипт определяющий серверная ОС или нет
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Tue Feb 22, 2011 23:44    Post subject: Reply with quote

Flasher wrote:
Кстати, имя домена и имя компьютера не совпадают?

Нет.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Feb 22, 2011 23:51    Post subject: Reply with quote

Ок. Ждём подтверждения. Один из образцов MVV кинул.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2226
Location: Москва, Россия

Post (Separately) Posted: Thu Feb 24, 2011 10:42    Post subject: Reply with quote

Flasher wrote:
На сервере LOGONSERVER отличается только наличием сдвоенного слэша спереди? У тебя так?

Нет. У меня всё одинаково. И на "Windows 7 Максимальная", и "Windows Server 2008" у LOGONSERVER впереди двойной слэш.

Rodny wrote:
на 2003: "LOGONSERVER=\\NetBIOS-имя_компьютера", "USERDOMAIN=имя_домена"
на XP: "LOGONSERVER=\\NetBIOS-имя_компьютера", "USERDOMAIN=NetBIOS-имя_компьютера"

А у меня такого нет.
на 7: "LOGONSERVER=\\Контроллер_домена", "USERDOMAIN=имя_домена"
на 2008: "LOGONSERVER=\\Контроллер_домена", "USERDOMAIN=имя_домена"

Вроде нашёл ключи реестра, по которым можно определиться:
Windows 7 wrote:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"InstallationType"="Client"
"EditionID"="Ultimate"
"ProductName"="Windows 7 Ultimate"


Windows 2008 Server wrote:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"ProductName"="Windows Server (R) 2008 Enterprise"
"EditionID"="ServerEnterprise"


Наличие "Server" в "ProductName" может служить критерием.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
alexey65536



Joined: 20 Jan 2006
Posts: 1056
Location: Taganrog

Post (Separately) Posted: Thu Feb 24, 2011 11:20    Post subject: Reply with quote

В обычной XP вообще нет ключей InstallationType и EditionID:) Тоже отличиеSmile
_________________
#199018
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Feb 24, 2011 11:59    Post subject: Reply with quote

Самый надежный способ - написать утилитку на пару килобайт, которая будет ставить переменную окружения или код ошибки, позволяющий определить, серверная или нет - есть функция GetVersionEx, которая позволяет получить нужную информацию.

Вообще, автор топика просил различить XP и 2003 Server, для 7 и 2008 серверов могут быть различия. Также, думаю, различия могут быть в зависимости от того, подключена ли к домену рабочая станция с XP или нет. Но если вариант сравнения "%LOGONSERVER%"=="\\%USERDOMAIN%" подойдет - он будет простейшим.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Feb 24, 2011 13:55    Post subject: Reply with quote

Batya wrote:
И на "Windows 7 Максимальная", и "Windows Server 2008" у LOGONSERVER впереди двойной слэш.
Я имел в виду отличается от USERDOMAIN. Ну, теперь уже вижу, что там у тебя.

MVV wrote:
Вообще, автор топика просил различить XP и 2003 Server, для 7 и 2008 серверов могут быть различия.
Где? В личке?
MVV wrote:
Но если вариант сравнения "%LOGONSERVER%"=="\\%USERDOMAIN%" подойдет - он будет простейшим.
Тут не получается, если машины объединены с сервером. Контроллер домена и имя домена не равны ведь.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Feb 24, 2011 14:28    Post subject: Reply with quote

Flasher wrote:
MVV wrote:
Вообще, автор топика просил различить XP и 2003 Server, для 7 и 2008 серверов могут быть различия.
Где? В личке?
Ты прав, уточнения не было. Мне казалось, это автор отписывался о тестах на XP и 2003 серваке.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
HA3APET



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Thu Feb 24, 2011 19:09    Post subject: Reply with quote

Batya
Спасибо.
Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"InstallationType"="Client"

Думаю это, то что нужно

Теперь нужен батник.
Оцените такой, если, что подправьте

Code:
@echo off
echo ws=WScript.CreateObject("WScript.Shell");KeyPath="HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";ValueName="InstallationType"; > %TEMP%\0.js
echo try{Value=ws.RegRead(KeyPath+"\\"+ValueName);}catch(e){WScript.Quit(1);} >> %TEMP%\0.js
echo if (Value == "Server"){WScript.Quit(-1);}else{ WScript.Quit(0);} >> %TEMP%\0.js
cscript %TEMP%\0.js //B
set exitcode=%ERRORLEVEL%
del %TEMP%\0.js
if %exitcode%==0 (
 start "client.exe"
) else (
 start "server.exe"
)
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Feb 24, 2011 19:15    Post subject: Reply with quote

Ну, думаю, так попроще будет:
Code:
@echo off
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType|find "Client">nul
if errorlevel 1 (
   echo server
) else (
   echo client
)

Smile

Но должен заметить, что на XP этого параметра нет.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Thu Feb 24, 2011 19:18; edited 1 time in total
Back to top
View user's profile Send private message
HA3APET



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Thu Feb 24, 2011 19:18    Post subject: Reply with quote

MVV
Точно! ))))
Спасибо
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Feb 24, 2011 19:21    Post subject: Reply with quote

Думаю, так будет лучше:
Code:
@echo off
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType|find "Server">nul
if errorlevel 1 (
   echo client
) else (
   echo server
)

Отличие в том, что если параметр не найден, система считается клиентом, а не сервером.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
HA3APET



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Thu Feb 24, 2011 19:31    Post subject: Reply with quote

MVV
Сейчас нет возможности проверить на серверной ОС
Но ставлю вручную Server или весь параметр удаляю, не важно тут
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"InstallationType"="Server"
Всё равно ваши и мой батник во всех случаях выдают client, где то я замкнул) Проверю завтра на серверной.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Feb 24, 2011 19:45    Post subject: Reply with quote

Я проверял на Windows 2008 Server R2, работает.

И на Windows 7 оба моих пишут server, если в InstallationType прописать Server.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Feb 24, 2011 19:51    Post subject: Reply with quote

HA3APET
Не понял, а чему тут удивляться, что будет то, на что самостоятельно изменено значение? Smile И зачем его менять вообще?
Back to top
View user's profile Send private message
HA3APET



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Thu Feb 24, 2011 19:53    Post subject: Reply with quote

Flasher
Я писал, что наоборот от изменения значения результат скрипта один и тот же.
MVV
Спасибо за проверку, проверил на виртуалке (не дождался "завтра"), всё работает.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group