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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Сценарий входа

Ответить
Настройки темы
VBS/WSH/JS - [решено] Сценарий входа

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


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

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


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

Отправлено: 11:14, 02-09-2009

 

Googler


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

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


СаркозаН, как вариант через RegExp (Computer-1/File_1):
Код: Выделить весь код
Set objRegExp  = CreateObject("VBScript.RegExp")
Set objNetwork = CreateObject("WScript.Network")
Set objShell   = CreateObject("WScript.Shell")

objRegExp.Pattern = "^Computer-\d+$"
objRegExp.IgnoreCase = True
strComputer = objNetwork.ComputerName

If objRegExp.Test(strComputer) Then
   objRegExp.Pattern = "^.*?(\d+)$"
   strFile = "File_" & objRegExp.Replace(strComputer, "$1") & ".exe"

   WScript.Echo "FileName: "& strFile
   objShell.Run "strFile"
Else
   WScript.Echo "Computer Name Error!"
End If
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:49, 02-09-2009 | #2



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

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


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


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

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


amel27, При описании проблемы я не указал два очень важных ньюанса: машина находится в домене, поэтому доменное имя имеет вид компьютер-1.имя_домена, то есть часть имя_домена не нужно учитывать (наверное изза этого появляется Computer Name Error!) и второй момент: запускаемый файл, как и сам скрипт находятся в сети. Подскажите пожалуйста как будет выглядеть код в этом случае.

Отправлено: 02:19, 03-09-2009 | #3


Googler


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

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


Цитата СаркозаН:
При описании проблемы я не указал два очень важных ньюанса »
1. objNetwork.ComputerName возвращает имя станции без домена;
2. скрипту нужно передать всё имя до цифр (включая дефис);

отладочный вариант с указанием пути к файлу и выводом промежуточных данных:
Код: Выделить весь код
Set objRegExp  = CreateObject("VBScript.RegExp")
Set objNetwork = CreateObject("WScript.Network")
Set objShell   = CreateObject("WScript.Shell")

strName = "Computer-"
strFile = "File_"
strPath = "\\SERVER\SHARE"

objRegExp.Pattern = "^" & strName & "\d+$"
objRegExp.IgnoreCase = True
strComputer = objNetwork.ComputerName

WScript.Echo "ComputerName: " & vbTAB & """" & strComputer & """" & vbCRLF & _
             "Pattern String: " & vbTAB & """" & objRegExp.Pattern & """"

If objRegExp.Test(strComputer) Then
   objRegExp.Pattern = "^.*?(\d+)$"
   strFile = strPath & "\" & strFile & objRegExp.Replace(strComputer, "$1") & ".exe"

   WScript.Echo "FileName: "& strFile
   objShell.Run "strFile"
Else
   WScript.Echo "Computer Name Error!"
End If

Отправлено: 10:41, 03-09-2009 | #4


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


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

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


Цитата amel27:
отладочный вариант с указанием пути к файлу и выводом промежуточных данных: »
При запуске скрипта имя компа определяется верно, пути и имена файлов тож верные, но выдает ошибку
Сценарий: \\шара\файл.lnk
Строка: 21
Символ: 4
Ошибка: Не удается найти указанный файл
Код: 80070002
Источник: (null)

Отправлено: 09:31, 04-09-2009 | #5


Googler


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

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


Цитата СаркозаН:
Не удается найти указанный файл »
1. если не находит файл, значит его либо нет, либо к нему у скрипта нет доступа
2. предупреждать надо, что это не обычный EXE, для запуска ярлыков вместо метода "Run" объекта "WScript.Shell" нужно использовать метод "ShellExecute" объекта "Shell.Application":

Код: Выделить весь код
' ...
Set objApp = CreateObject("Shell.Application")
' ...
objApp.ShellExecute "strFile"
' ...
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:53, 04-09-2009 | #6


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


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

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


Цитата amel27:
amel27 »
, ОГРОМНОЕ Вам спасибо!!! И на практике помогли, и разъяснили разницу между запуском ехе-файлов и lnk! Приведу конечный код скрипта:

Set objRegExp = CreateObject("VBScript.RegExp")
Set objNetwork = CreateObject("WScript.Network")
Set objApp = CreateObject("Shell.Application")

strName = "Computer-"
strFile = "File"
strPath = "\\ServerName\Test"

objRegExp.Pattern = "^" & strName & "\d+$"
objRegExp.IgnoreCase = True
strComputer = objNetwork.ComputerName

WScript.Echo "ComputerName: " & vbTAB & """" & strComputer & """" & vbCRLF & _
"Pattern String: " & vbTAB & """" & objRegExp.Pattern & """"

If objRegExp.Test(strComputer) Then
objRegExp.Pattern = "^.*?(\d+)$"
strFile = strPath & "\" & strFile & objRegExp.Replace(strComputer, "$1") & ".lnk"

WScript.Echo "FileName: "& strFile
objApp.ShellExecute strFile
Else
WScript.Echo "Computer Name Error!"
End If

Надеюсь еще кому-нибудь пригодится! Тему можно считать закрытой.

Отправлено: 11:15, 05-09-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Сценарий входа

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сценарий входа в AD СаркозаН Microsoft Windows NT/2000/2003 8 07-09-2009 08:10
Как через сценарий входа подключять источник данных ODBC ? Большой Кол Microsoft Windows NT/2000/2003 2 16-02-2009 08:27
Сценарий входа YDen Microsoft Windows NT/2000/2003 9 01-10-2008 10:16
Сценарий входа в Windows 2003 ForGroin Microsoft Windows NT/2000/2003 14 05-09-2007 13:28
Сценарий входа -Проблема galex200 Microsoft Windows NT/2000/2003 5 15-03-2007 10:34




 
Переход