К сожалению это выводит лишь окошечко подключения, за которым ещё окошечко и т.д. Это не подключает.
Хотя в Windows 8 это окно выводило на подключению сразу, без новых безумных metro окон.
$itemName = 'Ростелеком'
$pressIt = 'Подкл&ючить/отключить'
$sa = New-Object -ComObject Shell.Application
$sa.NameSpace(49).Items() | foreach ({
if($_.Name -eq $itemName){
$_.Verbs() | foreach ({
if ($_.name -eq $pressIt){
$_.DoIt()
break
}
})
}
})
Похоже сам запрос "не прибегая к rasphone.exe и rasdial.exe" бессмысленен ... по крайней мере в отношении к rasdial.exe.
Дело в том, что судя по всему, он просто является "входными воротами" в процесс программного подключения, если пользователь пожелает это сделать. И дальнейший его путь пойдёт теми же dll-ками и исполняемыми файлами, которые активируются стандартным нажатием кнопки подключить.
Простейший скрипт Powershell
$x='Ростелеком'
$a='login';
$b='password';
$c=$env:WINDIR+'\System32\rasdial.exe';
&$c @($x,$a,$b) 2>&1|ForEach{
$_
};
выведет вам ровно те же ошибки и сообщения, которые вы видите при обычном подключении.
То, что нужно вводить имя подключения Ростелеком к примеру - ни о чём не говорит, его можно взять из реестра.
HKEY_USERS\'+ваш GUID+'\Software\Microsoft\RAS Phonebook
параметр DefaultEntry - Подключение по умолчанию.
Ну а логин и пароль - чтобы все программы массово не стали ломиться в открытые ворота.
Важно, если не хотите увидеть крякозябры, не запускайте в среде powershell ISE.
Запуск стандартным Powershell файла ps.1 при помощи ярлыка
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -ExecutionPolicy Bypass -File "G:\mypath\name.ps1"