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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

 

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток
Задача: есть файлик ini, на клиентах его надо всем массово заменить, если дата модификации его меньше 10.12.2008, если дата больше то заменять не надо, если файла нет на клиенте то ничего делать не надо  
Файлик лежит на шаре  
Вот "написал" тут скриптик но чет он меняет в любом случае т. е. как бы ему пофиг на дату изменния файла.... а как чтоб не делал ничего если файла нет, не знаю помогите знающие люди.
Писал по шаблону так что сильно не пинайте...  
 

Код:
 
'Copy ABBY Lingvo config file
set net=CreateObject("WScript.Network")
strComputer=net.ComputerName
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "H:\Distributives\Software\Abby Lingvo 11 cfg\Lingvo.ini" , "C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini",True
Set objFile = objFSO.GetFile("C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini")
if objFile.DateLastModified<"10.12.2008" then
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2:Win32_Process")
Error = objWMIService.Create("net send ws tnsnames overwritted", null, null, intProcessID)
end if
 

Пошел другим путем... думаю более легким... но все равно не знаю как сделать есть код :
 

Код:
Dim FSO,FileName 'Объявляем переменные
'Создаем объект FileSystemObject
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
FileName = "C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini"
if  FSO.FileExists(FileName)  Then
  'Выводим информацию на экран
  WScript.Echo "Файл " & FileName & " существует"
else
  'Выводим информацию на экран
  WScript.Echo "Файл " & FileName & " не существует"  
end if
 

 
Он проверяет наличие файла на диске... если находить то выводит на экран что существует если нет то наоборот... так вот как бы это заменить на замену строки в файле т.е.
Если файл есть то найти в нем строку АААА и замнеить ее на BBBB если файл не найден то ничего не делать....

Всего записей: 374 | Зарегистр. 16-08-2005 | Отправлено: 15:59 10-12-2008 | Исправлено: DiZka, 09:40 11-12-2008
Feeer

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

Цитата:
[/q]
[q]Код:Dim FSO,FileName 'Объявляем переменные  
'Создаем объект FileSystemObject  
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")  
FileName = "C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini"  
if  FSO.FileExists(FileName)  Then  
  'Выводим информацию на экран  
  WScript.Echo "Файл " & FileName & " существует"  
else  
  'Выводим информацию на экран  
  WScript.Echo "Файл " & FileName & " не существует"  
end if  
 
 
 
Он проверяет наличие файла на диске... если находить то выводит на экран что существует если нет то наоборот... так вот как бы это заменить на замену строки в файле т.е.  
Если файл есть то найти в нем строку АААА и замнеить ее на BBBB если файл не найден то ничего не делать....

 
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini")) {
var f = fso.OpenTextFile("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini", 1, false);
var a="Строка для замены";  
var b="На что меняем";  
var p, s='',q='';
    for (var l=1;f.AtEndOfStream != true;l+1)
   {    
       
     s = f.ReadLine();
     if(a==s){p=s.replace(a,b); q = q + p + "\n";}; else {q = q + s + "\n"}
         
   };
f.Close( );  
var f = fso.OpenTextFile("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini", 2, true);
 
f.Write(q);  
f.Close( );  
}; else { WScript.Echo("Файла не существует")};
 
Должно работать

Всего записей: 9 | Зарегистр. 25-08-2008 | Отправлено: 11:39 12-12-2008
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, есть скрипт, который в одном текстовом окне делает Select all + Copy, в другое окно делает Paste (через нажатие клавиш). Но хотелось бы еще добавить промежуточную процедуру, фильтрование текста в буфере обмена, а именно удалить строки содержащие +++CLOSE(любые символы)+++, и только после этого вставить текст в нужное окно.
 
Заранее благодарен!

Всего записей: 902 | Зарегистр. 30-05-2006 | Отправлено: 17:32 12-12-2008
target27

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я думаю тут могут возхникнуть сложности. Какой текст копируешь? Какая кодировка и т.д.

Всего записей: 3 | Зарегистр. 09-09-2008 | Отправлено: 09:51 13-12-2008 | Исправлено: target27, 09:54 13-12-2008
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кодировка UTF8, текст такого вида:
 
blabla sdlkfjsldkfjl sdlfkjsld kfsldkfjlsdjf
+++CLOSE 23123+++
sflksdlkfs
sdfs
d
sfsfssdf $%#% ^#%^$
#$%%@@$#
dsadsdfsdf
+++CLOSE 23523+++
+++CLOSE 23623+++
+++CLOSE 123993+++
+++CLOSE 142223+++
sflkdfjlssd
sd
fdsdf
+++CLOSE 123993+++
*** slfdksl ** sdlfsd
 
Надо избавиться от +++CLOSE *+++

Всего записей: 902 | Зарегистр. 30-05-2006 | Отправлено: 11:24 13-12-2008 | Исправлено: gap5, 11:26 13-12-2008
DiZka



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Feeer а это вобще vbscript ? не jscript -ли?

Код:
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini")) {
var f = fso.OpenTextFile("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini", 1, false);
var a="PathToLicenseBase=\\Srvbackdc\ABBYY Lingvo 11 remote install\License Manager";  
var b="PathToLicenseBase=\\Srvexchshvtn\ABBYY Lingvo 11\License Manager";  
var p, s='',q='';
    for (var l=1;f.AtEndOfStream != true;l+1)
   {    
       
     s = f.ReadLine();
     if(a==s){p=s.replace(a,b); q = q + p + "\n";}; else {q = q + s + "\n"}
         
   };
f.Close( );  
var f = fso.OpenTextFile("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini", 2, true);
 
f.Write(q);  
f.Close( );  
}; else { WScript.Echo("Файла не существует")};  

 
Ошибка:
Строка 1
Символ 28
Ошибка Предполагается наличие окончания инструкции
-----------------------------------
И еще написал вот что с горем пополам... функция та же только тупо замена файла.... хочу узнать по поводу криворукости написания этого кода? Скрипт вроде отрабатывается, но я сомневаюсь в чистоте его написания, тут все нормально или лучше подправить?  
 

Код:
Dim FSO,FileName 'Объявляем переменные
Set FSO = WScript.CreateObject("Scripting.FileSystemObject") 'Создаем объект FSO
Set objFSO = CreateObject("Scripting.FileSystemObject") 'Создаем объект objFSO
FileName = "C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini" 'Задаем переменную FileName
if  FSO.FileExists(FileName)  Then 'Проверка наличия Lingvo.ini
Set objFile = objFSO.GetFile("C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini") 'Создаем объект objFile
if objFile.DateLastModified<"15.12.2008" then 'Проверка даты создания Lingvo.ini
objFSO.CopyFile "H:\Distributives\Software\Abby Lingvo 11 cfg\Lingvo.ini" , "C:\Program Files\ABBYY Lingvo 11 English-Russian Dictionary\Lingvo.ini",True 'Копирование Lingvo.ini
end if
else
end if  

 
UPD: Помогите подправить скрипт скрипт не отрабатывает если получается вот так:
Если стоит DateLastModified<"15.12.2008" и сегодня 15.12.2008 скрипт работает нормалаьно отрабатывает... если ставишь в скрипте например DateLastModified<"12.12.2008" а сегодня 15.12.2008 скрипт перестает отрабатывать... т.е. если сегодня дата как в скрипте то скрипт работает, а если меньше то не работает....

Всего записей: 374 | Зарегистр. 16-08-2005 | Отправлено: 09:50 15-12-2008 | Исправлено: DiZka, 10:39 15-12-2008
Feeer

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

Цитата:
Feeer а это вобще vbscript ? не jscript -ли?  

 
jscript, проверил еще раз, работает без ошибок.

Всего записей: 9 | Зарегистр. 25-08-2008 | Отправлено: 15:51 15-12-2008
Feeer

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

Цитата:
UPD: Помогите подправить скрипт скрипт не отрабатывает если получается вот так:  
Если стоит DateLastModified<"15.12.2008" и сегодня 15.12.2008 скрипт работает нормалаьно отрабатывает... если ставишь в скрипте например DateLastModified<"12.12.2008" а сегодня 15.12.2008 скрипт перестает отрабатывать... т.е. если сегодня дата как в скрипте то скрипт работает, а если меньше то не работает....

Вот на jscript
 
var file = "C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini";
var fso = WScript.CreateObject("Scripting.FileSystemObject");
if (fso.FileExists("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\Lingvo.ini"))
{
var j = fso.GetFile(file);
var d = j.DateLastModified; // Дата изменения файла
MyDate = new Date (2008,11,18); //Контрольная дата (месяцы от 0 до 11 )
if (MyDate > d)
  {  
  var f = fso.GetFile("C:\\Distributives\\Software\\Abby Lingvo 11 cfg\\Lingvo.ini");
  f.Copy("C:\\Program Files\\ABBYY Lingvo 11 English-Russian Dictionary\\");  
  };
   
};

Всего записей: 9 | Зарегистр. 25-08-2008 | Отправлено: 12:07 17-12-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
многие достают с оптимизацией хрю, каждый раз выключать службы, [ntfs, point resored, TCP, и п.п.п...]  
Есть идея написать скрипт варианта игровой модели оптимизации хрю, так вот может уже есть реализация?...

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 17:23 17-12-2008
korn3r



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sc config сервис start= demand (disabled)
зачем тут скрипты?

Всего записей: 496 | Зарегистр. 19-10-2005 | Отправлено: 19:40 19-12-2008 | Исправлено: korn3r, 19:41 19-12-2008
IDaho

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нужен скрипт который будет пинговать гейт например, или другой комп в сети с периодичностью 1-4 минуты. если ответы есть то конец работы скрипта, в случае если ответа нет, то переподключать соединение. (рестарт сервиса или дизейбл енейбл подклюбчения по локальной сети.)
работать будет локально на проблемной машине

Всего записей: 62 | Зарегистр. 06-02-2007 | Отправлено: 14:03 24-12-2008
sptgt

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

Цитата:
:a
pause.exe -t 10
ping x.x.x.x
if ERRORLEVEL 0 goto a
rasdial /disconnect
rasdial ptn ptn ptn
goto a

Всего записей: 32 | Зарегистр. 02-05-2007 | Отправлено: 17:09 24-12-2008
vlazari



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть задача. 2 сервера терминальных Windows 2003 R2 SP2. оба в разных странах. между ними VPN. связь медленная, часто отключается, но всё настроено так, что если отключается один канал интернета - тут же переключается на другой, задержка ну секунд 5-10 при переключнии. В чём суть задачи. на одном терминале устновлен SQL 2000 SP4 и собственно сама 1с версия 7. Нужно, чтобы на втором сервере было всё зеркально как и на первом. Как сделать такую репликацию автоматической, чтобы реплицировалась и база и конфигурация (частые изменения). Если нет, то как настроить, чтобы можно было, например ночью делать репликацию из одной стороны в другую, изменить её (например) и потом реплицировать обратно. Подскажите как сделать лучше и надёжней?
 
PS размер самой базы 1с и конфигурации прошу не учитывать, это не важно. Трафик бесплатный.




оффтоп. /emx/

Всего записей: 243 | Зарегистр. 20-09-2005 | Отправлено: 00:40 25-12-2008 | Исправлено: emx, 19:45 17-01-2009
Vby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlazari
Как вариант, исользовать УРБД УРБД Мастер: автообмен для 1С

Всего записей: 775 | Зарегистр. 16-09-2004 | Отправлено: 00:48 25-12-2008
n0namer

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую. Нужно получить список подпапок папки. Есть следующий код на JScript:
 
var strComputer = ".";
var objWMIService = GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Directory WHERE Name LIKE 'c:\\<название любой существующей папки>%'", "WQL");
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
   var objItem = enumItems.item();
   WScript.Echo("Name:" + objItem.Name);
}
 
Где ошибка? Аналогичный код на VBScript отрабатывается нормально.

Всего записей: 3 | Зарегистр. 28-06-2007 | Отправлено: 12:23 31-12-2008
mihmig

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

Цитата:
ShafMAN

Подскажите если кто знает как с помощью WSH узнать размер графического файла (высота, ширина)?
 
Вот мой когда-то написанный батник для авторотации фоток (чтобы лежа все были, на печать посылать)
 
 
nconvert.exe -info %1 |findstr "Width" >1.txt
set w=0
FOR /F "eol=_ tokens=1,2 delims=: " %%i in (1.txt) do @SET w=%%j  
 
nconvert.exe -info %1 |findstr "Height" >1.txt
set h=0
FOR /F "eol=_ tokens=1,2 delims=: " %%i in (1.txt) do @SET h=%%j  
 
echo width=%w% and height=%h%  
if %w% LSS %h% nconvert -jpegtrans rot90 %1    

 
напишите по аналогии WSH скрипт
nconvert.exe брать там же где и xnview.

Всего записей: 274 | Зарегистр. 25-09-2007 | Отправлено: 23:55 04-01-2009
YNY

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

Цитата:
n0namer
for (; !enumItems.atEnd(); enumItems.moveNext()) {
пустое место в конструкции for на первой позиции не допустимо:
 
синтаксис для For  
 
либо вот эту конструкцию

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:03 11-01-2009
wmulke

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток. Предварительно искал по форуму ответ на мой вопрос, но то что мне нужно не нашел. Трабл таков. Мне необходимо, что бы происходил авто Log Off на серваке с Windows 2003 по истечении определенного времени. Это нужно для того что бы, сервер логофил Админов забывших сделать логофф. Желательно это осуществлять через скрипт батник, запускаемый при входе в систему. Через GPO сделать это не могу, так как нет на него доступа. Или же можно с помощью иных средств, но не готовых программ, тем более платных. Заранее благодарен

Всего записей: 2 | Зарегистр. 11-01-2009 | Отправлено: 15:50 11-01-2009
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wmulke
пропиши logoff.exe скринсейвером

Всего записей: 512 | Зарегистр. 31-03-2004 | Отправлено: 17:19 11-01-2009
wmulke

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

Цитата:
пропиши logoff.exe скринсейвером

Как его туда прописать?

Всего записей: 2 | Зарегистр. 11-01-2009 | Отправлено: 12:05 12-01-2009 | Исправлено: wmulke, 12:10 12-01-2009
   

Страницы: 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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru