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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

SVOI_CHUVAC



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех
Появилась интересная задачка. Отправить письмо с помощью скрипта на vbs особой сложности не составляет, а вот как сформировать и отправить сообщение, которое бы у получателя высвечивалось в MS Outlook в виде задачи? Сервер MS Exchange 2003 отсылка по 25-му порту без авторизации открыта

Всего записей: 95 | Зарегистр. 28-04-2005 | Отправлено: 11:35 03-03-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно через vbs-ку получить установленный ключ продукта Windows?
 
Добавлено:
нашел только на powershell. Может его как то переделать можно?

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:24 05-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
тебе ID или серийник? и то и то можно сделать на батнике, причем я писал уже об этом кажись здесь. или тебе непременно нужна vbs?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 16:34 05-03-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Серийник винды и офиса в идеале
Я просто думал что на батнике не получится

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 17:25 05-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
в общем, я так понимаю, батник сойдет?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 17:28 05-03-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Сейчас до компа доберусь, ясно станет

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 17:35 05-03-2011
ComradG



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

Цитата:
нашел только на powershell
если не сложно, то можешь выложить, - хотелось бы посмотреть.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 17:50 05-03-2011
Free_Soft



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

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:19 05-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
во-первых, спасибо, во-вторых, попробую на днях накатить на vbs все-таки ради спортивного интереса.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:11 05-03-2011
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
значит есть такой скрипт, он пингует адрес turbo.uralcom.com и если пинга нет, перегружает роутер. Значит вот это пингование надо вырезать и оставить только перезагрузку. И ещё, если язык по умолчанию не английский, то не вставляет латиницу, можно обойти?

Код:
On Error Resume Next
 
strComputer = "."
strTarget = "turbo.uralcom.com" 'IP address or hostname
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
' если статус = 0, пустая строка — другое
Else
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13)
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."  
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 08:26 06-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven
в чем, собственно, проблема: for each заканчивается ключевым словом next, а перезагрузка в твоем скрипте осуществляется путем посыла хосту команды "reboot"
Код:
oShell.SendKeys "reboot" & chr(13)
, - так что выкинуть все лишнее самостоятельно даже пионеру посилам. вопрос в другом, а стоит ли это делать без видимых причин: перезагружать, без определенного условия.
Цитата:
если язык по умолчанию не английский, то не вставляет латиницу, можно обойти?
теоретически можно.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 08:56 06-03-2011
king_stiven

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

Код:
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13)
WScript.Quit


Цитата:
а стоит ли это делать без видимых причин:

Запускается с условием из батника.

Цитата:
теоретически можно.

как?

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:46 06-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven
ты не внимателен:
Код:
oShell.Run "telnet.exe 192.168.1.1"
-запускает телнет клиент, а
Код:
oShell.SendKeys "admin" & chr(13)
посылают хосту команду "admin". и потом у тебя два раза дублируется эта строчка. смекаешь что к чему?
Цитата:
Запускается с условием из батника.
понятно.
Цитата:
как?
говорю ж - теоретически, на практике я пока такое не встречал.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 10:24 06-03-2011
king_stiven

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

Цитата:
запускает телнет клиент

Так и должно быть, роутер телнет понимает.

Цитата:
потом у тебя два раза дублируется эта строчка.

логин и пароль
проверю только завтра.

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:47 06-03-2011
ComradG



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

Цитата:
логин и пароль
извиняй, сразу не понял что к чему (может в примерах на форуме стоит принять за правило для пользователя писать "user", а пароль - "password", так глядишь и легче станет ориентироваться).

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 13:29 06-03-2011
alhellium

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Немного подправил...Пишет в лог время перезагрузки.
Код:
Dim fso, log
do
WScript.Sleep 100000
On Error Resume Next  
 
strComputer = "."  
strTarget = "8.8.8.8" 'IP address or hostname  
Set objWMIService = GetObject("winmgmts:" _  
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
Set colPings = objWMIService.ExecQuery _  
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")  
If Err = 0 Then  
Err.Clear  
For Each objPing in colPings 'избавиться от форича  
If Err = 0 Then  
Err.Clear  
If objPing.StatusCode = 0 Then  
' если статус = 0, пустая строка - другое  
Else  
        Set fso = CreateObject("Scripting.FileSystemObject")
 
        If Not fso.FileExists ("d:\RebootModem.log") Then
                Set Log = fso.CreateTextFile ("d:\RebootModem.log")
                Log.WriteLine " Automatic rebooting " &  Date & " "  & Time
        Else
                Set Log=fso.OpenTextFile ("d:\RebootModem.log",8)
                Log.WriteLine " Automatic rebooting " &  Date & " "  & Time
        End If
        Log.Close
Set oShell = WScript.CreateObject("WScript.Shell")  
oShell.Run "telnet.exe 192.168.1.1"  
WScript.Sleep 1000  
oShell.SendKeys "admin" & chr(13)  
WScript.Sleep 1000  
oShell.SendKeys "admin" & chr(13)  
WScript.Sleep 1000  
oShell.SendKeys "reboot" & chr(13)  
WScript.Sleep 100000
End If  
Else  
Err.Clear  
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."  
End If  
Next  
Else  
Err.Clear  
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."  
End If
loop

Всего записей: 1 | Зарегистр. 01-10-2010 | Отправлено: 19:14 08-03-2011
DreamDok

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребята, подскажите.Есть скриптик для отправки мыла.Работает исправно только при наличии указанного аттача.А в моём случае скрипт запускаться на разных машинах и бывает что на какой то системе нет этого файла, в таком случае выдаётся ошибка и отправка не происходит.Как сделать чтобы он слал на почту независимо от того есть прикреплённый файл или нет?
 

Код:
Const EmailFrom = "login@yandex.ru"
Const EmailPassword = "pass"
Const strSmtpServer = "smtp.yandex.ru"
Const EmailTo = "login.mail.ru"
Set objEmail = CreateObject("CDO.Message")
 
objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.AddAttachment "C:\Windows\test.zip"
objEmail.Subject = "test"
objEmail.Textbody = "test"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
objEmail.Configuration.Fields.Update
objEmail.Send
WScript.Quit

 
И ещё заодно спрошу, только не бейте, в vbs не разбираюсь.Каким образом в vb скриптах вызвать переменную?к примеру "C:\Windows\test.zip" в том же батнике было бы %systemroot%\test.zip
Читал про ExpandEnvironmentStrings и ничерта не понял как оно работает.
Спасибо.
 
Добавлено:
С переменными средами разобрался Остался в силе только вопрос с почтой.

Всего записей: 24 | Зарегистр. 14-11-2010 | Отправлено: 06:42 09-03-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DreamDok

Цитата:
Каким образом в vb скриптах вызвать переменную?к примеру "C:\Windows\test.zip" в том же батнике было бы %systemroot%\test.zip  
Читал про ExpandEnvironmentStrings и ничерта не понял как оно работает.  

1) Создается объект  

Код:
Set WshShell = CreateObject("WScript.Shell")

2) Получается путь системной переменной

Код:
windir = WshShell.ExpandEnvironmentStrings("%WinDir%")


Цитата:
А в моём случае скрипт запускаться на разных машинах и бывает что на какой то системе нет этого файла, в таком случае выдаётся ошибка и отправка не происходит.Как сделать чтобы он слал на почту независимо от того есть прикреплённый файл или нет?

Замените строку  

Код:
objEmail.AddAttachment "C:\Windows\test.zip"

на

Код:
AttachFile = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%systemroot%\test.zip")
If CreateObject("Scripting.FileSystemObject").FileExists(AttachFile) Then objEmail.AddAttachment AttachFile

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 07:35 09-03-2011
DreamDok

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Благодарю за развёрнутый ответ, теперь всё встало на свои места.Вот только как в переменной выставить текущую директорию(то место откуда запускается скрипт).%DIR% не срабатывает (

Всего записей: 24 | Зарегистр. 14-11-2010 | Отправлено: 08:07 09-03-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DreamDok

Цитата:
Благодарю за развёрнутый ответ, теперь всё встало на свои места.Вот только как в переменной выставить текущую директорию(то место откуда запускается скрипт).%DIR% не срабатывает (

Папка в которой находится скрипт

Код:
Set fso = CreateObject("Scripting.FileSystemObject")
ScriptFolderPath = fso.GetParentFolderName(WScript.ScriptFullName)

Текущая директория

Код:
Set WshShell = CreateObject("WScript.Shell")
CurDirPath = WshShell.CurrentDirectory

 
PS. Объект каждый раз создавать не надо, достаточно один раз, если он в корне скрипта, а не в функции или процедуре.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 08:31 09-03-2011
   

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