Отправляет email-рассылки с помощью сервиса Sendsay

Windows Scripting

  Все выпуски  

Windows Scripting (выпуск 3)


Служба Рассылок Городского Кота

 

Windows Scripting (выпуск 3)

 
Вступление
 
Здравствуйте!

Рад приветствовать Вас на странице моей рассылки!

Эта рассылка посвящена самым различным аспектам программирования в среде Microsoft Windows Scripting - от конфигурирования и администрирования Microsoft Windows, IIS, Exchange Server и SQL Server до особенностей программирования на VBScript и JScript.

Не забудьте посетить сайт рассылки scripting.narod.ru, где имеется много другой полезной информации, посвященной Windows Script и не вошедшей в рассылку.

Буду также рад получить от Вас письмо с Вашими вопросами, пожеланиями, предложениями и замечаниями: scripting@narod.ru.

Настоятельная рекомендация тем, кто подписан на текстовую версию рассылки: ***Подпишитесь на HTML-вариант***! Я подготавливаю только HTML-версию рассылки, а текстовая версия автоматически генерируется из нее на Subscribe.ru, причем не самым лучшим образом (:

Посмотрите на HTML-версию этой рассылки, которая находится здесь: http://scripting.narod.ru/issues/issue003.htm.

 
Оглавление рассылки
 
 
Новости
 
Выпущен Microsoft SQL Server 2000
 
  • 26.09.2000
    Выпущен Microsoft SQL Server 2000. Ознакомительную версию сервера можно скачать с сайта компании: http://www.microsoft.com/sql/downloads/default.htm.
  •  
    Вопросы и ответы
     
    Как узнать IP-адрес удаленного компьютера?
     
    Узнать IP-адрес удаленного компьютера можно, например, с помощью Microsoft Winsock control.

    Некоторые особенности кода:

    Во-первых, для TCP-соединения с удаленным сервером мы будем использовать порт 139, на котором "сидит" NETBIOS. Как правило, этот порт доступен всегда.

    А самое интересное, метод Connect является асинхронным - то есть возврат из него осуществляется сразу же, не дожидаясь установления соединения. Чтобы узнать о соединении (или о произошедшей ошибке), нам нужно дождаться события Connect (или, соответственно, события Error). Реализовать это в скрипте не так уж и просто. Воспользуемся простейшим вариантом - после метода Connect покажем message box, а после получения события - закроем его.

    В-третьих, обратите внимание, как мы из скрипта закрываем диалог - с помощью метода SendKeys стандартного объекта WScript.Shell мы посылаем диалогу сообщение о нажатии клавиши Escape.

    Листинг

    Option Explicit Const AppName = "Remote IP" Dim Server Server = InputBox("Enter server name:", AppName) If Len(Server) = 0 Then WScript.Quit Dim Winsock Set Winsock = WScript.CreateObject("MSWinsock.Winsock", "Winsock_") Winsock.Connect Server, 139 Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") MsgBox "Please wait...", vbInformation, AppName Set Winsock = Nothing Set Shell = Nothing Sub Winsock_Connect MsgBox "IP address for " & Server & " is " & _ Winsock.RemoteHostIP, vbInformation, AppName CloseMsgBox End Sub Sub Winsock_Error(Number, Description, Scode, Source, _ HelpFile, HelpContext, CancelDisplay) MsgBox "Error " & Number & vbNewLine & Description, vbCritical, AppName CloseMsgBox End Sub Sub CloseMsgBox Shell.AppActivate AppName Shell.SendKeys "{ESC}" End Sub
     
    Скрипты
     
    Запись в CSV-файл всех активных checkouts
     
    При использовании Microsoft Visual SourceSafe у администратора часто возникает необходимость узнать, какие файлы находятся в состоянии checked-out. Приведенный здесь скрипт решает эту проблему.

    В ходе своей работы скрипт создает в текущем каталоге текстовый CSV-файл со списком всех checked-out файлов и для каждого такого файла указывает его полный путь в SourceSafe, а также кто и когда сделал checkout.

    Полученный CSV-файл можно загрузить в Microsoft Excel для последующего анализа.

    Комментарии к коду:

    • Прежде чем запустить скрипт, измените параметры Path, User, Password и StartFrom в соответствии с Вашей ситуацией.
    • Алгоритм работы прост - мы открываем базу данных SourceSafe с заданными именем пользователя и паролем, и, начиная с заданной точки, рекурсивно обходим все проекты. В каждом проекте мы извлекаем информацию о checked-out файлах и записываем ее в текстовый CSV-файл.
    • Запись в CSV-файл осуществляется стандартно, через объект FileSystemObject.

    Листинг

    Option Explicit ' Измените эти параметры в соответствии с Вашей ситуацией Dim Path, User, Password, StartFrom Path = "C:\Program Files\Microsoft Visual Studio\VSS\srcsafe.ini" ' полный путь к файлу srcsafe.ini User = "user" ' имя пользователя SourceSafe Password = "password" ' пароль пользователя StartFrom = "$\" ' проект, с которого начинать рекурсию ' Создаем пустой CSV-файл и пишем в него заголовок Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim File Set File = FSO.OpenTextFile("checkouts.csv", 2, True) File.WriteLine """File Path"";""User Name"";""Checkout Time""" ' Открываем SourceSafe Dim VSSDatabase Set VSSDatabase = CreateObject("SourceSafe.0") VSSDatabase.Open Path, User, Password Dim RootItem Set RootItem = VSSDatabase.VSSItem(StartFrom) ' Рекурсивно проходим по всем проектам Scanner RootItem.Items ' Закрываем SourceSafe Set VSSDatabase = Nothing ' Закрываем файл File.Close Set FSO = Nothing ' Все MsgBox "Finished.", vbInformation WScript.Quit ' -------------------------------------------------------------------- ' Процедура рекурсивного прохода по всем проектам Sub Scanner(Items) Dim Item For Each Item In Items If Item.Type = 0 Then ' VSSITEM_PROJECT Scanner Item.Items ElseIf Item.Type = 1 Then ' VSSITEM_FILE If Item.IsCheckedOut Then Dim Checkout For Each Checkout In Item.Checkouts ' цикл на случай multiple checkouts File.WriteLine """" & Item.Spec & _ """;" & Checkout.UserName & _ ";""" & Checkout.Date & """" Next End If End If Next End Sub ' --------------------------------------------------------------------
    Полезные ActiveX
     
    Dimac w3 JMail
     

    Кратко

    Этот бесплатный и очень популярный ActiveX позволяет выполнять следующие действия:
    • посылка почтовых сообщений по протоколу SMTP;
    • прием почты по протоколу POP3;
    • шифровка писем с помощью PGP;
    • массовая рассылка писем.

    Ссылки

    Домашняя страница
    Скачать дистрибутив
    Скачать документацию
    Стартовая страница сервера (там есть и другие компоненты!)

    Объект JMail.SpeedMailer

    Этот объект позволяет осуществлять посылку писем с помощью вызова буквально одного метода этого объекта. Письмо можно послать тремя способами:
    • по протоколу SMTP;
    • через pickup-каталог;
    • через не очень пока для меня понятный метод SendXMLMail.

    Простая посылка письма по протоколу SMTP

    Во-первых, создаем объект SpeedMailer:

    Set JMail = CreateObject("JMail.SpeedMailer") А теперь посылаем письмо: JMail.SendMail "me@myDomain.com", "scripting@narod.ru", _ "Subject", "Body", "smtp.narod.ru" Первый параметр - это адрес или имя отправителя, может быть любым. Второй параметр - адрес получателя. Третий - заголовок письма, четвертый - тело письма. Пятый - имя доступного Вам SMTP-сервера, через который будет отправлено письмо.

    Можно послать письмо сразу нескольким адресатам. В этом случае их адреса разделяются запятой:

    JMail.SendMail "me@myDomain.com", "scripting@narod.ru, me@myDomain.com", _ "Subject", "Body", "smtp.narod.ru"

    А теперь все вместе:

    Option Explicit Dim JMail Set JMail = CreateObject("JMail.SpeedMailer") JMail.SendMail "me@myDomain.com", "scripting@narod.ru", _ "Subject", "Body", "smtp.narod.ru" Set JMail = Nothing

    Продолжение следует...

     
    Новые статьи из Microsoft Knowledge Base
     
    Enhanced Split Function for Text Parsing
     
    Статья посвящена использованию функции Split. Эта функция принимает на входе строку, разбивает ее на части в соответствии с указанным разделителем и возвращает массив строк.
     
    Разное
     
    Основные разделы сайта рассылки
     
    • Главная страница - Главная страница сайта: scripting.narod.ru.
    • Новости - Новости мира Windows Scripting.
    • Вопросы и ответы - В этом разделе Вы можете найти ответы на часто задаваемые вопросы и задать свой.
    • Скрипты - Здесь содержатся исходные тексты скриптов, в основном на VBScript.
    • ActiveX - Аннотированный список ActiveX-компонент, которые могут быть полезными при написании скриптов.
    • Книжная полка - Избранные книги по тематике сайта.
    • Knowledge Base - Ссылки на избранные статьи из Microsoft Knowledge Base.
    • Конференции - Список избранных телеконференций, посвященных скриптингу.
    • Ссылки - Список ссылок на сайты схожей тематики.
     
    Обратная связь
     
     

    http://subscribe.ru/
    E-mail: ask@subscribe.ru

    В избранное