Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

   

FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
 

                               Коллеги-администраторы  ....  


Часть 2я

Часть 1
Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на котороые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от M$ сейчас уже далеко не та "лапша", которой он был изначально, а современный структурированный язык, нашедший множество применений. Похоже, что для меня в очередной раз настала пора выучить еще что-то. Знаете, как курильщик много раз безуспешно пытается бросить курить, так и я не раз пытался подступиться к изучению VBScript, но пока никак не одолел. Лень, знаете ли. А инструмент в делах административных был бы весьма пользительный, должен заметить, для быстрого написания всякого рода скриптов.

 
    Внимание   !  !  !  

  • Поскольку данный топ весьма не мал, не забывайте  использовать "версию для печати" для более удобного поиска по теме. А также МЕГА ПОИСКОВИК от NEPa

  • Дабы не раздувать топ,  примеры своих  скриптов  заключаем в тег  "more"

Консольные команды. Командный интерпретатор

Windows Script Host (WSH) &  VBScript  &  JScript


Вышеперечисленные буки можно  взять здесь

    ТOOLS :
  1. Autoit+readme.rus
  2. Scriptologic
  3. AutoMate
  4. KIXTART
  5. nnCron-Планировщик с поддержкой скриптового языка --  РЕКОМЕНДУЮ
  6. WGET, GREP, GETMAIL, BLAT for Windows замечательные консольные утилиты
  7. 4dos/4nt -- отличная замена стандартного коммандного интерпретатора  
  8. JudoScript - java подобный скриптовый язык с исходниками
  9. VBS2EXE - утилита для компиляции vbs и js скриптов в exe выдранная из пакета PrimalScript

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI
  6. Программирование "удобняшек" на VBScript

 
Подробнее...
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
 Предложения по реформированию шапки принимаю в ПМ Jovanotti

 

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 17:27 11-12-2006 | Исправлено: Smitis, 12:30 20-08-2008
mistx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
Да. Но сервер нужно оставить включенным

Всего записей: 765 | Зарегистр. 13-01-2005 | Отправлено: 14:13 31-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
schtasks/at для этого и предназначены
можно указывать прямо скримт - шедулер разберется. запускать следующий после выполнения первого - можно либо просто по очереди из 3го сценария, либо из 1го
 
Добавлено:
mistx
вобщет скрипт должен выглядеть так, а то у теяб проверка идет после цикла =)

Код:
@echo off  
 
set txt=%TEMP%\jsjflsdkf.tmp  
net view > %txt%  
 
for /f "skip=3" %%q in (%txt%) do (  
if  not "%%q"=="\\SERV313"  (  
    echo shuting down %%q  
    echo shutdown /s /m %%q  
    echo.  
    )

)  
del /q  %txt%

 

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 14:56 31-01-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
urel, если у меня в скрипте с помощью WShell запускается скрипт. То работа основного скрипта будет завершена тогда, когда завершит работу скрипт запускаемый из WShell?
 
p.s. у меня скриптом запускается скрипт (xcacls.vbs), он считывает хренову тучу папок, их права и пихает это все в лог (лог ~ 10 метров). После этого запускается второй скрипт, который удаляет первые 2-3 и несколько последних строк из лог файла.
Не понимаю - время работы xcacls.vbs примерно минут 20. Т.е. если я поставлю выполнять скрипт после отработки первого. То не возникнет ли такая ситуация - второй скрипт запустится в тот момент когда еще не был еще отработан xcacls и соответственно лог файла нет.  
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 15:26 31-01-2007 | Исправлено: Sk1f, 15:28 31-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
смотря как за пустить - можно запустить и продолжить выполнение первого.
запусти сразу второй после первого(из первого - те добавь в конец run/exec)

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 16:00 31-01-2007
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос 1:
Можно ли через VBS привязать сетевой диск таким образом, чтобы он был виден\доступен для системы (т.е. юзера NT-AUTHORITY/System) свободно, а для любого залогиненого юзера появлялся запрос с паролем?
 
Сейчас если диск замаплен от имени системы (через scheduled task и net use), то системе диск доступен, но для юзера появляется "Logon failure".
 
Здесь нужен именно запрос имени:пароля, т.к. серваки не в одном домене.
 
P.S. Другой вариант когда в net use (при маппинге от имени системы) я указываю имя:пароль юзера который имеет доступ к этой шаре всегда - не работает (диск не мапится совсем)...
 
"C:\WINDOWS>schtasks /create /ru system /sc onstart /tn aaaa /tr "C:\WINDOWS\syst
em32\net.exe use g: \\server.net\sysvol pass /user:user"
 
Вопрос 2:
Нужно с одного компа выключать другие, выдавать для этого админские права не хочется...
 
Через shutdown.exe это возможно сделать, достаточно наделить юзера (от чьего имени стартует эта софтина) следующими правами: SeShutdownPrivilege и SeRemoteShutdownPrivilege, но тут возникают проблемы - она не позволяет выставить таймаут и не позволяет возможности юзеру отменить процедуру выключения... Другая чудная утилита psshutdown (от Sysinternals) теоретически этих проблем не имеет, но работает только под админским аккаунтом, видимо это связано с необходимостью запуска сервиса на удаленных компа (хотя пермишн на запуск сервиса я тоже выдавал, но безтолку, уверенно говорит Access denied)...
 
Может есть что ни будь вроде psshutdown (с возможностями по настройке таймаута и интерактивной отмены) но работающее без админских прав?

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 00:58 01-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
диски мапяться в сесии пользователя - ты не можеш видеть доск замапленый у другого пользователя, наксколько я понимаю.
почему пользователь сам не может замапить диск? можно его попросить ввести логин пароль в логон скрипте или же сделать это самостоятельно.
 
попробуй poweruser

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 11:55 01-02-2007
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
если диск мапится системой (от имени системы) то его видно всем... но при попытке зайти на него винда использует реквизиты текущего юзера, и если они "не канают" посылает, вместо того чтобы спросить другие реквизиты... (как например это сделано на фтп - если анонимус не пускает)
 
Возникла идея заняться энергосбережением, отправлять компы в suspend\hibernate через определенное время.
 
Для начала хотелось бы выяснить как часто и в каких объемах простаивают компы... пока идеей вижу установку на скринсейвер некоего скрипта который будет писать в лог кол-во минут работы...
 
Никто данный вопрос не исследовал? Имеет вообще смысл?

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 13:39 01-02-2007
mistx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
сделал, он просто мне выдал,выключения не произошло
D:\>shutdown-final.bat
shuting down \\STUDENT1
shutdown /s /m \\STUDENT1
 
shuting down \\STUDENT11
shutdown /s /m \\STUDENT11
 
shuting down \\STUDENT12
shutdown /s /m \\STUDENT12
 
shuting down \\STUDENT13
shutdown /s /m \\STUDENT13
 
shuting down \\STUDENT14
shutdown /s /m \\STUDENT14
 
shuting down \\STUDENT2
shutdown /s /m \\STUDENT2
 
shuting down \\STUDENT5
shutdown /s /m \\STUDENT5
 
shuting down \\STUDENT7
shutdown /s /m \\STUDENT7
 
shuting down The
shutdown /s /m The

Всего записей: 765 | Зарегистр. 13-01-2005 | Отправлено: 07:27 02-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
а почему пользователь сам не может примапить?
 
mistx
а ты смотрел что сделал? команда echo выводит на экран. уберои ее
shutdown /s /m %%q  
вместо
echo shutdown /s /m %%q  

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 09:51 02-02-2007
lokiSSE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа автоматизаторы - есть следующий код  
On Error Resume Next  
Set objSysInfo = CreateObject("ADSystemInfo")  
Set objNetwork = CreateObject("Wscript.Network")  
Set wshNetwork = CreateObject("WScript.Network")  
Set CheckDrive = WshNetwork.EnumNetworkDrives()  
strUserPath = "LDAP://" & objSysInfo.UserName  
Set objUser = GetObject(strUserPath)  
For Each strGroup in objUser.MemberOf  
strGroupPath = "LDAP://" & strGroup  
Set objGroup = GetObject(strGroupPath)  
strGroupName = objGroup.CN  
AlreadyConnected = False  
Select Case strGroupName  
 
Case "Проверка"  
wshNetwork.RemoveNetworkDrive "K:",true,true
'WshNetwork.MapNetworkDrive "K:", "\\data\public"  
'objNetwork.MapNetworkDrive "s:", "\\data\public"  
 
End Select  
Next
 
Но этот код не работает, суть - в зависимости от группы подключить(это работает если раскоментить). а главное - отключить диски. Причем если диск подключить на букву скриптом - то он отключается скриптом нормально. А если подключаем диск к примеру через мой компьютер - то скрипт не может отключить его. Грубо говоря не отключает диск. Что не так ?

Всего записей: 244 | Зарегистр. 15-06-2005 | Отправлено: 13:03 02-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lokiSSE
грубо нужно
 
rightman = false
 
For Each strGroup in objUser.MemberOf  
 strGroupPath = "LDAP://" & strGroup    
 Set objGroup = GetObject(strGroupPath)  
 strGroupName = objGroup.CN  
 
 Select Case strGroupName  
   Case "Проверка"  rightman = true
  End Select  
 
Next  
 
if rightman then
 WshNetwork.MapNetworkDrive "K:", "\\data\public"  
else
 wshNetwork.RemoveNetworkDrive "K:",true,true
end if

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 13:39 02-02-2007
strizhakovs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Ктонить знает, как узнать сетевой путь, конкретного сетевого диска при помощи скрипта.
 
Есть такой скрипт, который перебирает все сетевые диски и определяет сетевые пути к ним.
 
'************************************************************
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set colDrives = WSHNetwork.EnumNetworkDrives
If colDrives.Count = 0 Then
    MsgBox "Подключенных сетевых дисков нет",     _
           vbInformation + vbOkOnly,              _
           "Работа с WSHNetwork"
Else
    strMsg = "Текущие сетевые подключения: " & Chr(10)
    For i = 0 To colDrives.Count - 1 Step 2
        strMsg = strMsg & Chr(10) & colDrives(i) & Chr(9) & colDrives(i + 1)
    Next
     
    MsgBox strMsg,                                _
           vbInformation + vbOkOnly,              _
           "Работа с WSHNetwork"
End If  
'***************************************************************
 
А мне нужно немного другое.  
Нужно осуществить проверку на сетевой диск с определенной буквой. Например:
проверить подключен ли сетевой диск М: и если да, то узнать какой у него сетевой путь, и если сетевую путь верен, то ничего не делать, а если не верен (не равен той переменной с которой его сравнивают), то перемапить диск M: с правильным сетевым путем.
 
Как можно это реализовать? точнее как определить сетевой путь, допустим диска М: , а все остальное я сам напишу . Но если кто напишит все, буду очень признателен.
 

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 15:32 02-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strizhakovs
так у тебя все написано, осталось вставить условия

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 15:48 02-02-2007
strizhakovs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Я понимаю, но проблема в том, что сетевых дисков много и нехотелось каждый раз циклом гонять, есть ли другой метод определения

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 15:56 02-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strizhakovs
не так много =)
в конце концов - можно просто переподключить диск...

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 16:30 02-02-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
коллеги, прошу помощи!
передо мной стоит задача перенести exchange с DC на отдельный сервер.
сам перенос exch труда не составит и перенаправление работающих в данное время пользователей на новый exch тоже труда не составит, т.к. старый exch после переноса будет еще 1 неделю работать и сам красиво всех перенаправлять.
а вот как с помощью vbs сменить адрес почтового сервера у тех пользователей которые к примеру в данный момент отсутсвуют на рабочих местах и появятся на работе после вывода из строя старого exch?
т.е. если быть локаничным - то как с помощью vbs помеять у пользователей адрес exchange на новый? клиенты приемущественно outlook 2003 и местами еще outlook xp

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 00:22 04-02-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
north_crow
похоже - это, тк нужно редактировать профиль.
хттп://www.microsoft.com/downloads/details.aspx?FamilyID=56F45AC3-448F-4CCC-9BD5-B6B52C13B29C&displaylang=en

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 10:05 05-02-2007
strizhakovs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel

Цитата:
не так много =)  

 
если не так много значит еще есть способы...
Может кто знает еще альтернативный вариант определения пути сетевого диска?

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 12:50 05-02-2007
mistx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
волшебник!!!
спасибо огромное.

Всего записей: 765 | Зарегистр. 13-01-2005 | Отправлено: 12:51 06-02-2007
TeX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые !
Помогите новичку в скриптах.
Необходимо получить такие атрибуты файла как:
OriginalFilename  
InternalName  
CompanyName  
ProductName  
Приведите пример.

Всего записей: 107 | Зарегистр. 23-10-2003 | Отправлено: 16:58 06-02-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru