Справка - Поиск - Участники - Войти - Регистрация
Полная версия: Пишем скрипты для облегчения администрирования.
Частный клуб Алекса Экслера > Наши сети притащили > Администрирование сетей
Страницы: 1, 2, 3, 4, 5
Chief
15 июля 2009, 15:43

alibek написал: Если успею (и не забуду), переведу вечером на vbs.

Был бы благодарен, а то я только на sh нормально писать умею, остальное все забыл...frown.gif
Chief
15 июля 2009, 15:46

ArTUK написал: Есть несколько десятков подсетей. Для компьютеров из каждой подсети, сделан свой контейнер.

И кто такое придумывал?

ArTUK написал: IP, к учётке компа не привязан.

Тогда при чем тут

ArTUK написал: учётки компов с определёнными IP-адресами?

?
ArTUK
15 июля 2009, 17:36

Chief написал: И кто такое придумывал?

А что в этом такого?

Chief написал: Тогда при чем тут

А что не понятного?
Одна подсеть, это одно здание. К компьютерам разных зданий, применяются разные политики, поэтому каждой подсети выделен отдельный контейнер. Часть пользователей из одного здания, едут в другое здание. Там к компам применяются другие политики, а чтобы они применились, надо компьютеры со старого контейнера в новый перетащить.
Внимание вопрос! Как из старого контейнера, вытащить учётки только тех компов, которые уже уехали в другое здание?
Chief
15 июля 2009, 19:35

ArTUK написал: А что в этом такого?

Для разных этажей, а тем более зданий - ничего...smile.gif

ArTUK написал: А что не понятного?

Они переежут на другой ДХЦП и получат новые IP, потому привязка к адресам не имеет логического продолжения...
ArTUK
15 июля 2009, 21:16

Chief написал: Они переежут на другой ДХЦП и получат новые IP, потому привязка к адресам не имеет логического продолжения...

То что логического продолжения нет, это ясно.
Мне по сути нужно как-то пропинговать все компы из старого контейнера, и те компы у которых IP будет из новой подсетки, перетащить в новый контейнер. Ну или хотя бы, просто список этих компов вывести...
Tamerlan
16 июля 2009, 14:50

Chief написал: Народ, нужен скрипт для вытаскивания прав доступа Сервер-шара-полльзователи на чтение, пользователи на запись... Не АД, просто виндовый сервак... На VBS я позорно слаб, а стандартные скрипты такого не дают... Может кто поделиться?

Недавно писал скрипт, который для всех шар на данном сервере выводит список шаровых и NTFS-ных разрешений. Результат выдается в виде csv-файла. Такое подойдет?
Tamerlan
16 июля 2009, 15:01

ArTUK написал: Мне по сути нужно как-то пропинговать все компы из старого контейнера, и те компы у которых IP будет из новой подсетки, перетащить в новый контейнер. Ну или хотя бы, просто список этих компов вывести...

А в чем проблема? Берешь список компов контейнера (делается обычным экспортом из оснастки), проходишь по нему в цикле скриптом, вызывая nslookup для каждого имени компа, получаешь список ip-адресов, парсишь вывод и получаешь нужные тебе отчеты.
Chief
16 июля 2009, 16:03

Tamerlan написал: Такое подойдет?

На ура...smile.gif
Tamerlan
16 июля 2009, 23:15

Chief написал:
На ура...smile.gif

Винда, надеюсь, английская? wink.gif Ну, тогда держи код cmd-шника:
CODE
if exist shars*.txt del shars*.txt
if exist perms*.txt del perms*.txt
if exist size*.txt del size*.txt
srvcheck \\%COMPUTERNAME% | awk -F\\ "/^\\/ {print $4}" >shares.txt
for /F "tokens=*" %%i in (shares.txt) do net share "%%i" | awk "$0!~/The command completed successfully/ {print $0}" >>shars.txt
for /F "tokens=*" %%i in ('awk "/^Path/ {print(substr($0,19))}" shars.txt') do (echo %%i >tmp.txt
for /F "tokens=*" %%k in (tmp.txt) do du -q "%%k" | awk "BEGIN{getline s < \"tmp.txt\"; close(\"tmp.txt\")};/Size:/ {gsub(/,/,\"\");size = $2}END{print s\",\"size}" >>size.txt)
for /F "tokens=*" %%i in (shares.txt) do (echo %%i >>perms.txt
showacls "\\%COMPUTERNAME%\%%i" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk -v OFS="," "(NR>1) && (NF>0) {y=match($0, /Special Access|Full Control|Read \[|Change/);print substr($0,1,y-1),substr($0,y)};END{print \"\n\"}"  >>perms.txt)
srvcheck "\\%COMPUTERNAME%" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk -v OFS="," "{y=match($0, /Full Control|Read|Change/);print substr($0,1,y-1),substr($0,y)}" | awk "{sub(/^,/,\"\");print $0}" >shperm.txt
awk -f rep shars.txt >lst.csv

Здесь используется несколько простых утилит. Это srvcheck.exe и showacls.exe, входящие в Windows Resource Kit, который можно скачать отсюда. Также используется утилита du.exe, входящая в комплект Sysinternals Suite, и которую можно скачать здесь. Для парсинга вывода используется старая добрая awk.exe. Если на компе нет, то версию для винды можно свободно скачать отсюда.

Для работы парсера нужен текстовый файл под именем rep (без расширения), содержащий в себе следующий код для awk:
CODE
BEGIN{while ((getline < "size.txt") > 0) {
split($0, f, ",")
s[substr(f[1],1,length(f[1])-1)] = f[2]
#  print substr(f[1],1,length($1)-1)","s[substr(f[1],1,length($1)-1)]
}
RS = ""
FS = "\n"
ORS="\n"
OFS = ","
while ((getline < "perms.txt") > 0) {
str = substr($1,1,length($1)-1)
for(i=2;i<=NF;i++) {
a[str,i-1] = $i
len[str]++
 }
while ((getline < "shperm.txt") > 0) {
name = substr($1, match($1,/\\/)+1)
for(k=2;k<=NF;k++) {
perms[name,k-1] = $k
leng[name]++
# print $1, name, perms[name,k-1]
   }
 }
}
close("perms.txt")
close("size.txt")
close("shperm.txt")
print "SHARE NAME", "SHARE PATH", "SHARE SIZE", "SHARE USER/GROUP", "SHARE PERMISSIONS", "NTFS USER/GROUP", "NTFS PERMISSIONS"
}
{
share_name = substr($1,19)
share_path = substr($2,19, length($2))
# split(substr($0, match($0, "Permission")+18),perms)
print share_name, share_path, s[share_path], perms[share_name,1], a[share_name,1]
k = 2
i = 2
while ((k<=leng[share_name]) || (i<=len[share_name])) {
if (length(perms[share_name,k]) == 0) {perms[share_name,k] = ","}
if (length(a[share_name,i]) == 0) {a[share_name,i] = ","}
 print ",,,"perms[share_name,k]","a[share_name,i]
k++
i++
}
}


Файлы с указанным выше cmd-шником и парсером rep должны лежать в одном каталоге на том сервере, для которого делается отчет. Перечисленные выше утилиты должны либо лежать в исполняемых путях, либо в том же каталоге, что и основной cmd-файл. При первом запуске утилита du выводит сообщение с лицензионным соглашением. Нужно нажать на кнопку "Agree" и больше она нас беспокоить не будет. smile.gif Если есть еще какие-то вопросы - с удовольствием отвечу. Сам скрипт успешно оттестирован на куче европейских файловых серваков для составления отчета по шарам.
Chief
17 июля 2009, 06:57

Tamerlan написал: Винда, надеюсь, английская?

На одном серваке - нет (его еще до меня поднимали)frown.gif Это критично?
Но я попытаюсь, если не пройдет, переписать для русской, на шеле я еще не разучился писать...
Сенькс...smile.gif
Tamerlan
17 июля 2009, 07:38

Chief написал: На одном серваке - нет (его еще до меня поднимали)frown.gif Это критично?

Вообще говоря, да. Вывод 'net share' для локализованной версии сильно отличается от английской. Но я могу сделать версию скрипта и для русской винды, если нужно.
Chief
17 июля 2009, 07:45

Tamerlan написал: если нужно

Нужно, винда русская (одна, но критично)...frown.gif
Tamerlan
17 июля 2009, 13:27

Chief написал:
Нужно, винда русская (одна, но критично)...frown.gif

ОК. Сегодня вечером сделаю для русской винды.
Chief
23 июля 2009, 00:37

Tamerlan написал: ОК. Сегодня вечером сделаю для русской винды.

У меня очень не скромный вопрос...smile.gif
Tamerlan
23 июля 2009, 05:57

Chief написал:
У меня очень не скромный вопрос...smile.gif

Прошу прощения за задержку. Вот измененный код cmd-файла, адаптированного для русской винды:
CODE

if exist shars*.txt del shars*.txt
if exist perms*.txt del perms*.txt
if exist size*.txt del size*.txt
srvcheck \\%COMPUTERNAME% | awk -F\\ "/^\\/ {print $4}" >shares.txt
for /F "tokens=*" %%i in (shares.txt) do net share "%%i" | FIND /V "Команда выполнена успешно" >>shars.txt
for /F "tokens=*" %%i in ('type shars.txt ^| FIND "Путь" ^| awk "{print(substr($0,31))}"') do (echo %%i>tmp.txt
for /F "tokens=*" %%k in (tmp.txt) do du -q "%%k" | awk "BEGIN{getline s < \"tmp.txt\"; close(\"tmp.txt\")};/Size:/ {gsub(/[^0-9]/,\"\");size = $2}END{print s\",\"size}">>size.txt)
for /F "tokens=*" %%i in (shares.txt) do (echo %%i>>perms.txt
showacls "\\%COMPUTERNAME%\%%i" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk -v OFS="," "(NR>1) && (NF>0) {y=match($0, /Special Access|Full Control|Read \[|Change/);print substr($0,1,y-1),substr($0,y)};END{print \"\n\"}">>perms.txt)
srvcheck "\\%COMPUTERNAME%" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk "{sub(/[^  ]/, \"\"); print $0}" | awk -v OFS="," "{y=match($0, /Full Control|Read|Change/);print substr($0,1,y-1),substr($0,y)}" | awk "{sub(/^,/,\"\");print $0}">shperm.txt
awk -f rep shars.txt >lst.csv


А вот адаптированный код парсера (файл rep):
CODE
BEGIN{while ((getline < "size.txt") > 0) {
split($0, f, ",")
s[substr(f[1],1,length(f[1])-1)] = f[2]
#  print substr(f[1],1,length($1)-1)","s[substr(f[1],1,length($1)-1)]
}
RS = ""
FS = "\n"
ORS="\n"
OFS = ","
while ((getline < "perms.txt") > 0) {
str = substr($1,1,length($1))
# print str, $0
for(i=2;i<=NF;i++) {
a[str,i-1] = $i
len[str]++
# print str, a[str,i-1]
  }    
 }
while ((getline < "shperm.txt") > 0) {
name = substr($1, match($1,/\\/)+1)
for(k=2;k<=NF;k++) {
perms[name,k-1] = $k
leng[name]++
# print $1, name, perms[name,k-1]
   }
 }
close("perms.txt")
close("size.txt")
close("shperm.txt")
print "SHARE NAME", "SHARE PATH", "SHARE USER/GROUP", "SHARE PERMISSIONS", "NTFS USER/GROUP", "NTFS PERMISSIONS"
}
{
share_name = substr($1,31)
share_path = substr($2,31, length($2))
# split(substr($0, match($0, "Permission")+18),perms)
print share_name, share_path, perms[share_name,1], a[share_name,1]
k = 2
i = 2
while ((k<=leng[share_name]) || (i<=len[share_name])) {
if (length(perms[share_name,k]) == 0) {perms[share_name,k] = ","}
if (length(a[share_name,i]) == 0) {a[share_name,i] = ","}
 print ",,"perms[share_name,k]","a[share_name,i]
k++
i++
}

На тестовой машине прошло на ура. Прошу сообщить, как прошло у тебя, если можно.
Rem
20 сентября 2009, 16:43


На тестовой машине прошло на ура. Прошу сообщить, как прошло у тебя, если можно.

Вмешаюсь немного... Скрипт работает отлично, спасибо огромное. Небольшое замечание - в русской адаптации файла rep не хватает еще одной (второй) фигурной скобки в конце smile.gif Без нее выводит syntax error 45. В остальном все чудесно.
Tamerlan
20 сентября 2009, 18:05

Rem написал:
Вмешаюсь немного... Скрипт работает отлично, спасибо огромное. Небольшое замечание - в русской адаптации файла rep не хватает еще одной (второй) фигурной скобки в конце smile.gif Без нее выводит syntax error 45. В остальном все чудесно.

Да, похоже, при копировании чуть-чуть ошибся с выделением. Прошу пардону.
Димка_из_Дуста
23 сентября 2009, 12:02
Доброг времени суток. Подскажите пожалуйста новичку shuffle.gif
появилась у меня необходимость в скрипте по смене пароля на CentOS 5 на удалённой машине, ездить туда не вариант, а в ручную (по сетке) ну оч не хочется раз в 3-4 недели вспоминать что надо это делать... Посоветуйте сцылочкой или помогите в написании скриптика. Как я это представляю: рандомно генерируется пароль на компе, меняет на руте, и письмом отправляет мне на рабочую почту... Как то так cwm32.gif
Tamerlan
23 сентября 2009, 14:44
Ну, навскидку:
CODE
#!/bin/bash
passwd=`tr -dc '0-9a-zA-Z' </dev/urandom |head -c 12;echo`
echo $passwd | mail root@localhost
echo $passwd | passwd --stdin root
Chief
23 сентября 2009, 14:50

Tamerlan написал: passwd --stdin

Во фре, как пример, у passwd параметра -s нет... kos.gif
Сча в линухе посмотрю, но для фри было бы правильнее
chpass $passwd root
UPD: Я бы еще в echo $passwd | mail добавил бы -s RootPass, чтоб без сабжекта не шло...smile.gif
Chief
23 сентября 2009, 15:13

Chief написал: Сча в линухе посмотрю

Тоже не работает, ну и chpass нет...
зато через Ж, но пока получилось так:
echo $passwd > /root/passs.txt
echo $passwd >> /root/passs.txt
passwd root < /root/passs.txt
Димка_из_Дуста
23 сентября 2009, 16:53
спасибо cwm32.gif

#!/bin/bash
passwd=`tr -dc '0-9a-zA-Z' </dev/urandom |head -c 12;echo`
echo $passwd | mail root@localhost
echo $passwd | passwd --stdin root

вот это работает! cwm32.gif
куда плюсики поставить или спасибо сказать?
ЗЫ пока тестил на ClarkConnect 5.0 так что не могу сказать как поведёт себя в Сентосе, они друг друга как минимум не обновляют до нужной кондиции. Как попробую - отпишусь.
Димка_из_Дуста
24 сентября 2009, 18:49
в общем решил не заморачиваться и ничего не менять cwm32.gif просто немного под себя добавил пару строк 3d.gif
Еще раз всем выражаю благодарность! Обязательно еще загляну cwm32.gif
Димка_из_Дуста
17 февраля 2010, 16:35
Еще раз здравствуйте! wink.gif

Снова обращаюсь с просьбой о помощи... Помогите плиз с написанием скриптика для запрета чтения файла, до его полной передачи на ФТП. Передаётся картинка, но так как она идёт по ФТП, то в уже в локалке, где стоит сам сервак, она видна не полностью ("неизвестное окончание файла" в логах). Картинки высылаются примерно три раза в секунду и весят по разному, поэтому синхронизировать никак не получится. А вот запретить чтение, до окончания получения, я слышал, можно... Но нигде что-то не нашел frown.gif Может есть решение у кого-нибудь?
MarchepaL
28 февраля 2010, 14:23
в общем нужно в батнике вывести значения из файла директории N(т.е. любая заданная)
к примеру есть файл *.txt
из него нужно вытянуть определенную информацию, остальное отсеять.

пошуршал в интернете, но не получается. там указан такой способ

Читаем настройки из файла settings.txt, который должен располагаться в
том же каталоге, что и bat-файл. Если не удалось распарсить настройки -
выходим с ненулевым кодом возврата.
call :read_settings %~dp0\settings.txt || exit /b 1

пишет не понятно что(я в батниках не шарю)


нужно выдрать определенные строки из файла.
бат файл запускает командную строку, выполняет команду ipconfig /all всё это сохраняет в файл. Потом из этого файла ищутся строки: Физический адрес, ip адрес. И т д. Отсекая лишнее. и выводится всё это в сгенерированую html страницу

что-то типа того!
буду признателен за помощь!
Tamerlan
1 марта 2010, 02:58

MarchepaL написал: нужно выдрать определенные строки из файла.
бат файл запускает командную строку, выполняет команду ipconfig /all всё это сохраняет в файл. Потом из этого файла ищутся строки: Физический адрес, ip адрес. И т д. Отсекая лишнее. и выводится всё это в сгенерированую html страницу

что-то типа того!
буду признателен за помощь!

Дай пример того, что должно получиться в итоге на выходе. Я тогда тебе приведу здесь пару вариантов парсера на этот случай.
MarchepaL
3 марта 2010, 13:29

Настройка протокола IP для Windows

Имя компьютера . . . . . . . . . : wgfvdshresh
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : неизвестный
IP-маршрутизация включена . . . . : нет
WINS-прокси включен . . . . . . . : нет
Порядок просмотра суффиксов DNS . : itnet

Подключение по локальной сети - Ethernet адаптер:

DNS-суффикс этого подключения . . : lalala
Описание . . . . . . . . . . . . : Realtek RTL8139 Family PCI Fast Ethe
rnet NIC
Физический адрес. . . . . . . . . : 00-80-48-4B-A9-45
Dhcp включен. . . . . . . . . . . : да
Автонастройка включена . . . . . : да
IP-адрес . . . . . . . . . . . . : 192.168.1.110
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.1.1
DHCP-сервер . . . . . . . . . . . : 192.168.1.1
DNS-серверы . . . . . . . . . . . : 192.168.1.1
Аренда получена . . . . . . . . . : 3 марта 2010 г. 10:10:23
Аренда истекает . . . . . . . . . : 19 января 2038 г. 6:14:07


из этого всего в html должно остаться

IP-адрес . . . . . . . . . . . . : 192.168.1.110
Физический адрес. . . . . . . . . : 00-80-48-4B-A9-45
Dhcp включен. . . . . . . . . . . : да

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


вообще все это для администрирования маленькой сети.
клиентам чайникам не объяснишь где посмотреть их ип адрес(и прочее)
и вот нужно как-то извертеться...
мб проще программу написать, которая все это выводит???
прикрепил файл. вот что-то типа того нужно выводить.

зы: чувствую себя чайником таким же ,как и клиенты сети 3d.gif
Tamerlan
3 марта 2010, 14:28

MarchepaL написал: вообще все это для администрирования маленькой сети.
клиентам чайникам не объяснишь где посмотреть их ип адрес(и прочее)
и вот нужно как-то извертеться...
мб проще программу написать, которая все это выводит???
прикрепил файл. вот что-то типа того нужно выводить.

Понятно. Скачай вот эту утилиту и будет тебе щастье. smile.gif Сможешь пользователям всю нужную инфу прямо на рабочий стол вывести.
MarchepaL
4 марта 2010, 13:37
думаю у пользователей начнется паника, что с их рабочим столом что-то не так.
да и к тому же видоизменяется картинка рабочего стола и чтобы все было как раньше, нужно будет картинку рабочего стола менять на прежнюю...
Tamerlan
4 марта 2010, 18:14

MarchepaL написал: думаю у пользователей начнется паника, что с их рабочим столом что-то не так.
да и к тому же видоизменяется картинка рабочего стола и чтобы все было как раньше, нужно будет картинку рабочего стола менять на прежнюю...

Эта утилита может просто выдавать нужную инфу в виде того окошка, что ты выше приводил, может экспортировать в текстовый или html-файл, может обновлять фоновую картинку. Что именно из этого тебе требуется, выбираешь именно ты. Принудительно обновлять рабочий стол совершенно необязательно. Ты по ссылке-то заходил? Там вполне подробно все функции описаны.
MarchepaL
4 марта 2010, 18:38
да я читал инструкцию.
но нужна программа, которая выводит все на автомате.
нажал и вывелось что нужно. только один клик как бы...
или как мне нужно - в html страничке

если бы не эти требования для "чайника" то проблемы бы не было...
Tamerlan
4 марта 2010, 18:57

MarchepaL написал: но нужна программа, которая выводит все на автомате.
нажал и вывелось что нужно. только один клик как бы...
или как мне нужно - в html страничке

А в чем проблема? Настроил один раз конфиг (или оставил по умолчанию) и вызвал из командной строки с нужными ключами. Или создал батник с готовыми параметрами и его запустил. Или это тоже нуждается в объяснении?
MarchepaL
5 марта 2010, 11:47
да frown.gif
ну я правда чайнег в этом
ходить к пользователям или по телефону направлять - это без проблем
но вот вопрос автоматизации отдельных процессов - это вот сложнее для меня.
всеми силами стараюсь рахобраться изучить матчасть. но сложновато на первых порах.


еще раз, почему не подходит программа.

пользователь вставляет диск и у него на автомате загружается страница с:
ip
фидический адрес
ля-ля-ля
----
---

---

а эта программа обоину заменяет. это ж какая паника начнется...
ну не подходит она мне, не подходит...
Tamerlan
5 марта 2010, 11:56

MarchepaL написал: да frown.gif
ну я правда чайнег в этом
ходить к пользователям или по телефону направлять - это без проблем
но вот вопрос автоматизации отдельных процессов - это вот сложнее для меня.
всеми силами стараюсь рахобраться изучить матчасть. но сложновато на первых порах.

Так, в чем проблема-то? Утилита, вызванная с ключом /popup, как раз и выводит на экран окошко с имеющейся информацией. Не это ли тебе нужно было?
Tamerlan
5 марта 2010, 12:34

MarchepaL написал: а эта программа обоину заменяет. это ж какая паника начнется...
ну не подходит она мне, не подходит...

Так... Повторяю еще раз, медленно. Если программу вызвать с ключом /popup, то никаких обоев она не меняет. Просто выводит окно с нужной информацией - и ВСЕ. Это нужно еще как-то объяснить или вы мне просто не верите, что такое возможно?
MarchepaL
7 марта 2010, 10:16
спасибо буду пробовать!
удобно однако...
MarchepaL
10 марта 2010, 17:22
забили на предыдущую идею.
теперь все это выглядит так
Tamerlan
10 марта 2010, 18:55

MarchepaL написал: теперь все это выглядит так

Ну, по сути то же самое, только в профиль smile.gif
OzoN
10 сентября 2010, 14:25
Добрый день.
Возникла задача добавления доменных пользователей в группу локальных администраторов на нескольких машинах. В идеале хотелось бы что бы запустил у себя на компе скрипт, он спросил имя машины на которой нужно добавить пользователя в админы, спросил имя пользователя, и добавил. Реально ли такое или следует искать другой выход из ситуации?
Tamerlan
10 сентября 2010, 14:55

OzoN написал: Добрый день.
Возникла задача добавления доменных пользователей в группу локальных администраторов на нескольких машинах. В идеале хотелось бы что бы запустил у себя на компе скрипт, он спросил имя машины на которой нужно добавить пользователя в админы, спросил имя пользователя, и добавил. Реально ли такое или следует искать другой выход из ситуации?

CODE
strComputer = UserInput( "Enter computer name:" )
strUser = UserInput( "Enter user name:" )

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")

Set objUser = GetObject("WinNT://" & "MYDOMAIN" & "/" & strUser & ",user")

On Error Resume Next
objGroup.Add(objUser.ADsPath)

Function UserInput( myPrompt )
       UserInput = InputBox( myPrompt )
End Function

Такой вариант подойдет? Параметр MYDOMAIN, разумеется, нужно заменить на название своего домена.
Chief
10 сентября 2010, 15:54

Tamerlan написал: Такой вариант подойдет?

Ты не уточнил по поводу языка системы на компах, если русский, то группа другая...
Chief
10 сентября 2010, 15:55

OzoN написал: Возникла задача добавления доменных пользователей в группу локальных администраторов на нескольких машинах.

А добавить машины в определенную группу и применить Restricted Group из GP - не, не катит?
OzoN
10 сентября 2010, 16:28
Tamerlan
Спасибо большое, все работает = )
Chief
Доступа к DC к сожалению нет = (
Tamerlan
10 сентября 2010, 16:42

Chief написал:
Ты не уточнил по поводу языка системы на компах, если русский, то группа другая...

А если китайский, то вообще туши свет. smile.gif Я думаю, владелец системы в курсе названия своих групп, по крайней мере.
Chief
10 сентября 2010, 19:00

Tamerlan написал: А если китайский, то вообще туши свет.

Честно - работал только с немецким и голандским, а там боле-менее понятноsmile.gif

OzoN написал: Доступа к DC к сожалению нет

При наличии админского пароля? Или как ты запускал скрипт?
Tamerlan
10 сентября 2010, 19:01

Chief написал: При наличии админского пароля?

Бывает, что есть админские права на сервера, но нет прав на политики AD. В крупных корпорациях админские права выделяются достаточно дозированно и ограниченному кругу лиц.
Chief
10 сентября 2010, 19:10

Tamerlan написал: Бывает, что есть админские права на сервера, но нет прав на политики AD.

Бывает. Но это вопрос не администраторский, а административный, согласись...
При условии, когда меня просят поменять права доступа куда угодно - я тупо отправляю к техническому директору, даже зная, что менять права можно и нужно...
Просто потому, что этот вопрос не технически сложен, а административно. Единственный случай, когда ни кого не отправлял - Генеральный директор и по совместительству держатель контрольного пакета акций запросил права на чтение коммерческой переписки.smile.gif В случае с одним из акционеров с небольшим объемом акций - он был послан... К Техническому директору: Не мое дело определять права доступа, мое дело их выдавать по указанию свышеsmile.gif
Tamerlan
10 сентября 2010, 19:20

Chief написал: Бывает. Но это вопрос не администраторский, а административный, согласись...

Приведенная выше задача - вполне типичная. Сам с такими сталкиваюсь регулярно. Добавлять пользователей в локальные группы админов на подотчетных серверах можно без особых проблем. Менять политики AD (за исключением самых простых и ограниченных) - нельзя.
OzoN
13 сентября 2010, 09:52
Дело обстоит именно так как это описал Tamerlan
Права есть, доступа к политикам - нет. И вообще проблема не наша, но в связи с тем что.... В общем повесили на меня, а я не сном не духом)
И можно еще 1 вопрос, можно немного подредактировать данный скрипт что бы после выдачи админских прав он еще запускал 1 файлик, который лежит на общедоступной шаре? Сам файлик содержит в себе информацию об удалении раздела реестра. Или, если это проще, добавить в данный скрипт сразу удаление раздела реестра, а именно:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing] ? Заранее спасибо
Tamerlan
13 сентября 2010, 10:15

OzoN написал: И можно еще 1 вопрос, можно немного подредактировать данный скрипт что бы после выдачи админских прав он еще запускал 1 файлик, который лежит на общедоступной шаре? Сам файлик содержит в себе информацию об удалении раздела реестра. Или, если это проще, добавить в данный скрипт сразу удаление раздела реестра, а именно:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing] ? Заранее спасибо

Добавляем в скрипт следующие строки:
CODE
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\MSLicensing"

oReg.DeleteKey HKEY_LOCAL_MACHINE, strKeyPath
Дальше >>
Эта версия форума - с пониженной функциональностью. Для просмотра полной версии со всеми функциями, форматированием, картинками и т. п. нажмите сюда.
Invision Power Board © 2001-2017 Invision Power Services, Inc.
модификация - Яро & Серёга
Хостинг от «Зенон»Сервера компании «ETegro»