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

» Автоматизация администрирования. Часть 2

Автор: rkhodjaev
Дата сообщения: 24.08.2009 14:26
Nuts2002
По поводу скрипта с прокси. Если его на автозапуск поставить, он отрубить прокси у пользователя?
Автор: contrafack
Дата сообщения: 24.08.2009 14:41
Nuts2002
ShafMAN

сохранил в файл *.js, запускаю, но выдает такую ошибку:


пробовал даже с IE6 браузером. везде такая ошибка.
Автор: ShafMAN
Дата сообщения: 24.08.2009 15:03
contrafack
Может скопировал не полностю? Проверь скопированный код.

Добавлено:
rkhodjaev
Он сначала спросит хочет пользователь этого или нет И потом пользователь может самостоятельно через свойства обозревателя включеть прокси обратно. Проще наверное через политики запретить прокси, если на совсем надо.
Автор: contrafack
Дата сообщения: 24.08.2009 15:13
да, действительно не правильно скопировал ))))))))))) спасибо большое.

только вот желательно отключить вторичный запрос. т.е. запустить - спросит Отключен - включить? после нажати ДА чтоб исчез, а не появился еще запрос, типа Включен - отключить? и надо нажать НЕТ, чтоб исчез запрос.

можете подправить ?
Автор: ShafMAN
Дата сообщения: 24.08.2009 15:17
contrafack

Цитата:
var WshShell=WScript.CreateObject("WScript.Shell");
var Title="Proxy Setting";
var Message="Прокси ";
var Key="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable";
var ON="ВКЛючен";
var OFF="ВЫКЛючен";
var ONON=". Включить?";
var OFFOFF=". Выключить?";
var ONOFF="";
var YNC=4;
var vbYes=6;
var vbNo=7;
var hz;


var proxyX=WshShell.RegRead(Key);

if (proxyX==1){proxyX=ON; ONOFF=OFFOFF;
hz=WshShell.Popup (Message+proxyX+ONOFF,0,Title,YNC+64);
if (hz==vbYes)
{
WshShell.RegWrite(Key,0,"REG_DWORD");
}
else if (hz==vbNo)
{
WScript.Quit();
}}

else if (proxyX==0){proxyX=OFF; ONOFF=ONON;
hz=WshShell.Popup (Message+proxyX+ONOFF,0,Title,YNC+64);
if (hz==vbYes)
{
WshShell.RegWrite(Key,1,"REG_DWORD");
}
else if (hz==vbNo)
{
WScript.Quit();
}}
Автор: contrafack
Дата сообщения: 24.08.2009 15:36
ShafMAN


спасибо большое ! то, что надо !
Автор: yazzi
Дата сообщения: 25.08.2009 08:50
Добрый день подскажите как перевести кодировку есть скрипт который берет последнее событии по запросу от тригера и посылает на почту так вот проблема в том что русский текст присылается в кракозямлах посмотрите может кто что нибудь подскажет


Код:
Dim objArg
Dim FSO
Dim Temp
Dim Path
Dim Mag
Dim Id
Dim WshShell
Dim File
Dim WshNetwork

'получаем аргумены
Set objArg = WScript.Arguments
Temp = Split(objArg(0),"-",-1,1)
Mag = Temp(0) ' переменная указывающая на название журнала
Id = Temp(1) ' тип записи
Set objArg = Nothing
Set Temp = Nothing
Set WshShell = CreateObject("wscript.Shell")
Path = "d:\temp\event.txt"
' получаем событие
Temp = WshShell.Run("cmd /c cscript.exe c:\windows\system32\eventquery.vbs /fi " & Chr(34) & "Type eq " & Id & Chr(34) &" /r 1 /l " & Chr(34) & Mag & Chr(34) & " /v /fo table >>" & Path,1,true)
' читаем событие и удаляем файл
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile(Path,1,False)
Temp = File.ReadAll
WScript.Echo Temp
File.Close
FSO.DeleteFile Path
'формируем письмо
'Set LogFile = fso.OpenTextFile("D:\temp\immSrvASNC.Log", 8, True)
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objMessage = CreateObject("CDO.Message")
objMessage.To = "my@domain.ru"
objMessage.From = WshNetwork.ComputerName & "@ourdomain.ru"
objMessage.Subject = "Automessage from " & WshNetwork.ComputerName
objMessage.TextBody = Temp
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"domain.ru"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
If Err.Number <> 0 Then
LogFile.WriteLine "Отправка письма невозможна по причине: " & Err.Description
Err.Clear
End If
Set objMessage = Nothing
Set WshNetwork = Nothing
WScript.Echo "End"
Автор: rkhodjaev
Дата сообщения: 25.08.2009 09:49
ShafMAN

Цитата:
Он сначала спросит хочет пользователь этого или нет И потом пользователь может самостоятельно через свойства обозревателя включеть прокси обратно. Проще наверное через политики запретить прокси, если на совсем надо.


По некоторым причинам невозможно отключить через ГПО. А можно этот скрипт в любом случае запускать, то есть у юзера не было возможности сказать - нет.
Автор: YNY
Дата сообщения: 25.08.2009 10:40

Цитата:
yazzi

Цитата:
русский текст присылается в кракозямлах


попробуй после /c написать chcp 866 |, а вообще постарайся избежать копирования в файл, попробуй нечто в [more=этом духе]strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colLoggedEvents = objWMIService.ExecQuery ("Select * from Win32_NTLogEvent " & "Where Logfile = 'Security'")


For Each objEvent in colLoggedEvents
Wscript.Echo "Category: " & objEvent.Category
Wscript.Echo "Computer Name: " & objEvent.ComputerName
Wscript.Echo "Event Code: " & objEvent.EventCode
Wscript.Echo "Message: " & objEvent.Message
Wscript.Echo "Record Number: " & objEvent.RecordNumber
Wscript.Echo "Source Name: " & objEvent.SourceName
Wscript.Echo "Time Written: " & objEvent.TimeWritten
Wscript.Echo "Event Type: " & objEvent.Type
Wscript.Echo "User: " & objEvent.User
Next[/more]
Автор: bredonosec
Дата сообщения: 25.08.2009 11:28
вопрос есть, наверно простейший, но торможу..
всем юзерам домена надо закинуть на десктоп по урлу.
Тупо выслать мылом нельзя - тянет в аттач страницу с урла. Архивировать тож нельзя - по дефолту архиваторов нет, машина начнет задавать вопросы, юзеры начнут обрывать телефон. самораспаковывающимся тож нельзя - запрещено ехе-шники слать.
Остается только как-то скриптом или батником разослать всем.
Неясны 2 момента -
1) список руками вводить долго и муторно, да и наверняка есть вариант как всем в директории кинуть
2) на десктоп надо именно залогиненному юзеру, или в профиль all users

как это изобразить?
Автор: Attid
Дата сообщения: 25.08.2009 14:15

Цитата:
в профиль all users

через доменные политики можно например
Автор: bredonosec
Дата сообщения: 25.08.2009 14:27

Цитата:
через доменные политики можно например

положить файлик? а как?
Автор: Attid
Дата сообщения: 25.08.2009 14:42
конфигурация компутера- конфигурация виндоус - сценарии - автозагрузка
там делаешь скрипт с содержанием что-то вроде

IF NOT EXIST "%ALLUSERSPROFILE%\рабочий стол\my.url" %SystemRoot%\System32\XCOPY.EXE "\\server\my.url" "%ALLUSERSPROFILE%\рабочий стол\my.url"



Добавлено:
кстати через политики всем в эксплорер можно в избранное добавить нужный урл или даже установить принудительно стартовой страницей
Автор: ADMINDM
Дата сообщения: 25.08.2009 14:56
Просто добавьте в политики пользователя скрипт 1.vbs создающий ярлык
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")

Dim MyShortcut, MyDesktop, DesktopPath

' Читаем путь к Рабочему столу
DesktopPath = WSHShell.SpecialFolders("Desktop")

' Создаем ярлык на Рабочем столе
Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & _
"\ Программа.lnk")

' Задаем свойства объекта-ярлыка и сохраняем их

MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("C:\Program Files\Windows NT\Accessories\wordpad.exe")
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("C:\Program Files\Windows NT\Accessories")
MyShortcut.WindowStyle = 4
MyShortcut.IconLocation = _
WSHShell.ExpandEnvironmentStrings("C:\Program Files\Windows NT\Accessories\wordpad.exe, 0")
MyShortcut.Save



Автор: YURETS777
Дата сообщения: 25.08.2009 15:34
Как при помощи VBS включить рабочую станцию Windows 2000 SP4 RU в Домен (Server 2003 SP2).
Пробовал так:

Код:
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144

strDomain = "work.ru"
strPassword = "123"
strUser = "user1"
strOU = "OU=comp,OU=Local,OU=Workstations,OU=DC001,DC=work,DC=ru"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")

ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, strDomain & "\" & strUser, strOU, _
JOIN_DOMAIN + ACCT_CREATE)

Автор: rkhodjaev
Дата сообщения: 26.08.2009 07:28
ShafMAN
Переделал таким образом, вроде работает:


Код: var WshShell=WScript.CreateObject("WScript.Shell");
var Title="Proxy Setting";
var Message="Прокси ";
var Key="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable";
var ON="ВКЛючен";
var OFF="ВЫКЛючен";
var ONON=". Включить?";
var OFFOFF=". Выключить?";
var ONOFF="";
var YNC=4;
var vbYes=6;
var vbNo=7;
var hz;


var proxyX=WshShell.RegRead(Key);

if (proxyX==1){proxyX=ON; ONOFF=OFFOFF;
{
WshShell.RegWrite(Key,0,"REG_DWORD");
}}
Автор: north_crow
Дата сообщения: 26.08.2009 07:46
yazzi
вставь в скрипт такую строчку

Код: objMessage.Bodypart.CharSet = "windows-1251"
Автор: ShafMAN
Дата сообщения: 26.08.2009 08:22
rkhodjaev
или так

Цитата:

var WshShell=WScript.CreateObject("WScript.Shell");
var Key="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable";
var proxyX=WshShell.RegRead(Key);
if (proxyX==1) WshShell.RegWrite(Key,0,"REG_DWORD");
Автор: yazzi
Дата сообщения: 26.08.2009 11:08
YNY
Спасибо все заработало
Автор: rkhodjaev
Дата сообщения: 26.08.2009 11:34
ShafMAN
Спасибо большое.
Автор: sysadmkey
Дата сообщения: 27.08.2009 12:01
Приветствую всех!
помогите с проблемкой:
Есть скрипт который на сайте заполняет поля ввода и считывает информацию с сайта.
т.е. результатом выполнения становится считывание в переменную text всего содержимого страницы...

Код: Text = oIE.Document.Body.OuterText
Автор: bredonosec
Дата сообщения: 28.08.2009 11:36
ADMINDM

Цитата:
Просто добавьте в политики пользователя скрипт

можно уточнить, где именно? не занимался еще подобным, а Гугл в упор не помогает ((
нашел вот http://www.winpedia.ru/content/view/855/57/
но у меня в меню групповых политик неактивны кнопки. Возможно, прав не хватает?
Автор: YNY
Дата сообщения: 28.08.2009 12:37

Цитата:
sysadmkey

для справки: строковая переменная может содержать тока 255 символов )
тебе прийдется нарезать массив строк по 255 символов, а затем с помощью функции [more=InSTR()]
Description
Returns the position of the first occurrence of one string within another.
Syntax
InStr([start, ]string1, string2[, compare])
The InStr function syntax has these arguments:

Part Description
start Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the first character position. If start contains Null, an error occurs. The start argument is required if compare is specified.
string1 Required. String expression being searched.
string2 Required. String expression searched for.
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values. If omitted, a binary comparison is performed.


Settings
The compare argument can have the following values:
Constant Value Description
vbBinaryCompare 0 Perform a binary comparison.
vbTextCompare 1 Perform a textual comparison.

[/more]
либо
[more=с помощью вот этого]
Provides simple regular expression support.
Remarks
The following code illustrates the use of the RegExp object:

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches        ' Create variable.
Set regEx = New RegExp            ' Create a regular expression.
regEx.Pattern = patrn            ' Set pattern.
regEx.IgnoreCase = True            ' Set case insensitivity.
regEx.Global = True            ' Set global applicability.
Set Matches = regEx.Execute(strng)    ' Execute search.
For Each Match in Matches        ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'." & vbCRLF
Next
RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


[/more] искать то че надо!
Может с пом последнего и не прийдется резать по 255 символов, но тебе эт будет проще проверить!
Добавлено:
И все же, ПРОЩЕ ИХМО сохранять в текстовый файл, а затем уже в нем искать!

Добавлено:
мона [more=с помощью вот этого]
Description
Returns a zero-based, one-dimensional array containing a specified number of substrings.
Syntax
Split(expression[, delimiter[, count[, compare]]])
The Split function syntax has these parts:

Part Description
expression Required. String expression containing substrings and delimiters. If expression is a zero-length string, Split returns an empty array, that is, an array with no elements and no data.
delimiter Optional. String character used to identify substring limits. If omitted, the space character (" ") is assumed to be the delimiter. If delimiter is a zero-length string, a single-element array containing the entire expression string is returned.
count Optional. Number of substrings to be returned; -1 indicates that all substrings are returned.
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values.


Settings
The compare argument can have the following values:
Constant Value Description
vbBinaryCompare 0 Perform a binary comparison.
vbTextCompare 1 Perform a textual comparison.


Remarks
The following example uses the Split function to return an array from a string. The function performs a textual comparison of the delimiter, and returns all of the substrings.
Dim MyString, MyArray, Msg
MyString = "VBScriptXisXfun!"
MyArray = Split(MyString, "x", -1, 1)
' MyArray(0) contains "VBScript".
' MyArray(1) contains "is".
' MyArray(2) contains "fun!".
Msg = MyArray(0) & " " & MyArray(1)
Msg = Msg & " " & MyArray(2)
MsgBox Msg


[/more] попробовать порезать на строки
Автор: Unitaz
Дата сообщения: 28.08.2009 13:18
граждане поможите пожалуйста - как быстро закрыть не использованные сокеты(автоматом закрываются очень долго ~6 минут) из батника , можно даже без проверки все сразу ....
Автор: ADMINDM
Дата сообщения: 29.08.2009 14:57

Цитата:
ADMINDM

Цитата:
Просто добавьте в политики пользователя скрипт

можно уточнить, где именно? не занимался еще подобным, а Гугл в упор не помогает ((
нашел вот http://www.winpedia.ru/content/view/855/57/
но у меня в меню групповых политик неактивны кнопки. Возможно, прав не хватает?

Вопросы по групповым политикам задавайте здесь
http://forum.ru-board.com/topic.cgi?forum=8&topic=8921#1
Автор: sysadmkey
Дата сообщения: 29.08.2009 16:25

Цитата:
для справки: строковая переменная может содержать тока 255 символов )



Код: Text = oIE.Document.Body.OuterText
wscript.echo Text
Автор: Oldster
Дата сообщения: 30.08.2009 11:16
sysadmkey
а можно сам скрипт, который выводит такую информацию получить?
а на твой вопрос, я бы сделал так: переменную порезал по строкам и в массив, и потом перебором искал в ней то, что надо. формировал новую переменную для вывода на экран.
Автор: YNY
Дата сообщения: 31.08.2009 05:30

Цитата:
sysadmkey

видешь ли, в скриптовых языках (точней в VBS) все переменные, по умолчанию, имеют тип "Variant", по эт причине туда все и влазит, но функции работают с конкретными типами и нек с "Variant" по эт я и грил, что прийдется, скорее всего, резать на массив строк твой
Text = oIE.Document.Body.OuterText, -- надо пробовать, а не имея исх скрипта мне эт трудней чем тебе!
Мона и по другому, но это в ветке по WeB Scrip-ингу, а не тут!!!
Автор: vworld
Дата сообщения: 03.09.2009 12:38
никто не сталкивался с такой проблемой
есть подсеть №1, в которой имеется OpenVPN сервер в этой же подсети есть сервер 1С, есть другая подсеть №2 с другой адресацией, в которой надо сделать следующее....пользователь запускает ярлык (в котором *.bat) и выполняется следующее - запускается клиент OpenVPN с набором организации тунеля до сервера OpenVPN и запускается 1С 8 с подключением к необходимой базе, после закрытия 1С должно быть закрыто соединение по OpenVPN
Автор: w3d
Дата сообщения: 03.09.2009 12:52
vworld

1. Устанавливаем ОпенВПН как сервис, с запуском вручную
2. делаем батник:

:: запускаем
net start "OpenVPN Service"

:: стартуем 1С
1c.exe ........


:: останавливаем
net stop "OpenVPN Service"

3. делаем ярлык на этот батник и наслаждаемся

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

Предыдущая тема: BackUp Win2003Serer


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