IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Операционные системы M$ (https://www.imho.ws/forumdisplay.php?f=2)
-   -   Logon script на WSH в XP и в 98-й - HELP!!! (https://www.imho.ws/showthread.php?t=38725)

NarcomBAT 13.09.2003 16:36

Logon script на WSH в XP и в 98-й - HELP!!!
 
поставил я себе logon script (Win2000 adv server )

// JScript.
var oNet, sUser, Initial, startTime;
oNet = new ActiveXObject("WScript.Network");
// Get the user name. On Windows 98 and Windows ME, the use may not be logged
// on when the script starts running; keep checking every 1/2 a
// second until they are logged on
sUser = oNet.UserName;
//WScript.Echo(sUser);
startTime = new Date();
while (sUser == "")
{
var curTime = new Date();
if ((curTime - startTime) > 30000) WScript.Quit();
WScript.Sleep(1000);
sUser = oNet.UserName;
}
WScript.Echo(sUser);
switch (sUser) {
case "Ivanov" :
UserName = "Ivanov"
break
case "Petrov" :
UserName = "Petrov"
break
default :
UserName = ""
}
// Add a share drive
var oDrives = oNet.EnumNetworkDrives();

for(i=0; i<oDrives.Count(); i+=2){
if (oDrives.Item(i) == "O:"){
oNet.RemoveNetworkDrive ("O:",true,true);
continue;
}
if (oDrives.Item(i) == "S:"){
oNet.RemoveNetworkDrive ("S:",true,true);
continue;
}
if (oDrives.Item(i) == "H:"){
oNet.RemoveNetworkDrive ("H:",true,true);
continue;
}

}

oNet.MapNetworkDrive("O:", "\\\\server\\server");
oNet.MapNetworkDrive("S:","\\\\server\\shared");
oNet.MapNetworkDrive("H:", "\\\\server\\users\\" + UserName);

при подключении XP машин отлично работает,
но при подключении 98 машин скрипт даже не запускается
и сетевые диски не подключаются.
А вот если после того как 98-ая машина въехала в домен запустить этот скрипт в ручную на самой 98-й то все Ok.


В чем проблема? Где исправить?

Dead Man 14.09.2003 01:54

Поставь скрипт в автозагрузку после Logina.

NarcomBAT 15.09.2003 17:20

Dead Man

Цитата:

Поставь скрипт в автозагрузку после Logina.
в автозагрузку на клиенской машине?

но я не хочу что-то ставить на клиентские машины мне надо делать все через logon script.

Я не много почитал - Говорят машины типа NT4.0 (если не ошибаюсь то Win98 как раз такая) не выполняет при въезде в домен ничего кроме *.bat и чтобы его выполнить (i.e *.js) необходимо *.js упаковать в *.bat что я и сделал

net use x: \\server\netlogon
REM wait for me
pause
cscript x:\logon.js
pause
REM wait for me

x: отлично подключился
а вот скрипт не выполнился со следыющей ошибкой которую выдал уже WSH
срипт ....\logon.js не выполнен поскольку пользователь не подклчен к сети или что-то вроде того.

в общем я проблемму локализовал.
дело в том что logon script на win98 запускается слишком рано и в момент его запуска такое свойство объекта WScript.Network как UserName вообще не существует(по этому используется цикл While(){} как написано в помощи от M$)
но толь при обращении к свойству UserName скрипт выдает ошибку и вылетает что делать в этом случае M$ умалчивает.

Я поставил //B т.е. выполняться в batch режиме

net use x: \\server\netlogon
cscript x:\logon.js //B

теперь скрипт выполняется но по прежнему не может определить свойство UserName на Win98

но как Вы заметели если ставить в автозагрузку то все Ok.

Dead Man 15.09.2003 17:23

Очень давно сталкивался с такой же проблеммой, решение тогда было принято АВТОЗАГРУЗКА, а ты как хочеш так и делай. ;)

NarcomBAT 15.09.2003 17:29

Dead Man

Thanks

Dead Man 16.09.2003 06:40

Не за что ;)


Часовой пояс GMT +4, время: 03:11.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.