|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Сценарий входа |
|
VBS/WSH/JS - [решено] Сценарий входа
|
Пользователь Сообщения: 117 |
Профиль | Отправить PM | Цитировать Доброго Всем времени суток. Возникла необходимость завоять следующий сценарий входа пользователя в систему: Определить доменное имя текущего компюьтера, которое имеет вид компьютер-1, взять его последний символ (то бишь 1, что по сути является его порядковым номером), поставить этот символ в конец имени исполняемого файла (файл1.exe) и запустить файл. Файлы создавать не нужно. Они уже существуют. Имена файлов и компьютеров имеют одинаковую длинну. Если имя компьютера не соответствует условию (то есть не имеет формат компьютер-1) или если не найден файл - необходимо вывести сообщение об ошибке. Заранее спасибо.
|
|
Отправлено: 11:14, 02-09-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать amel27, При описании проблемы я не указал два очень важных ньюанса: машина находится в домене, поэтому доменное имя имеет вид компьютер-1.имя_домена, то есть часть имя_домена не нужно учитывать (наверное изза этого появляется Computer Name Error!) и второй момент: запускаемый файл, как и сам скрипт находятся в сети. Подскажите пожалуйста как будет выглядеть код в этом случае.
|
Отправлено: 02:19, 03-09-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата СаркозаН:
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
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Сценарий: \\шара\файл.lnk Строка: 21 Символ: 4 Ошибка: Не удается найти указанный файл Код: 80070002 Источник: (null) |
||
Отправлено: 09:31, 04-09-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата СаркозаН:
2. предупреждать надо, что это не обычный EXE, для запуска ярлыков вместо метода "Run" объекта "WScript.Shell" нужно использовать метод "ShellExecute" объекта "Shell.Application": |
|
Отправлено: 12:53, 04-09-2009 | #6 |
Пользователь Сообщения: 117
|
Профиль | Отправить PM | Цитировать Цитата amel27:
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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сценарий входа в 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 |
|