Comp.Soft
Главная | Регистрация | Вход
Воскресенье, 24-Ноября-2024, 02:58
АСТРАХАНЬ
Меню
Поиск
Категории
Беспроводные сети
Проводные сети
Прочее
Дешёвый СОФТ
Чат
Это нужно
Главная » Статьи » Сети » Проводные сети

Windows Script Host (WSH) - работа с сетевым окружением

Рассмотрим небольшой пример, в котором выведем в информационное окно сведения об имени пользователя, имени компьютера и домене:

//Пример работы с WshNetwork в JScript //Создаем объект WshNetwork var WshNetwork = new ActiveXObject("WScript.Network"); //Создаем переменную info и заносим туда имя пользователя info = "Имя пользователя: " + WshNetwork.UserName; //Добавляем переход на следующую строку info = info + "n"; //Добавляем имя компьютера info = info + "Имя компьютера: " + WshNetwork.ComputerName; info = info + "n"; //Добавляем домен, к которому подключился пользователь info = info + "Домен: " + WshNetwork.UserDomain; //Выводим на экран полученную информацию WScript.Echo (info); `Тот же пример на VBScript Set WshNetwork = CreateObject("WScript.Network") info = "Имя пользователя: " & WshNetwork.UserName `Обратите внимание, как осуществляется переход на новую строку info = info & Chr(10) info = info & "Имя компьютера: " & WshNetwork.ComputerName info = info & Chr(10) info = info & "Домен: " & WshNetwork.UserDomain WScript.Echo info

В этих примерах мы использовали свойства объекта WshNetwork: UserName, ComputerName и UserDomain для получения информации о залогинившемся пользователе. Зачем это может понадобиться? Например, если на компьютере работает несколько пользователей и им нужен доступ к разным сетевым дискам, можно обеспечить автоматическое мапирование этих дисков в зависимости от того, какой пользователь сейчас работает.

Таким образом мы незаметно подошли к вопросу работы с сетевыми дисками. Для начала, неплохо бы выяснить, какие сетевые диски подключены в данный момент:

//JScript var vbOKOnly = 0; var vbInformation = 64; var WSHShell = WScript.CreateObject("WScript.Shell"); var WSHNetwork = WScript.CreateObject("WScript.Network") var colDrives = WSHNetwork.EnumNetworkDrives(); if (colDrives.length == 0) { WSHShell.Popup("Подключенных сетевых дисков нет", 0, "Работа с WSHNetwork", vbInformation + vbOKOnly ); } else { strMsg = "Текущие сетевые подключения: n"; for (i = 0; i < colDrives.length; i += 2) { strMsg = strMsg + "n" + colDrives(i) + "t" + colDrives(i + 1); } WSHShell.Popup(strMsg, 0, "Работа с WSHNetwork", vbInformation + vbOKOnly ); } `VBScript Set WSHNetwork = WScript.CreateObject("WScript.Network") Set colDrives = WSHNetwork.EnumNetworkDrives If colDrives.Count = 0 Then MsgBox "Подключенных сетевых дисков нет", _ vbInformation + vbOkOnly, _ "Работа с WSHNetwork" Else strMsg = "Текущие сетевые подключения: " & Chr(10) For i = 0 To colDrives.Count - 1 Step 2 strMsg = strMsg & Chr(10) & colDrives(i) & Chr(9) & colDrives(i + 1) Next MsgBox strMsg, _ vbInformation + vbOkOnly, _ "Работа с WSHNetwork" End If Думаю, подробно код объяснять не стоит, все довольно прозрачно: создаем нужные переменные, проверяем есть ли вообще подключенные диски, если нет - выводим соответствующее сообщение, если есть - выводим их список.

Для подключения и отключения сетевых дисков существуют методы MapNetworkDrive и RemoveNetworkDrive соответственно. Пример работы с ними (на JScript):

WshNetwork.MapNetworkDrive("X:", "\\S2\Vol1", "true", "User1", "123");

Здесь обязательными являются только первые два параметра: буква, на которую будет подключаться диск и, собственно, путь к сетевому диску. Третий (true или false) параметр указывает, осуществлять или нет подключение этого диска при следующем логоне. Четвертый и пятый параметры - это имя пользователя и пароль, с которыми может подключаться этот диск. Конечно, хранить пароль на подключение диска в открытом виде в скрипте не очень мудро. Лучше организовать доступ к диску нужным пользователям на сервере, средствами самой ОС. Тогда посторонние люди не смогут узнать пароль для работы с этим ресурсом.

WshNetwork.RemoveNetworkDrive("X:", "true", "true");

Здесь обязателен только первый параметр - буква отключаемого диска. Второй параметр - если true, отключает диск даже если он в этот момент используется. Третий параметр сохраняет настройки для следующих логонов.

С дисками разобрались, перейдем к сетевым принтерам. Работа с ними мало отличается от работы с дисками, поэтому похожие моменты опишу коротко, а остановлюсь подробнее именно на отличиях.

EnumPrinterCollections - возвращает список подключенных принтеров (аналогично дискам).

AddPrinterConnection - подключает локальный порт компьютера к сетевому принтеру. Параметры у этого метода аналогичны методу MapNetworkDrive, только первым параметром идет не буква диска, а порт принтера (LPT1, например).

RemovePrinterConnection - отключает сетевой принтер (вместо буквы диска - порт принтера).

SetDefaultPrinter - устанавливает заданный сетевой принтер принтером по умолчанию. В качестве параметра методу передается сетевое имя принтера, который будет использован по умолчанию (SetDefaultPrinter("\\Comp1\HP1100");).

AddWindowsPrinterConnections - регистрирует принтер в Windows и подключает его к сетевому ресурсу. Этот метод позволяет создать связь с сетевым принтером без явного перенаправления вывода в локальный порт. Набор параметров этого метода для Windows 9x и Windows NT/2000/XP отличается.

Для Windows 9x:

AddWindowsPrinterConnections(strPrnPath, strDriverName [,strPort]);

strPrnPath - путь к сетевому принтеру;

strDriverName - имя драйвера, необходимого для подключения принтера;

strPort - порт, куда будет перенаправлен вывод.

Для Windows NT/2000/XP последние два параметра игнорируются.

Вот, собственно, и вся информация по работе с сетевым окружением с помощью WSH. Областей, где это можно применить - масса, приведу только один пример, который сейчас активно используется у нас на работе: при каждой регистрации пользователя на компьютере отрабатывает logon-скрипт, который пишет в лог-файл (имеющий имя компьютера, на котором произошла регистрация) имя пользователя и время логона. Таким образом убиваются два зайца: можно выяснить на каком компьютере установлена неверная дата и кто заходит в сеть с чужого компьютера. Пример довольно легкий, так что я не буду приводить здесь его код, пусть это будет вашим домашним заданием :). Другие способы использования материалов этой статьи, надеюсь, придумаете сами.



Источник: http://webhowto.ru
Категория: Проводные сети | Добавил: Stranik (13-Мая-2009) | Автор: Admin
Просмотров: 2103 | Теги: сети | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Переводчик сайта
Менюшка

Соц. сети
Вход
Теги

Для красивого отображения Облака
необходим
Adobe Flash Player 9
или выше
Скачать Adobe Flash Player

ОЗОН
OZON.ru
Друзья

Переводчик онлайн
Submitter.ru - Регистрация в поисковых системах!
Погода
Яндекс.Погода
Статистика






Онлайн всего: 16
Гостей: 16
Пользователей: 0

При использовании материалов сайта, наличие гиперссылки на сайт обязательно
© 2024
Яндекс.Метрика
Результаты антивирусного сканирования