Архивация по сети с помощью WSH

Windows Script Host (WSH), WMI, vbs скрипты и т.д. Создание и применение скриптов.

Модератор: Модераторы

Новый участник
Сообщения: 4
Зарегистрирован: 11 ноя 2005, 09:50

Сообщение Джек » 11 ноя 2005, 11:46

Вступление:
Есть сеть 50 компьютеров (разные Ос: 95/98/XP) и Win2k Server SP4 (файловый, без контролера доменов и без Актив Директори). Так повелось, что админ должен оставться после работы и производить архивацию двух основных программ (в последствии ещё две новые прибавятся). Архивация продолжительная: одна программа - 1 час, другая - 20 минут. Мало того, что архивация задерживает админа на работе, так ещё на это влияют сотрудники. Дело в том, что архивацию следует запускать после того, как все закончат работу (а бухгалтерия может задержаться и на 3 часа). Ну, принято у нас именно так это делать.

Сам вопрос:
Хочется сделать на Win2k Server SP4 автоматизацию с помощью WSH.
1) В назначенное время запустить сканирование сети на наличие включённых компьютеров (ping, а может быть: файл или папка в сети существует).
2) Если все рабочие станции выключены, то запустить архивацию двух программ, стоящих на Win2k Server SP4. Если хоть одна рабочая станция включена, то отложить архивацию и запустить сканирование сети позже (через определённое время).
3) После архивирования выключить Win2k Server SP4.
Я понимаю, что в задаче есть некоторая 'неуклюжесть', но вызваны они тем, что в нашей организации такие порядки. Условия именно такие и их пересматривать не зачем.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 11 ноя 2005, 12:14

Джек
1. шедулер.
2. и т.д. кусок кода как выполнять программы я привёл.
всё реализуемо.
по выключению курим shutdown /?


Код
'********************************************************************
' Ping
'********************************************************************
Function ping(hostName)
   Set wshShell = CreateObject("WScript.Shell")
   ping = Not CBool(wshShell.run("ping -n 1 " & hostName,0,True))    
End Function

[/code]
нет времени разбираться — наймите того, кто знает.

Новый участник
Сообщения: 4
Зарегистрирован: 11 ноя 2005, 09:50

Сообщение Джек » 11 ноя 2005, 16:39

Извиняюсь за навязчивость и наивность, но расчитывал найти готовое решение. В WHS понимаю едва-едва и вряд ли удастся быстро его премудрости освоить (вместе с JS и VBS).
И ещё: shutdown на Asus P4800 не катит (не разобрались почему выключает до сообщения "теперь питание можно выключить"), поэтому приходится подключать стороннюю прогу.
Если можно, пожалуйста, напишите весь скрипт полностью (архиватор лучше задействовать встроенный в Win2k server, а выключение компа через стороннюю прогу).

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 11 ноя 2005, 17:37

Джек
Цитата
пожалуйста, напишите весь скрипт полностью
[/quote]

;) мне-то это зачем?
нет времени разбираться — наймите того, кто знает.

Новый участник
Сообщения: 4
Зарегистрирован: 11 ноя 2005, 09:50

Сообщение Джек » 15 ноя 2005, 10:10

Stratofortress:
Цитата
мне-то это зачем?
[/quote]

То-то и оно! Собственная лень требовательна к чужой лени :) !
Эхе-хе! Ну, хоть посоветуйте к кому обратиться, на каком форуме могут помочь, где найти готовый скрипт или где найти знатока по созданию подобных скриптов?
Или же! Всё-таки, Stratofortress, если выдастся свободное время и будет необходимое настроение, может всё-таки возьмётесь помочь мученику? ;)
хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 15 ноя 2005, 13:08

Джек
Цитата
посоветуйте к кому обратиться, на каком форуме могут помочь, где найти готовый скрипт или где найти знатока по созданию подобных скриптов?
[/quote]

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

Цитата
может всё-таки возьмётесь помочь мученику?
[/quote]

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

Новый участник
Сообщения: 4
Зарегистрирован: 11 ноя 2005, 09:50

Сообщение Джек » 15 ноя 2005, 15:51

И на этом спасибо!

Новый участник
Сообщения: 1
Зарегистрирован: 16 ноя 2005, 12:54

Сообщение Nemo » 16 ноя 2005, 13:17

Вопрос: можно ли на Jscript при получении списка файлов с объекта-папки
(fc = new Enumerator(oFolder.files)) какими-либо стандартными средствами задать сортировку файлов в списке при его создании (в данном случае fc, доступ к отд. файлу через fc.Item(порядк. НОМЕР файла))?
Дело в том, что при получении списка с oFolder.files, файлы в fc нумеруются каким-то отфонарным способом - то ли по порядку создания файлов в каталоге - и то, замечено, не всегда; короче, наверняка и сам Миркософт-Билгейц этого не знает...
А нужно именно по, например, алфавиту имен файлов. Можно, конечно, создать массив из имен файлов и их атрибутов, отсортировать его - но это все - мозго...ство большое. Не знаете ли стандартных средств для решения?

Для примера привожу скриптик на Jscript, Показывает порядок следования файлов в папке, переданной через параметр в командной строке:

var wshsh = WScript.CreateObject("WScript.Shell"),
fso = WScript.CreateObject("Scripting.FileSystemObject"),
oArgs = WScript.Arguments,
ArchiveDir = fso.getFolder(oArgs(0));

ShowFiles(ArchiveDir);

// Показывает порядок следования файлов в .files
function ShowFiles(CFPath) {
var fc = new Enumerator(CFPath.files),
f = "";
for (i = 1; !fc.atEnd();fc.moveNext(),i++) {
f += i + " - " + fso.getFile(fc.item(i)) + '\n'; // get first file in list
}
wshsh.Popup(f);
return;
}

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4