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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

mugil_cephalus

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

Цитата:
Ну если можно совместить, автозапуск и скрытие процесса - то нужно и ещё как!  

как совместить автозапуск и скрытие процесса этой прогой спроси здесь - http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=19668&start=0
если процесс - консольный , то лучше скрывать этой прогой - http://www.commandline.co.uk/cmdow/
или этой - http://www.ntwind.com/software/utilities/hstart.html

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:06 27-06-2010 | Исправлено: mugil_cephalus, 12:12 27-06-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Качнул давеча зазипованный файл. А 7za под рукой не оказалось (я в лечебке, мне подруга притащила ноут). После снотворного торможу, а потому вместо того, чтобы скачать оный (ан)зипер, я тут припомнил вбску.

Код:
Function fUnzip(sZIPFile, sTargetFolder)
 
  Dim oShellApp:Set oShellApp = CreateObject("Shell.Application")
  Dim oFSO:Set oFSO = CreateObject("Scripting.FileSystemObject")
 
  If Not oFSO.FolderExists(sTargetFolder) Then oFSO.CreateFolder sTargetFolder
 
  oShellApp.NameSpace(sTargetFolder).CopyHere oShellApp.NameSpace(sZipFile).Items
 
  Do
    Wscript.Sleep 1000
  Loop While oFSO.GetFolder(sTargetFolder).Files.Count < oShellApp.NameSpace(sZIPFile).Items.Count
 
End Function
 
'Пример применения
fUnzip "d:\archivers\test.zip", "d:\unpack\zero"

Может кому пригодится.
P.S> Кстати, тема поднималась ранее или нет, если да, киньте линк, плиз.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:52 30-06-2010
kolyas



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. как из vbs запустить bat'ник с правами админа. нужно для регистрации dll из vbs в win 7
2. как проверить программмно зарегистрирована ли библиотека в системе или нет или обработать данную ошибку?

Всего записей: 137 | Зарегистр. 19-03-2007 | Отправлено: 03:43 01-07-2010 | Исправлено: kolyas, 03:44 01-07-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolyas
Ты бы пояснил: делать это нужно локально или на удаленной машине. Если удаленно, то могу посоветовать использовать psexec Руссиновича вкупе с vbs следующего содержания:

Код:
SET WshShell = WScript.CreateObject("WScript.Shell")
SET WshSysEnv = WshShell.Environment("SYSTEM")
SET FSO = CreateObject("Scripting.FileSystemObject")
IF WScript.Arguments.Count <> 0 Then
    FOR EACH arg IN WScript.Arguments
        iArgCount = iArgCount + 1
        strCmdArg = (arg)
        strCmdArray = Split(strCmdArg, " ", 2, 1)
        IF iArgCount = 1 THEN
        strExe = strCmdArray(0)
        ELSEIF iArgCount = 2 THEN
        strRun = strCmdArray(0)
        ELSE
        strParams = strParams&" "&strCmdArray(0)
        END IF
    NEXT
END IF
'/t:0A && title ***** Admin *****  
        strExt = LCase(Right(strExe, 3))
 
IF strExt <> "exe" AND strExt <> "bat" AND strExt <> "cmd" THEN
WshShell.Run "psexec.exe -d -i -e -u COMPUTERNAME\USER -p PASSWORD  cmd /c start "&strExe&"
    "&strRun&" "&strParams, 0, FALSE
ELSE
WshShell.Run "psexec.exe -d -i -e -u COMPUTERNAME\USER -p PASSWORD "&strExe&" "&strRun&"
    "&strParams, 0, FALSE
END IF
 
    SET WshShell = NOTHING
    SET WshSysEnv = NOTHING
    SET FSO = NOTHING

Чуть подправить - и можно использовать локально.
На счет второго пункта, не уверен, что как-то можно искать иглу в стоге сена не иначе как перебором имен дллок. Причем это можно запросто реализовать в обычном батнике.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 13:41 01-07-2010
palpatin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
два скрипта для проверки свежести баз симантека и прав текущего пользователя на запись в системные папки и отправки их (пропустил это). из за UAC не работает. как исправить? запуск с админ правами не подойдет, т.к. теряется смысл второго скрипта
 

Код:
script_version=1.2
 
Set WshShell = CreateObject("WScript.Shell")  
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = CreateObject("WScript.Network")
symantec_path="c:\Program Files\Common Files\Symantec Shared\VirusDefs\definfo.dat"
 
sComputer = LCase(WshNetwork.ComputerName) + "." + LCase(WshNetwork.UserDomain) + ".net"
 
sDomain = LCase(WshNetwork.UserDomain) + ".net"
 
 
If objFSO.FileExists(symantec_path) Then
 
Set objFile = objFSO.GetFile(symantec_path)
Set objDatFile = objFSO.OpenTextFile(objFile, 1)
 
Do Until objDatFile.AtEndOfStream
strLine = objDatFile.Readline
intCurDefs = InStr(strLine , "CurDefs")
   If intCurDefs > 0 Then
   strCurDefs = strLine  
   strDateDefs = Mid(strCurDefs, 9, 8)
 
   dtYear = Left(strDateDefs, 4)
   dtMonth = Mid(strDateDefs, 5, 2)
   dtDay = Right(strDateDefs, 2)
   DateVirDefs = dtMonth & "/" & dtDay & "/" & dtYear
   dtDefDate = CDate(DatevirDefs)
   strRevNumber = Right(strCurDefs, 3)
 
     If (date - dtDefDate) <= 7 Then
         trap_type = "OK"
        trap_desc = "<b>" & sComputer & ":</b> Virus Definition up to date <br><b> def date:</b> " & dtDefDate & " <br><b>ver:</b> " & strRevNumber  
     Else  
         trap_type = "WARNING"
        trap_desc = "<b>" & sComputer & ":</b> Virus Definition older then 7 day <br><b>def date:</b> " & dtDefDate & "<br><b> ver:</b> " & strRevNumber  
 
    End If
   
 
  End If
 
   Loop
 
   objDatFile.Close
 
Else  
    trap_type = "CRITICAL"
    trap_desc = "<b>" & sComputer & ":</b> Virus Definition file not found!"
 
End If
 
...
 
end if

 
 

Код:
'Option Explicit
script_version=1.1
 
Dim WshShell, WshSysEnv, checking_dirs(3), cdir
Dim trap_type, trap_desc
Dim sComputer, sUser
 
 
 
Set WshNetwork = CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("process")  
 
sComputer = LCase(WshNetwork.ComputerName) + "." + LCase(WshNetwork.UserDomain) + ".net"
sDomain = LCase(WshNetwork.UserDomain) + ".net"
sUser = LCase(WshNetwork.UserName) & "@" & sDomain
 
trap_type="OK"
 
 
checking_dirs(0) = WshSysEnv("SYSTEMDRIVE")
checking_dirs(1)= WshSysEnv("WINDIR")
checking_dirs(2)= checking_dirs(1) & "\system32"
checking_dirs(3)= WshSysEnv("ALLUSERSPROFILE")
 
 
for each cdir in checking_dirs
    if IsPathWriteable(cdir) then  
        trap_type="CRITICAL"
        writ_dirs= writ_dirs & cdir & ","
    else
        unwrit_dirs= unwrit_dirs & cdir  & ","
    end if
next
 
if len(writ_dirs)>1 then writ_dirs=left(writ_dirs,len(writ_dirs)-1) & " is writeable"
if len(unwrit_dirs)>1 then unwrit_dirs=left(unwrit_dirs,len(unwrit_dirs)-1) & " is read-only"
 
trap_desc = replace("<b>" & sComputer & ": </b> " & writ_dirs & unwrit_dirs & " for user " & sUser,"\","\\\")
 
....
 
end if
 
Function IsPathWriteable(Path)' As Boolean
    Dim fso 'As Scripting.FileSystemObject
    Dim Temp_Path 'As String
 
if right(path,1)="\" then path=left(path,len(path)-1)
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Temp_Path = Path & "\" & fso.GetTempName()  
    On Error Resume Next
        fso.CreateTextFile Temp_Path
        IsPathWriteable = Err.Number = 0
        fso.DeleteFile Temp_Path
    On Error Goto 0
     
End Functionf


Всего записей: 62 | Зарегистр. 01-02-2006 | Отправлено: 16:30 01-07-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
palpatin
Таг [more] нам не знаком?!
Ладно, к делу. Я тут бегло ознакомился с твоими скриптами, и хотелось бы поинтересоваться:
1.Откуда такая уверенность, что дело в UAC'е?
2.Нафига бить скрипт на две части?
Следуя тому, что описано в первом скрипте, его логичнее запускать именно с правами админа, а следуя второму - можно то же прикрутить к первому. Если б ты предоставил бодее развернутый план действий, я бы еще может и сообразил что к чему, а так, на скидку, ничего не могу сказать.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 20:06 01-07-2010
palpatin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это самописный скрипт для отправки отчета по snmp на сервер с nagios, взаимодействует с trapgen.exe . почему два - делал его не я и немного чайник в вбс. дело в том что с хп он отрабатывает отлично, а на старших ОС (виста-7) присылает ответ, что базы не обновлены и пользователь имеет доступ на запись к системным папкам.
 
например приходять нажиос выдает ответы вида
 
хост: Virus Definition file not found!  
 
хост: C:\ProgramData is writeableC:,C:\Windows,C:\Windows\system32 is read-only for user пользователь
 
хост: C:,C:\WINDOWS,C:\WINDOWS\system32,C:\Documents and Settings\All Users is writeable for user пользователь
 
хост: C:\Documents and Settings\All Users is writeableC:,C:\WINDOWS,C:\WINDOWS\system32 is read-only for user пользователь
 
хост: C:,C:\Windows,C:\Windows\system32,C:\ProgramData is writeable for user пользователь
 
з.ы. что-то я сам начал сомневатся в нерабочести скриптов. может в висте-7 как то отличается иерархия указаных папок?

Всего записей: 62 | Зарегистр. 01-02-2006 | Отправлено: 11:03 02-07-2010
Ex0dus



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть многостраничный вордовский файл. Периодически в нем появляется строчка "TEST".
Как пронумеровать все эти строчки по порядку. Чтобы получилось:
TEST 1
....
TEST 2
....
TEST 3
и так далее.
Макросы, батники?

Всего записей: 354 | Зарегистр. 15-05-2005 | Отправлено: 19:04 04-07-2010 | Исправлено: Ex0dus, 19:04 04-07-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zipping/UnZipping. Пока только умеет работать с абсолютными путями.
Код

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 19:36 04-07-2010 | Исправлено: ComradG, 19:36 04-07-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли VBS-скриптом сделать безопасное извлечение определенного USB-устройства ?

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 18:46 07-07-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YURETS777
В случае с XP - нет, а вот NT 6 и выше - да. Реализуется, если не ошибаюсь, как-то через сервис imapi. У мелкомягких есть имапикрю, которая в своих блогах писала на эту тему.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:37 07-07-2010
alur2005



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

Всего записей: 824 | Зарегистр. 06-09-2005 | Отправлено: 07:17 12-07-2010 | Исправлено: alur2005, 07:48 12-07-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Еще нужно скриптом менять разрешение экрана.
Это реально ?

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 21:55 13-07-2010 | Исправлено: YURETS777, 23:36 13-07-2010
Denn29



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Упс.. Уже не надо.

----------
Нефиг ставить то, к чему второй сервис-пак не вышел.
"Есть старое правило - чтобы не было геморроя, руки должны быть прямыми, а извилины - кривыми, но не наоборот." (С)Korzh

Всего записей: 20957 | Зарегистр. 27-12-2005 | Отправлено: 15:06 22-07-2010 | Исправлено: Denn29, 11:11 27-07-2010
olview

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем, не подскажите как сменить логон-скрипт у всех пользователей в домене именно скриптом????

Всего записей: 85 | Зарегистр. 30-03-2008 | Отправлено: 05:52 28-07-2010
ComradG



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

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:08 02-08-2010 | Исправлено: ComradG, 11:22 03-08-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тут озадачился запуском процессов в скрытом режиме, и накидал следующее:

Код:
Const HIDDEN_WINDOW = 12
 
strComputer = "."
Set objWMIService = GetObject("winmgmts: {impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
 
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create("notepad.exe", null, objConfig, intProcessID)
И меня навело на мысль, что можно таким макаром запускать сами скрипты выставив в них обращение к самим себе.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 19:56 05-08-2010
ynbIpb



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Уважаемые, у меня к вам необычная прозьба:
Есть такой замечательный компонент: wodXMPP (интересует именно COM объект wodXMPP.dll)
В нём реализована работа с протоколом XMPP (Jabber)
С этого сайта можно скачать комплект (компонент, документация, примеры на разных языках)
Есть пример на VBS

Код:
Option Explicit
Dim XMPP1
Set XMPP1 = WScript.CreateObject( "WeOnlyDo.wodXMPPCom.1", "wod_")
 
' please change these lines, from here
WScript.echo "Please edit this file to setup Login and Password properties"
 
XMPP1.Login = "somename@wippien.com"
XMPP1.Password = "password"
XMPP1.Blocking = True
'XMPP1.Register = True        ' register new account
XMPP1.Connect
     
'XMPP1.Contacts.Add("someone@wippien.com").Subscribe        ' you can add someone to your contact list...
XMPP1.SendText "someone@wippien.com", "Hello there!"
 
XMPP1.Disconnect
 
Sub wod_Disconnected()
    WScript.Echo "Done and disconnected"
End Sub

Но в нём нет примера получения входящего сообщения. А это мне и нужно. Может ктонибудь глядя на другие примеры показать как получать сообщения на VBS ?
Онлайн справка по компоненту
База примеров на других языках, исходник реально работающей программы
 
Вобщем можно работать и с демо версией (30 дней триал вроде), но вот полная версия библиотеки: wodXMPP.dll, ключ: #  
 
Если у кого-то есть время и желание повозиться с этим комонентом, буду очень благодарен.

Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 21:58 16-08-2010
MoonGod

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день
Помогите со скриптом
 
есть папки вида
 
c:/../../../TEST/001
c:/../../../TEST/002
c:/../../../TEST/003
 
в которых
c:/../../../ - путь к папке специфической программы в MyDocuments. То есть, различается для XP и Vista/7 и неизвестно имя пользователя
 
TEST - известная часть пути
001 - название папок в TEST
 
в каждой из папок вида c:/../../../TEST/001 лежит файл с известным именем, Sample.txt
 
Задача: найти все такие файлы, то есть
c:/../../../TEST/001/Sample.txt
c:/../../../TEST/002/Sample.txt
 
 
 и считать из него 1 и 3 строку, или к примеру первые 5 в какой-то общий файл.
 
У меня получилось сделать только частично - либо скопировать все ТХТ из нужной папки (только первой), либо скопировать нужные данные зная точный путь.
 
Скрипт будет запускаться на другой машине, так что нет возможности вписать точный путь в скрипт.
 
Буду благодарен за помощь, сам новичек

Всего записей: 22 | Зарегистр. 21-06-2006 | Отправлено: 01:57 20-08-2010 | Исправлено: MoonGod, 02:00 20-08-2010
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MoonGod
Цитата:
путь к папке специфической программы в MyDocuments. То есть, различается для XP и Vista/7 и неизвестно имя пользователя  
Чего специфичного то? Есть системная переменная возвращающая папку пользователя  %HOMEPATH%.  
http://www.windowsfaq.ru/content/view/263/

Всего записей: 13033 | Зарегистр. 15-03-2006 | Отправлено: 02:48 20-08-2010
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru