1

Тема: VBScript: создание ярлыка для сетевого подключения

Создание ярлыка на Рабочем столе для существующего сетевого подключения (VPN или любого другого). В коде вместо "Имя соединения" укажите полное наименование нужного сетевого подключения, так, как оно отображается в папке Проводника "Сетевые подключения".

Option Explicit

Const ssfCONNECTIONS = &H0031
Const ssfDESKTOP = &H0000
'Const ssfCOMMON_DESKTOPDIRECTORY = &H0019

Dim objShell
Dim objFolderConnections
Dim objFolderDesktop
'Dim objFolderAllUsersDesktop
Dim objSubFolder


Set objShell = WScript.CreateObject("Shell.Application")
Set objFolderConnections = objShell.NameSpace(ssfCONNECTIONS)

If (Not objFolderConnections Is Nothing) Then
    For Each objSubFolder In objFolderConnections.Items
        If objSubFolder.Name = "Имя соединения" Then
            Set objFolderDesktop = objShell.NameSpace(ssfDESKTOP) 'objFolderAllUsersDesktop
            
            If (Not objFolderDesktop Is Nothing) Then
                objFolderDesktop.CopyHere objSubFolder
            End If
        End If
    Next
End If

Set objFolderDesktop = Nothing ' objFolderAllUsersDesktop
Set objFolderConnections = Nothing
Set objShell = Nothing

WScript.Quit 0

При повторном исполнении скрипта на Рабочем столе появится ещё один ярлык с именем «Имя соединения (2)», «Имя соединения (3)» и т.д.
Автор скрипта - alexii.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: VBScript: создание ярлыка для сетевого подключения

Существует ещё один способ создать ярлык для существующего в телефонной книге удалённого подключения. Он заключается в создании текстового файла с произвольным именем и расширением «rnk» в кодировке ANSI (windows-1251), имеющего структуру ini-файла следующего вида:
* имя секции:

[Dial-Up Shortcut]

* параметры (порядок параметров внутри секции не важен):

Phonebook=<полный путь к телефонной книге>
Entry=<имя существующего подключения из телефонной книги>

Пример: C:\Documents and Settings\User\Рабочий стол\Мой Интернет.rnk

[Dial-Up Shortcut]
Entry=Интернет
Phonebook=C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk

Созданный ярлык по поддерживаемым действиям аналогичен «обычному» помещению ярлыка существующего подключения на рабочий стол (за исключением некоторых деталей, о которых ниже). Функции подключения, отключения и редактирования свойств подключения, указанного ярлыком, выполняет связанное с типом файлов «rnk» приложение RasPhone.exe — «Телефонная книга удаленного доступа».

Подключить:

rasphone.exe -lt "C:\Documents and Settings\User\Рабочий стол\Мой Интернет.rnk"

Отключить:

rasphone.exe -lh "C:\Documents and Settings\User\Рабочий стол\Мой Интернет.rnk"

Изменение настроек подключения:

rasphone.exe -le "C:\Documents and Settings\User\Рабочий стол\Мой Интернет.rnk"

Замечание.
Поскольку в современных операционных системах описанная возможность оставлена, скорее, для совместимости, то:
* пункты контекстного меню в локализованной версии Windows XP выглядят как «Connect», «Disconnect» и «Edit connection properties»;
* вызов команды контекстного меню «Edit connection properties» приводит к появлению диалогового окна со справкой по ключам приложения RasPhone.exe.

Локализовать контекстное меню можно в стиле Windows XP так: rnkfile - Localize like XP.reg

REGEDIT4

[HKEY_CLASSES_ROOT\rnkfile\shell\Connect]
@="&Подключить"

[HKEY_CLASSES_ROOT\rnkfile\shell\Disconnect]
@="&Отключить"

[HKEY_CLASSES_ROOT\rnkfile\shell\Edit Connection Properties]
@="&Изменение настроек подключения"

Либо в стиле Windows NT: rnkfile - Localize like NT.reg

REGEDIT4

[HKEY_CLASSES_ROOT\rnkfile\shell\Connect]
@="&Набрать номер"

[HKEY_CLASSES_ROOT\rnkfile\shell\Disconnect]
@="&Повесить трубку"

[HKEY_CLASSES_ROOT\rnkfile\shell\Edit Connection Properties]
@="&Изменить запись или параметры модема"

Следующий файл восстановит значения по умолчанию для Windows XP: rnkfile - Localize Restore XP default.reg

REGEDIT4

[HKEY_CLASSES_ROOT\rnkfile\shell\Connect]
@=-

[HKEY_CLASSES_ROOT\rnkfile\shell\Disconnect]
@=-

[HKEY_CLASSES_ROOT\rnkfile\shell\Edit Connection Properties]
@=-

Ошибка при вызове команды контекстного меню «Edit connection properties» происходит оттого, что в записи реестра хранится вызов приложения RasPhone.exe с более не поддерживаемым ключом «-v». Исправить ситуацию поможет следующий файл: rnkfile - Make Available [Edit Connection Properties] command.reg

REGEDIT4

[HKEY_CLASSES_ROOT\rnkfile\shell\Edit Connection Properties\command]
@="C:\\WINDOWS\\system32\\rasphone.exe -le \"%1\""

Следующий файл восстановит значения по умолчанию для Windows XP [не знаю к чему, но, коль полагается, — прикладываю]: rnkfile - [Edit Connection Properties] Restore XP default.reg

REGEDIT4

[HKEY_CLASSES_ROOT\rnkfile\shell\Edit Connection Properties\command]
@="C:\\WINDOWS\\system32\\rasphone.exe -v -le \"%1\""