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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Открыть новую тему     Написать ответ в эту тему

ShriEkeR



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части: 1 | 2
 
   

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

 
Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на которые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от 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

Всего записей: 6382 | Зарегистр. 27-09-2004 | Отправлено: 21:07 23-05-2011 | Исправлено: Jovanotti, 23:29 21-03-2012
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Лады Alukardd, ток нестоит грубить, проехали, кажись нашёл я способ:
 
setlocal enabledelayedexpansion
for %%d in (i) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d
echo %zz%
if %zz%==i echo yes!
else echo no disc

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 22:08 23-06-2011 | Исправлено: firsteducation, 22:11 23-06-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто нибудь может подсказать почему вылазит ошибка: "непредвиденное появление goto" в этом скрипте:
 
@echo off
setlocal enabledelayedexpansion
for %%d in (i) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d
if %zz%==0 goto sad2
@echo yes it work!
:sad2
@echo no disc
pause
 

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 14:12 25-06-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
for %%d in (i) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d  
а что тут у тя такое? ты это сам наворатил???
For .. in() подразумевает что в () множество значений  по которым идет перебор
зачем %%d:>nul 2>&1?
 в 2 содержится описание и сообщение ошибки.
2>&1 -- ваще бред.
zz содержит !zz!,i т.о. дальнейшее условие ваще никогда не выполнится!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 16:57 25-06-2011
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation Здесь тема не для разбора синтаксиса скриптов, а для вопросов их эффективного применения в системном контексте.
На "кошечках" тренируются здесь:
Задачи на bat-файлах
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 16982 | Зарегистр. 13-06-2007 | Отправлено: 17:09 25-06-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY здорово, нет это я с форума слямзил, потом поменял кое где, и вот вроде работает:
 
@echo off
setlocal enabledelayedexpansion
for %%d in (i) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d
if "%zz:~1,1%"=="i" goto q1
@echo no disc
pause
exit
:q1
@echo %zz:~1,1%
pause
exit

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 19:33 25-06-2011
me2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть у кого-то\видел кто-то готовый скрипт по заихиванию в AD в поле дискришен, у компьютера, последнего пользователя который залогинен?

Всего записей: 153 | Зарегистр. 01-10-2007 | Отправлено: 21:05 18-07-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
me2k
Плохо ищите!
Уже начал сам писать для вас (интересно стало), в ходе писанины искал справку различную - Ссылка

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6371 | Зарегистр. 28-08-2008 | Отправлено: 22:34 18-07-2011
user5nov

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, возникла небольшая проблемка. 40 пользователей 1С, хотелось бы раздать файл ibases.v8i всем пользователям в терминале.  
Написал скрипт cmd:  
@echo off  
Copy /Y \\server\NETLOGON\ibases.v8i  %userprofile%\AppData\Roaming\1C\1CEStart"  
@exit  
 
Пользователи заходят на сервер терминалов.  
Бага в том что при логине пользователя файл всегда перезаписывается. Возможно как-то сделать проверку на наличие этого файла в профиле?, тобишь если есть файл, то  не трогать, если нету то скопировать.  
Плиз, Помогите его доработать, если это возможно.
Спасибо.

Всего записей: 111 | Зарегистр. 19-10-2005 | Отправлено: 15:12 05-08-2011 | Исправлено: user5nov, 16:48 05-08-2011
attaattaatta



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

Цитата:
@echo off  
If not exist %userprofile%\AppData\Roaming\1C\1CEStart\ibases.v8i Copy /Y \\server\NETLOGON\ibases.v8i %userprofile%\AppData\Roaming\1C\1CEStart"  
 @exit  


Всего записей: 1114 | Зарегистр. 25-09-2007 | Отправлено: 09:58 06-08-2011
user5nov

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
attaattaatta
почему-то неработает, при входе под новым пользователем, файл не коипуется, если удалить его вручную ibases, и запустить скрипт то всё в порядке. Возможно из за того что изначально не создаётся папка 1С
Видимо в скрипте нужно добавить команду на создание папки.
 
Правильно ли теперь выглядит?
 
@echo off
mkdir "%userprofile%\AppData\Roaming\1C\1CEStart\"
If not exist "%userprofile%\AppData\Roaming\1C\1CEStart\ibases.v8i" Copy /Y "\\server\NETLOGON\ibases.v8i" "%userprofile%\AppData\Roaming\1C\1CEStart"
@exit

Всего записей: 111 | Зарегистр. 19-10-2005 | Отправлено: 14:21 08-08-2011 | Исправлено: user5nov, 14:33 08-08-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите, почему данный скрипт не отрабатывает, при автоматеческом запуске из реестра из папки со скриптом копируется только папка, а файлы берутся из "мои документы", что нужно подправить?:
 
set zz=  ;затираем переменную
setlocal enabledelayedexpansion
for %%d in (e) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d ;проверка жёсткий диск или нет
if "%zz:~1,1%"=="e" goto a1 ;если да продолжаем
goto qw
:a1
if exist e:\NFS-Most goto qw ;проверяем есть ли уже папка которую копируем
set DV=E:  
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt ;ещё одна проверка
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 goto StCopy1
goto qw
:StCopy1
set ff=%~p0
xcopy "%cd%" "%DV:~0,2%%ff:~-11%" /C /E /H /Y /Q ;процесс копирования из папки с активным скриптом
:qw

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 11:38 10-08-2011
chip1984

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, нужна помощь по cmd. Есть файл каталога ldap (*.ldif) который имеет структуру:
 
dn: cn=Иванов Иван Петрович
title:  
givenName: Иванов Иван Петрович
cn: Иванов Иван Петрович
mail: ivanov_ip@m2.zao.ru
sn: Иванов Иван Петрович
 
dn: cn=Петров Андрей Сергеевич
title:  
givenName: Петров Андрей Сергеевич
cn: Петров Андрей Сергеевич
mail: petrov_as@h07.zao.ru
sn: Петров Андрей Сергеевич
 
..................
 
известны две переменные
%username% имя пользователя есть в строке  mail: petrov_as@h07.zao.ru   до @  (petrov_as)
%dnsname% имя почтового сервера есть в строке   mail: petrov_as@h07.zao.ru   после @    (h07.zao.ru)
 
зная эти данные нужно вытащить в переменную %name% значение  Петров Андрей Сергеевич
Как это реализовать?

Всего записей: 1 | Зарегистр. 10-02-2008 | Отправлено: 18:22 10-08-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Странно, почему молчание? Кто нибудь может подсказать почему скрипт в таком виде копирует не содержимое папки в которой лежи, а из папки мои документы:
 
set zz=  ;затираем переменную
setlocal enabledelayedexpansion
for %%d in (e) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d ;проверка жёсткий диск или нет
if "%zz:~1,1%"=="e" goto a1 ;если да продолжаем
goto qw
:a1
if exist e:\NFS-Most goto qw ;проверяем есть ли уже папка которую копируем
set DV=E:  
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt ;ещё одна проверка
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 goto StCopy1
goto qw
:StCopy1
set ff=%~p0
xcopy "%cd%" "%DV:~0,2%%ff:~-11%" /C /E /H /Y /Q ;процесс копирования из папки с активным скриптом
:qw
 
Когда код был несколько иного рода всё работало как надо, вот старый код:
 
if exist e: goto a1
goto qw
:a1
if exist e:\NFS-Most goto qw
set DV=E:
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 goto StCopy1
goto qw
:StCopy1
set ff=%~p0
xcopy "%cd%" "%DV:~0,2%%ff:~-11%" /C /E /H /Y /Q
:qw
 
запускаю я это дело из реестра при старте системы vbs скриптом start-copy.vbs:
 
On Error Resume Next
Wscript.Sleep 18000
Dim LaunchDir, FSO, WSHShell  
Set WSHShell = WScript.CreateObject("WScript.Shell")
LaunchDir=WScript.ScriptFullName
LD=mid(LaunchDir,1,inStr(LaunchDir,"start-copy.vbs")-1)
WSHShell.Run LD&"game.bat", 0, false
 
Почему новый скрипт копирует из нужной папки только файл e1.txt, а остальное из папки администратор?

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 11:48 11-08-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ВОПРОСЫ ПО CMD и BAT следует задавать в соответствующей ветке!!!
Если ветка не открыта -- пинать соответствующего модератора!!!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 15:00 12-08-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY
 а не можешь подсказать что нужно дописать в этом скрипте:
 
On Error Resume Next
Wscript.Sleep 18000
Dim LaunchDir, FSO, WSHShell  
Set WSHShell = WScript.CreateObject("WScript.Shell")
LaunchDir=WScript.ScriptFullName
LD=mid(LaunchDir,1,inStr(LaunchDir,"start-copy.vbs")-1)
WSHShell.Run LD&"game.bat", 0, false

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 15:23 12-08-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
если старый скрипт воркает, тот нах те комменты в теле пиши их сверху, используя REM
символы ; и , Используется для разделения параметров команды  
команда1 параметр1;параметр2  

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 16:00 12-08-2011 | Исправлено: YNY, 16:01 12-08-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В новом скрипте есть возможность обойти копирование на картридер!

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 07:07 13-08-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
Все вот это: for %%d in (e) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d ;проверка жёсткий диск или нет  
if "%zz:~1,1%"=="e" goto a1 ;если да продолжаем
-- какой-то бред, т.к. zz=!zz!, а "%zz:~1,1%" ваще возвращает "  "!!!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 17:47 15-08-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY, но тогда почему в cmd этот скрипт на экране показывает вот такую картину:  
 
e==e goto a1
echo work!
типа нажмите клавиши
 
Я не знаю где исправлять скрипт, вот и задал вопрос, может есть способы.
 
Добавлено:
Ах да, ты наверное не имеешь на компе хард помеченный буквой диска e: ?

Всего записей: 93 | Зарегистр. 19-10-2010 | Отправлено: 22:30 15-08-2011
newfeofan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток. Помогите пожалуйста написать скрипт или в какую сторону рыть при его написании. Экспа очень скромная по написанию VBS скриптов. Скрипт должен уметь:
1) Искать во всех профилях папку history.
2) Перемещал папку на файловую шару.
3) На файловой шаре создавал для каждого профиля, где есть history, папку вида:
ComputerName\UserProfile\history и туда копировал соответственно папку.

Всего записей: 7 | Зарегистр. 23-04-2007 | Отправлено: 14:51 16-08-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 3


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru