Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Windows Scripting Host trouble...

Ответить
Настройки темы
Windows Scripting Host trouble...

Аватара для Mr Dan

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем!!!

Народ, кто сталкивался с WSH - помогите.....

Пытаюсь подключить сетевой диск, предварительно удалив старый, делаю:

JScript:
var Network = WScript.CreateObject("WScript.Network";
Network.RemoveNetworkDrive ("O:";
Network.MapNetworkDrive ("O:", "\\\\krrunion\\user";

При запуске выдает ошибку:
"Локальное имя устройства уже используется для подключения к другому сетевому ресурсу"

Получается, что Network.RemoveNetworkDrive ("O:" отрабатывает, а Network.MapNetworkDrive ("O:", "\\\\krrunion\\user" - нехочет, ругается.........

В чем проблема, не пойму?! Помогите.....

З.Ы. Да, кстати паузу между этими коммандами я пробовал ставить - тоже не помогает

-------
The truth is out there...


Отправлено: 09:35, 05-11-2003

 

Старожил


Сообщения: 185
Благодарности: 1

Профиль | Отправить PM | Цитировать


команды
net use o: /del
net use o: \\krrunion\user
выполняются успешно?

Хорошо бы перехватывать ошибку в строке Network.RemoveNetworkDrive ("O:"; если О: не подключен.

У меня этот скрипт выполняется без проблем.

-------
I like to move it, move it.


Отправлено: 13:48, 05-11-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Mr Dan

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


2DAnG

Да в том то и дело, что net use выполняется успешно, а вот Network.MapNetworkDrive ("O:", "\\\\krrunion\\user"; - нет. ?!

До использования  Network.RemoveNetworkDrive ("O:"; выполняется проверка подключен ли сетевой диск, аль нет, так что тут проблем никаких.....

Такое ощущение что WSH просто не могёт подряд выполнять команды RemoveNetworkDrive и MapNetworkDrive

???

-------
The truth is out there...


Отправлено: 14:35, 05-11-2003 | #3


Старожил


Сообщения: 185
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сорри, поторопился с ответом.

Расследование показало, что нужно использовать
Network.RemoveNetworkDrive ("O:",1,1);

Цитата:
object.RemoveNetworkDrive(strName, [bForce], [bUpdateProfile])

-------
I like to move it, move it.


Отправлено: 21:22, 05-11-2003 | #4


Аватара для Mr Dan

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


2DAnG

Во спасибо, выручил.......последние два параметра оказались как нельзя кстати

Да, кстати, а ты пробовал подключать сетевые принтеры через метод AddWindowsPrinterConnection?
Насколько я понял можно подключать только те принтеры, которые непосредственно подключены к машине на базе NT.
А у меня в сети подавляющее большинство машин с 98-й виндой и этот метод не отрабатывает......при попытке подключения AddWindowsPrinterConnection("\\\\CompName\\EPSON" пишет:
"The remote server machine does not exist or is unavailable", хотя эта машина есть и доступ к ней тоже есть и принтер расшаренный и все такое.........

Может сталкивался?!


-------
The truth is out there...


Отправлено: 10:03, 06-11-2003 | #5


Аватара для SergOst

Ветеран


Сообщения: 935
Благодарности: 50

Профиль | Отправить PM | Цитировать


To Mr Dan:

Объяните чайнику: Прочитал ваши письма, вдохновился,
скопировал следующие строки в файл FFF.js

var Network = WScript.CreateObject("WScript.Network";
Network.RemoveNetworkDrive ("n:",1,1);
Network.MapNetworkDrive ("n:", "\\\\comp1\\c$";

щелкнул дважды по этому файлу и получил ошибку во второй строке (символ 1), недоступный сетевой диск

Что я сделал не так? Команда net use n: \\comp1\c$ исправно срабатывает и подключает сетевой диск N.
Естественно, когда запускаю *.js n-диска нет.
Вообще зачем вторая строка? Пробовал ее переставить третьей - не помогло.
Функцию Block Scripting в Norton АV отключил, может ее надо отключать и на компе, куда подключаешься?


[s]Исправлено: SergOst, 14:58 6-11-2003[/s]

Отправлено: 13:56, 06-11-2003 | #6


Аватара для Mr Dan

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


2SergOst


Если тебе просто нужно подключить диск, делаешь Network.MapNetworkDrive ("n:", "\\\\comp1\\c$", без Network.RemoveNetworkDrive ("n:",1,1).
В твоём же случае получается, что сначала выполняется команда *Network.RemoveNetworkDrive ("n:",1,1), которая пытается отключить диск n: , но поскольку диска n: у тебя нету, она тебе и ругается, грит мол недоступный сетевой диск.

Делай так:

var Network = WScript.CreateObject("WScript.Network";
Network.MapNetworkDrive ("n:", "\\\\comp1\\c$";

и все должно быть ОК.

З.Ы. А вобще при желании можешь написать ф-ю которая бы сначала проверяла подключен ли уже сетевой диск или нет, а потом в зависимости от результата действуешь....

Например моя ф-я выглядит  так:

function CheckNetworkMapping(DriveLetter,Path)
*// Возвращаемые значения:
* * // 0 - диск не найден
* * // 1 - диск найден, но несоответствует Path
* * // 2 - диск найден и соответствует Path
* *var Bool;
* *var Result;
* * Bool = false;
* *var Drives = Network.EnumNetworkDrives();
* *for(var i = 0; i < Drives.length; i += 2)
* *{
* * *if(Drives.Item(i).toLowerCase() == DriveLetter.toLowerCase())
* * * { Bool = true; if(Drives.Item(i+1).toLowerCase()==Path.toLowerCase()) Result = 2; else Result = 1;
* * * * break;
* * * }
* *}
* *if(Bool)
* * return Result
* *else
* * return Result = 0; *
}

-------
The truth is out there...


Отправлено: 14:40, 06-11-2003 | #7


Аватара для SergOst

Ветеран


Сообщения: 935
Благодарности: 50

Профиль | Отправить PM | Цитировать


To Mr Dan

Спасибо, все получилось с подключением-отключением.

А эту функцию тоже можно в *.js файл запихать и в нем вызывать?

функция не совсем понятна: что имеется в виду под Path, когда диск подключен? UNC имя что-ли? (в моем случае \\comp1\c$ ?)

Если да, то оно прямо так в кавычках строкой и подставляется в вызов функции, как и "n:"?


Отправлено: 18:09, 06-11-2003 | #8


Аватара для Mr Dan

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


2SergOst

>> А эту функцию тоже можно в *.js файл запихать и в нем вызывать?

Using Windows Script Files (.wsf)
A Windows script (*.wsf) file is a text document containing Extensible Markup Language (XML) code. It incorporates several features that offer you increased scripting flexibility. Because Windows script files are not engine-specific, they can contain script from any Windows Script compatible scripting engine. They act as a container.

With .wsf files, you can take advantage of the following features as you create your scripts:

.wsf files support
Include statements, Multiple engines,Type libraries, Tools,Multiple jobs in one file.

Include Statements
If you have .js and .vbs files from previous Windows Script Host projects, a .wsf file enables you to use them with Windows Script Host. A .wsf file encapsulates a library of functions that can in turn be used by multiple .wsf files.

The following example shows a .wsf file that includes a JScript file (fso.js), plus a VBScript function that calls a function (GetFreeSpace) in the included file. The contents of fso.js are also shown.

<job id="IncludeExample">
  <script language="JScript" src="FSO.JS"/>
  <script language="VBScript">
     ' Get the free space for drive C.
     s = GetFreeSpace("c:"
     WScript.Echo s
  <sScript>
</job>
The fso.js file contains the following:

function GetFreeSpace(drvPath) {
  var fs, d, s;
  fs = new ActiveXObject("Scripting.FileSystemObject";
  d = fs.GetDrive(fs.GetDriveName(drvPath));
  s = "Drive " + drvPath + " - " ;
  s += d.VolumeName;
  s += " Free Space: " + d.FreeSpace/1024 + " Kbytes";
  return s;
}


>>функция не совсем понятна: что имеется в виду под Path, когда диск подключен? UNC имя что-ли? (в моем случае \\comp1\c$ ?)

>>Если да, то оно прямо так в кавычках строкой и подставляется в вызов функции, как и "n:"?

Под Path имеется в виду UNC имя, записывается в кавычках, например  CheckNetworkMapping("n:","\\\\disk\\dir"

-------
The truth is out there...


Отправлено: 18:49, 06-11-2003 | #9


Старожил


Сообщения: 185
Благодарности: 1

Профиль | Отправить PM | Цитировать


Mr Dan
Цитата:
ты пробовал подключать сетевые принтеры через метод AddWindowsPrinterConnection?
нет. Но судя по "ручному подключению", для подключения принтера win9x нужно указывать его драйвер. Возможно. проблема в этом.

P.S. я не спец по WSH, и не очень его люблю за громоздкость. perl, имхо,  гораздо симпатичнее

-------
I like to move it, move it.


Отправлено: 19:01, 06-11-2003 | #10



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Windows Scripting Host trouble...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Host process for windows service пожиратель трафика antikiller_bm Microsoft Windows 7 21 03-11-2012 21:29
Host process for windows service пожиратель трафика antikiller_bm Лечение систем от вредоносных программ 1 27-09-2009 21:58
bash scripting Flick Программирование в *nix 5 06-06-2007 18:37
Windows Script Host + Unattended Installation Debugger Автоматическая установка Windows 2000/XP/2003 5 23-12-2004 07:34
Windows Script Host Dennis Сетевые технологии 1 04-03-2003 14:19




 
Переход