![]() |
Сценарий входа
Доброго Всем времени суток. Возникла необходимость завоять следующий сценарий входа пользователя в систему: Определить доменное имя текущего компюьтера, которое имеет вид компьютер-1, взять его последний символ (то бишь 1, что по сути является его порядковым номером), поставить этот символ в конец имени исполняемого файла (файл1.exe) и запустить файл. Файлы создавать не нужно. Они уже существуют. Имена файлов и компьютеров имеют одинаковую длинну. Если имя компьютера не соответствует условию (то есть не имеет формат компьютер-1) или если не найден файл - необходимо вывести сообщение об ошибке. Заранее спасибо.
|
СаркозаН, как вариант через RegExp (Computer-1/File_1):
Код:
Set objRegExp = CreateObject("VBScript.RegExp") |
amel27, При описании проблемы я не указал два очень важных ньюанса: машина находится в домене, поэтому доменное имя имеет вид компьютер-1.имя_домена, то есть часть имя_домена не нужно учитывать (наверное изза этого появляется Computer Name Error!) и второй момент: запускаемый файл, как и сам скрипт находятся в сети. Подскажите пожалуйста как будет выглядеть код в этом случае.
|
Цитата:
2. скрипту нужно передать всё имя до цифр (включая дефис); отладочный вариант с указанием пути к файлу и выводом промежуточных данных: Код:
Set objRegExp = CreateObject("VBScript.RegExp") |
Цитата:
Сценарий: \\шара\файл.lnk Строка: 21 Символ: 4 Ошибка: Не удается найти указанный файл Код: 80070002 Источник: (null) |
Цитата:
2. предупреждать надо, что это не обычный EXE, для запуска ярлыков вместо метода "Run" объекта "WScript.Shell" нужно использовать метод "ShellExecute" объекта "Shell.Application": Код:
' ... |
Цитата:
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 Надеюсь еще кому-нибудь пригодится! Тему можно считать закрытой. |
Время: 20:41. |
Время: 20:41.
© OSzone.net 2001-