![]() |
Поиск слова в строке из реестра
Доброго времени суток всем. Есть скрипт:
Код:
echo on Части конфиг и но конфиг пока тестовые, для проверки работы первого условия :) P.S. Совсем не силен в программировании, по возможности, не кидайтесь помидорами :) Заранее спасибо. |
Код:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "ProductName" | findstr /i server && echo noconfig ||echo config |
Не проще ли вообще брать данные из HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions (значение ProductType)? Там возвожны только три значения: WinNT, LanmanNT и Server.
|
greg zakharov,
Спасибо за подсказку. При таком раскладе подойдет и уже существующий, работающий скрипт :) Elven, Это работает, он правильно определяет и выдает config\noconfig. Только теперь у меня проблемы с тем, как дальше сказать скрипту уходить в шаг :config или :noconfig... Если слово сервер найдено, то переменной надо присвоить значение сервер, если нет, то например 1 и в соответствии со значением переменной идти в следующий шаг. Вот только реализовать это в коде у меня не получается... Пните ещё немного дальше? |
Цитата:
Код:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "ProductName" | findstr /i server && ( Но, если очень уж хочется — используйте call :Метка или goto :Метка. Код:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "ProductName" | findstr /i server && call :noconfig || call :config |
А не могли бы Вы обьяснить логику работы? :) Оно работает, но не могу понять как :)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "ProductName" | findstr /i server - выполняется вот эта часть кода, допустим слово найдено. && - это значит, насколько мне известно, что то что стоит после этого, будет выполняться только если успешно выполнилось то, что стоит перед этим. call :noconfig || call :config - дальше идет это, т.е. :конфиг будет выполняться только тогда, когда :ноконфиг выполниться не смог... А как машина понимает, когда ей выполнять конфиг а когда ноконфиг? Ведь никаких переменных явно заданных которые бы говорили что если значение такое, делай так, если другое, эдак, нет... |
Цитата:
Цитата:
Код:
ЕСЛИ findstr.exe вернул нулевой код возврата ТО Код:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "ProductName" | findstr /i server |
Iska,
Спасибо |
В общем у меня получился вот такой вариант:
Код:
echo on Код:
@echo on P.S. Паузы я понавставлял для проверки. В скрипте который на доменном контроллере пауз нету... |
Цитата:
Не проще ли вместо всего этого просто назначить msi пакеты для установки посредством той же групповой политики, а из файла реестра либо сделать шаблон неуправляемой групповой политики и настроить последнюю, либо же раздавать значения из этого файла реестра предпочтениями групповой политики? |
Цитата:
Цитата:
А не могли бы рассказать подробнее что интересного во втором коде? :) Ну мне просто интересно послушать кого то кто более сведущ в программировании :) |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
А при установке через GPO, не скриптом, домен то не будет разбираться какая версия ОС и какой из двух msi пакетов ставить? Т.е. в данном случае имеет смысл добавлять только установочный пакет для 32 битных систем? |
![]() |
Цитата:
Цитата:
|
Да, если дать права компьютерам на шару то всё работает. Ну по крайней мере на ХР ставится... Но данный способ не решает проблемы с установкой на сервера :) В этом случае надо переносить сервера в отдельную оушку какую нибудь. А вообще в домене при введении пк в домен, все компьютеры помещаются в оу Computers, а этот процесс как-то можно регулировать не руками а автоматически, чтоб определенные пк (например сервера) помещались, например, в другую оу сразу при введении в домен?
|
Ну и опять же, если установленное приложение через GPO удалить, то снова при перезагрузке оно не поставится, нужно запихивать пк в другое оу, а потом опять перетаскивать обратно. Это тоже нельзя решить средствами GPO?
|
Цитата:
Цитата:
![]() А если нужно применять только на одну группу - еще проще. ![]() |
Цитата:
|
Сиволапый, у пользователей по определению не должно быть привилегий локальных администраторов. В принципе. Если в Вашем домене такое наличествует — значит, что-то не так в Датском королевстве.
|
Iska,
Именно вот такого ответа и ждал :) Но по большей части я с вами согласен. Ладно, спасибо всем за внимание и помощь! Дальше сам :) |
Время: 05:51. |
Время: 05:51.
© OSzone.net 2001-