Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Автоматизация администрирования

Автор: Smitis
Дата сообщения: 14.09.2004 19:15
AlexSSS

Цитата:
каким образом можно закриптовать батник или любой другой скриптовый файл, оставив его исполняемым (т.е. bat или exe или что-то подобное).
В скрипт нужно встроить запуск проги под локальным админом через RUNAS, однако и имя и пароль локального админа светить нельзя


WSH поддерживает криптование (файлы JS и VBS превращаются в JSE и VBE).
4NT поддерживает "компиляцию" в нечто плохочитаемое
Автор: LeniVetc
Дата сообщения: 15.09.2004 16:14
WSH это во многих случаях (почти во всех) очень приятно.
Правда не весгда Я уже устал придумывать и искать, как можно с помощью WSH забрать файл с адреса http://server/folder/file и положить его на локальный диск. Может кто-нить подскажет? Заранее спасибо.
Автор: Smitis
Дата сообщения: 15.09.2004 18:04
LeniVetc

Цитата:
как можно с помощью WSH забрать файл с адреса http://server/folder/file и положить его на локальный диск.

Самый простой способ - запустив внешнюю утилиту, поддерживающую ком. строку. Я для этих целей использую wget. Хотя сетевые черви это делают как-то через ActiveX
Автор: volkanin
Дата сообщения: 17.09.2004 20:46
LeniVetc

Цитата:
как можно с помощью WSH забрать файл с адреса http://server/folder/file и положить его на локальный диск

WinHTTP - http://msdn.microsoft.com/library/en-us/winhttp/http/winhttp_start_page.asp
вот пример оттуда:

Код:
function getText(strURL){
var strResult;
try{
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5");
var temp = WinHttpReq.Open("GET", strURL, false);
WinHttpReq.Send();
strResult = WinHttpReq.ResponseText;
}
catch (objError){
strResult = objError + "\n"
strResult += "WinHTTP returned error: " + (objError.number & 0xFFFF).toString() + "\n\n";
strResult += objError.description;
}
return strResult;
}
WScript.Echo(getText("http://www.microsoft.com/default.htm"));
Автор: Jovanotti
Дата сообщения: 18.09.2004 13:21
AlexSSS
Smitis
Зашифровать то можно
но и расшифровать легко получается
http://forum.ru-board.com/topic.cgi?forum=55&topic=2192#1
http://forum.ru-board.com/topic.cgi?forum=55&topic=3922#1
http://www.klaphek.nl/nr6/scrdec.html
Автор: Smitis
Дата сообщения: 20.09.2004 19:00
volkanin
ЗдОрово! Только не дают с мелкософта WinHTTP скачать
Автор: merlkerry
Дата сообщения: 21.09.2004 12:56
Smitis

Цитата:
ЗдОрово! Только не дают с мелкософта WinHTTP скачать


для всех более менее новых OCей версия 5.1 катит на ура


Код: var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
Автор: Smitis
Дата сообщения: 21.09.2004 21:28
merlkerry

Цитата:
для всех более менее новых OCей версия 5.1 катит на ура

Думаю что катит. Но скачать где? На мелкософте нет ссылок даже на версию 5.0!
Автор: distance
Дата сообщения: 22.09.2004 11:43
volkanin
А можно связкой WSH + WinHTTP забрать бинарный файл?
то есть winhttp его забирает, но никак не получается записать на диск...
похоже, wsh работает только с текстовыми файлами...
Автор: K2D
Дата сообщения: 22.09.2004 13:51
Кто нибудь знает как сделать что бы можно было пользователя задавать в параметрах скрипта (logon) т.е. необходим параметр на UserName

Option Explicit

Dim CompName
Dim GroupName, oGroup
Dim UserName, oUser
Dim DomainName

CompName = "MyComp"
GroupName = "Administrators"
GroupName = "Администраторы"
UserName = "имя"
DomainName = "домен.com"

If GroupName = "Administrators" Then
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",user")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
Set oGroup = Nothing
Set oUser = Nothing
Elseif GroupName = "Администраторы" Then
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",user")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
Set oGroup = Nothing
Set oUser = Nothing
End If
Автор: Begemotus
Дата сообщения: 22.09.2004 13:58
Кстати, по поводу массовой смены пароля админа на рабочих станциях. Если я пишу
Код:
systemstartup.bat:
net user administrator xxx
Автор: distance
Дата сообщения: 22.09.2004 14:32
K2D
может тут какая то хитрость, но почему нельзя написать:
if GroupName == "Administrators" or GroupName = "Администраторы" then ...

это мне напомнило один код...

// булевская переменная
bOk = some_function();
if (bOk)
return true;
else
return false;

))
Автор: K2D
Дата сообщения: 22.09.2004 16:00
distance

Спасибо за совет тоже работает. Но меня интересует как сделать чтобы добавлять не одного пользователя или группу а например 3.
Автор: merlkerry
Дата сообщения: 22.09.2004 17:24
Smitis

Цитата:
Но скачать где?

зачем же качать ??? он уже есть в системе
Автор: distance
Дата сообщения: 22.09.2004 17:34
K2D

Цитата:
Спасибо за совет тоже работает. Но меня интересует как сделать чтобы добавлять не одного пользователя или группу а например 3.

да хоть 10

с vbs я увы не дружу, вот как это может выглядеть на js

var users = ["user1", "user2", "user3"];

for(var i=0; i<users.length; i++)
{
var user = users[i];
// получаешь очередное имя юзера из массива,
// дальше делаешь с ним, что задумал
}
Автор: K2D
Дата сообщения: 23.09.2004 10:04
Подскажите как сделать правильно это скрипт запускаю из FAR Managera, 1.vbs имя_группы1 имя_группы2 ,но он нехочет добавлять обе группы а только одну подскажите как сделать чтобы обе заводил.

Option Explicit
Dim CompName
Dim GroupName, oGroup
Dim UserName, oUser, objArgs
Dim DomainName

Set objArgs = WScript.Arguments
UserName = objArgs(0)
UserName = objArgs(1)

CompName = "FAR"
GroupName = "Administrators"
GroupName = "Администраторы"
DomainName = "домен.com"

If GroupName = "Administrators" or GroupName = "Администраторы" Then
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",group")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
Set oGroup = Nothing
Set oUser = Nothing
End If
Автор: amitophia
Дата сообщения: 23.09.2004 13:15
K2D
а почему 2 раза UserName и 2 раза GroupName? сделай UserName1/2 и GropuName1/2
и добавляй снаала Groupname1, а потом 2
Автор: K2D
Дата сообщения: 23.09.2004 13:50
У меня теперь новая проблема почему то недобавляет группы на английский виндовс 2000 в русский запросто

Option Explicit
Dim CompName
Dim GroupName, oGroup
Dim UserName, oUser, objArgs
Dim DomainName,i, text

Set objArgs = WScript.Arguments
UserName = objArgs(i)
For i = 0 To objArgs.Count - 1
UserName = text & objArgs(i)

CompName = ""
GroupName = "Administrators"
GroupName = "Администраторы"
DomainName = "домен.com"
If GroupName = "Administrators" or GroupName = "Администраторы" Then
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",group")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
End If
Next
Автор: amitophia
Дата сообщения: 23.09.2004 14:22
K2D

Цитата:
GroupName = "Administrators"
GroupName = "Администраторы"

у тебя после второй строчки GroupName="Администраторы", а не "Administrators", вот и не добавляет в английской
Автор: distance
Дата сообщения: 23.09.2004 14:23
K2D
на самом деле ты пытаешься добавить группу с именем UserName в группу адмнинистраторов
для запроса юзера нужно указывать атрибут "user", а у тебя - "group"
потом, неплохо бы убедиться что юзер получен успешно. например проверить переменную oUser на ... null? (или как он там зовется в vbs или использовать
конструкцию on error
ну и я бы сказал, что строчка UserName = objArgs(i) перед циклом не только лишняя (переменная Username "перебивается" при входе в цикл), но и потенциально опасная,
т.к. ты пытаешься индексировать массив неинициализированной переменной
Автор: K2D
Дата сообщения: 23.09.2004 14:29
amitophia
Пожалуйста поподробнее если можно а то сам немогу врубиться
Автор: amitophia
Дата сообщения: 23.09.2004 14:44
GroupName - это пременная
сначала ты ей присваиваешь значение "Administrators", а потом сразу же присваиваешь её новое значение "Администраторы"
В итоге получается, что GroupName у тебя всегда равна "Администраторы"
В русской wndws есть такая группа, поэтому в неё добавляется, а в английской - нету. В английской wndws надо добавлять в Administrators

поэтому, либо определяй какая windows, лиюо добавляй сначала в группу Администраторы, а потом в группу Administrators (на русской Win будет обламываться второе,а на английской - первое)
А ешё лучше, проверяй, есть ли группа Администраторы. Если есть, добавляй в неё юзера. Потом проверяй, есть ли группа Administrators, и если есть, добавляй в неё.
(Как узнать, есть группа или нет, я не знаю, потому что не знаю vbs, но, думаю, не сложно)

ещё я так и не понял, зачем нужен text в
UserName = text & objArgs(i)
почему не сделать UserName = objArgs(i) ?

Автор: K2D
Дата сообщения: 23.09.2004 15:44
Почему и это он нехочет добавлять группу
Option Explicit
Dim CompName
Dim GroupName, oGroup
Dim UserName, oUser, objArgs
Dim DomainName,i, text

Set objArgs = WScript.Arguments
For i = 0 To objArgs.Count - 1
UserName = text & objArgs(i)

CompName = "имя компа"
DomainName = "домен.com"
If GroupName = "Administrators" or GroupName = "Администраторы" Then
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",group")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
End If
Next

Добавлено
Вот етот работает нормально но хотелось бы чтобы мог определять русский или английский виндовс а етот скрипт тока для английского Помогите ПОЖАЛУЙСТА.
'On Error Resume Next
On Error Resume Next
'Option Explicit
Dim CompName
Dim GroupName, oGroup
Dim UserName, oUser, objArgs
Dim DomainName,i, text
Set objArgs = WScript.Arguments
For i = 0 To objArgs.Count - 1
UserName = text & objArgs(i)
CompName = "имя_компа"
GroupName = "Administrators"
DomainName = "домен.com"
Set oGroup = GetObject("WinNT://" & CompName & "/" & GroupName & ",group")
Set oUser = GetObject("WinNT://" & DomainName & "/" & UserName & ",group")
oGroup.Add(oUser.AdsPath)
oGroup.SetInfo
Set oGroup = Nothing
Set oUser = Nothing
Next
Next
Автор: K2D
Дата сообщения: 24.09.2004 12:06
Всем спасибо Я сам разобрался как надо его сделать
Автор: AlexSSS
Дата сообщения: 24.09.2004 12:49
хочу поделиться опытом по борьбе с вирусами, spyware и прочей гадостью. Описания подобного способа почему-то больше нигде не встречал, хотя он прост и достаточно эффективен
***************
В логонный скрипт самой первым скриптом запускается прога, которая проверяет ветки
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\"
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"

1. пишется лог на сервер
2. если есть запуски, которые внесены в "черный" список, то скрипт стирает строку автозапуска и пытается стереть сам файл на диске.
3. если есть запуски, которые внесены в "серый" список, то скрипт стирает строку автозапуска
4. В лог пишется инфа обо всех прогах ветки Uninstall

логонный скрипт запускается еще до
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
и как правило, успевает удалить автозапуск еще до момента самого запуска программы. Если прога уже запустилась, то удалить файл на диске невозможно, да и строку автозапуска они сами часто восстанавливают. Много гадости вычищается уже самим этим скриптом. Ну и следует периодически просматривать логи, чтобы обновлять черный список, да и смотреть, что там у пользователей понаставлено.
Автор: Smitis
Дата сообщения: 24.09.2004 23:34
merlkerry

Цитата:
зачем же качать ??? он уже есть в системе

Понял, спасибо, разобрался - в посте volkanin допустил ошибку
надо WinHttp.WinHttpRequest.5.1 вместо WinHttp.WinHttpRequest.5
Автор: Jovanotti
Дата сообщения: 26.09.2004 10:36
AlexSSS
Неплохо
Дело за малым скрипт выложи ....
Автор: Ptrovich
Дата сообщения: 28.09.2004 08:59
Я скачал себе мануалс по Windows Script Technology c MSDN, как тут и рекомендовали, дето в начале. Там говорится, что чтобыи спользовать WSH надо :


Цитата:
To enable Remote WSH, use Poledit.exe on the server.


затем говорится про какой то файл windowsscript.adm , который якобы нужно стянуть с
http://msdn.microsoft.com/scripting . Я был там но ничего не нашел. Нсколько нужны эти файлы для простых задач, типа написать скрипт для расшаривания ресурсов на удаленном компе, либо , текущая актуальная задача, с которй пошла у меня все свистопляска6 я хочу написать скрипт, который бы каждый час заменивал на удаленной машине под ВИН 98 значение ключа HKLM/Network/Logon/username на sample с любого ,каким бы оно ни было.
Автор: AlexSSS
Дата сообщения: 28.09.2004 09:15
Jovanotti
> Дело за малым скрипт выложи ....
достаточно бесполезно - он у меня на KixScript, а его немногие используют
Автор: kibkalo
Дата сообщения: 28.09.2004 09:58
Ptrovich
Попробуй в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings создать два ключа: Remote и IgnoreUserSettings (типа string) и присвой им значение единицы. Должно сработать.
windowsscript.adm так и не был выпущен микрософтом. Я себе свой шаблон делал для этого по описанию русурс кита.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Зеркалирование дисков Win2000


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.