Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Секреты файла Rasphone.pbk или какой текст нужен для корректной работы файла Rasphone (http://forum.oszone.net/showthread.php?t=271515)

Nescoffe 07-11-2013 07:24 2248963

Секреты файла Rasphone.pbk или какой текст нужен для корректной работы файла Rasphone
 
Добрый день, коллеги.

Пишу Bat файл для добавления в файл %USERPROFILE%\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk нового VPN подключения.

Обнаружил интересную особенность, если текст записывается из bat файла, то файл rasphone.pbk перестает работать, следовательно я не вижу VPN\Dialup соединений в панели управления.

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

В чем же секрет данного файла и текста в нем.

Ниже приведены примеры текстов, если их скопировать в файл rasphone.pbk, то один из них будет работать, а другой нет.

Пример неработающего текста -
Код:

[MS_VPN1]
Encoding=1
PBVersion=2
Type=2
AutoLogon=0
UseRasCredentials=1
LowDateTime=2016871744
HighDateTime=30333636
DialParamsUID=1031494
Guid=11567330C4F89945B38B2CA0BDAF4E9F
VpnStrategy=1
ExcludedProtocols=8
LcpExtensions=1
DataEncryption=256
SwCompression=0
NegotiateMultilinkAlways=0
SkipDoubleDialDialog=0
DialMode=0
OverridePref=15
RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1
CallbackMode=0
CustomDialDll=
CustomDialFunc=
CustomRasDialDll=
ForceSecureCompartment=0
DisableIKENameEkuCheck=0
AuthenticateServer=0
ShareMsFilePrint=1
BindMsNetClient=1
SharedPhoneNumbers=0
GlobalDeviceSettings=0
PrerequisiteEntry=
PrerequisitePbk=
PreferredPort=VPN3-0
PreferredDevice=Мини-порт глобальной сети (PPTP)
PreferredBps=0
PreferredHwFlow=1
PreferredProtocol=1
PreferredCompression=1
PreferredSpeaker=1
PreferredMdmProtocol=0
PreviewUserPw=1
PreviewDomain=1
PreviewPhoneNumber=0
ShowDialingProgress=1
ShowMonitorIconInTaskBar=1
CustomAuthKey=0
AuthRestrictions=512
IpPrioritizeRemote=0
IpInterfaceMetric=0
IpHeaderCompression=0
IpAddress=0.0.0.0
IpDnsAddress=0.0.0.0
IpDns2Address=0.0.0.0
IpWinsAddress=0.0.0.0
IpWins2Address=0.0.0.0
IpAssign=1
IpNameAssign=1
IpDnsFlags=0
IpNBTFlags=1
TcpWindowSize=0
UseFlags=2
IpSecFlags=0
IpDnsSuffix=microsoft.ru
Ipv6Assign=1
Ipv6Address=::
Ipv6PrefixLength=0
Ipv6PrioritizeRemote=1
Ipv6InterfaceMetric=0
Ipv6NameAssign=1
Ipv6DnsAddress=::
Ipv6Dns2Address=::
Ipv6Prefix=0000000000000000
Ipv6InterfaceId=0000000000000000
DisableClassBasedDefaultRoute=0
DisableMobility=0
NetworkOutageTime=0
ProvisionType=0
PreSharedKey=
CacheCredentials=1
 
NETCOMPONENTS=
ms_msclient=1
ms_server=1
 
MEDIA=rastapi
Port=VPN3-0
Device=Мини-порт глобальной сети (PPTP)
 
DEVICE=vpn
PhoneNumber=a2.microsoft.ru
AreaCode=
CountryCode=0
CountryID=0
UseDialingRules=0
Comment=
FriendlyName=
LastSelectedPhone=0
PromoteAlternates=0
TryNextAlternateOnFail=1

Тот же текст, только работающий -

Код:

[MS_VPN1]
Encoding=1
PBVersion=2
Type=2
AutoLogon=0
UseRasCredentials=1
LowDateTime=2016871744
HighDateTime=30333636
DialParamsUID=1031494
Guid=11567330C4F89945B38B2CA0BDAF4E9F
VpnStrategy=1
ExcludedProtocols=8
LcpExtensions=1
DataEncryption=256
SwCompression=0
NegotiateMultilinkAlways=0
SkipDoubleDialDialog=0
DialMode=0
OverridePref=15
RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1
CallbackMode=0
CustomDialDll=
CustomDialFunc=
CustomRasDialDll=
ForceSecureCompartment=0
DisableIKENameEkuCheck=0
AuthenticateServer=0
ShareMsFilePrint=1
BindMsNetClient=1
SharedPhoneNumbers=0
GlobalDeviceSettings=0
PrerequisiteEntry=
PrerequisitePbk=
PreferredPort=VPN3-0
PreferredDevice=Мини-порт глобальной сети (PPTP)
PreferredBps=0
PreferredHwFlow=1
PreferredProtocol=1
PreferredCompression=1
PreferredSpeaker=1
PreferredMdmProtocol=0
PreviewUserPw=1
PreviewDomain=1
PreviewPhoneNumber=0
ShowDialingProgress=1
ShowMonitorIconInTaskBar=1
CustomAuthKey=0
AuthRestrictions=512
IpPrioritizeRemote=0
IpInterfaceMetric=0
IpHeaderCompression=0
IpAddress=0.0.0.0
IpDnsAddress=0.0.0.0
IpDns2Address=0.0.0.0
IpWinsAddress=0.0.0.0
IpWins2Address=0.0.0.0
IpAssign=1
IpNameAssign=1
IpDnsFlags=0
IpNBTFlags=1
TcpWindowSize=0
UseFlags=2
IpSecFlags=0
IpDnsSuffix=microsoft.ru
Ipv6Assign=1
Ipv6Address=::
Ipv6PrefixLength=0
Ipv6PrioritizeRemote=1
Ipv6InterfaceMetric=0
Ipv6NameAssign=1
Ipv6DnsAddress=::
Ipv6Dns2Address=::
Ipv6Prefix=0000000000000000
Ipv6InterfaceId=0000000000000000
DisableClassBasedDefaultRoute=0
DisableMobility=0
NetworkOutageTime=0
ProvisionType=0
PreSharedKey=
CacheCredentials=1

NETCOMPONENTS=
ms_msclient=1
ms_server=1

MEDIA=rastapi
Port=VPN3-0
Device=Мини-порт глобальной сети (PPTP)

DEVICE=vpn
PhoneNumber=a2.microsoft.ru
AreaCode=
CountryCode=0
CountryID=0
UseDialingRules=0
Comment=
FriendlyName=
LastSelectedPhone=0
PromoteAlternates=0
TryNextAlternateOnFail=1

Пример bat файла
Код:

@echo off & color 0a
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo                                create vpn
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem Присовение переменных.
set FULLPATHFILE=%USERPROFILE%\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk
set NAMEFILE=rasphone.pbk
set PATHFILE=%USERPROFILE%\AppData\Roaming\Microsoft\Network\Connections\Pbk\
set DefaultNameVPN=MS_VPN
::::::::::::::::::::::::::Create vpn::::::::::::::::::::::::::::::
rem Проверка существования файла.
if not exist %FULLPATHFILE% (
    echo FAIL: The configuration file is missing, the script is complete.
    pause
        exit /b 1
)
rem Проверка пустой ли файл.
rem call :filesize %FULLPATHFILE%
rem echo file size is %size%
rem if %size% == 0 (
rem        echo 2> %temp%\vpn.pbk
rem ) else (
rem        echo. > %temp%\vpn.pbk
rem )
echo 2> %temp%\vpn.txt
call :GetName
echo [%NameVPN%] >> %temp%\vpn.txt
echo Encoding=1 >> %temp%\vpn.txt
echo PBVersion=2 >> %temp%\vpn.txt
echo Type=2 >> %temp%\vpn.txt
echo AutoLogon=0 >> %temp%\vpn.txt
echo UseRasCredentials=1 >> %temp%\vpn.txt
echo LowDateTime=2016871744 >> %temp%\vpn.txt
echo HighDateTime=30333636 >> %temp%\vpn.txt
echo DialParamsUID=1031494 >> %temp%\vpn.txt
echo Guid=1567330C4F89945B38B2CA0BDAF4E9F >> %temp%\vpn.txt
echo VpnStrategy=1 >> %temp%\vpn.txt
echo ExcludedProtocols=8 >> %temp%\vpn.txt
echo LcpExtensions=1 >> %temp%\vpn.txt
echo DataEncryption=256 >> %temp%\vpn.txt
echo SwCompression=0 >> %temp%\vpn.txt
echo NegotiateMultilinkAlways=0 >> %temp%\vpn.txt
echo SkipDoubleDialDialog=0 >> %temp%\vpn.txt
echo DialMode=0 >> %temp%\vpn.txt
echo OverridePref=15 >> %temp%\vpn.txt
echo RedialAttempts=3 >> %temp%\vpn.txt
echo RedialSeconds=60 >> %temp%\vpn.txt
echo IdleDisconnectSeconds=0 >> %temp%\vpn.txt
echo RedialOnLinkFailure=1 >> %temp%\vpn.txt
echo CallbackMode=0 >> %temp%\vpn.txt
echo CustomDialDll= >> %temp%\vpn.txt
echo CustomDialFunc= >> %temp%\vpn.txt
echo CustomRasDialDll= >> %temp%\vpn.txt
echo ForceSecureCompartment=0 >> %temp%\vpn.txt
echo DisableIKENameEkuCheck=0 >> %temp%\vpn.txt
echo AuthenticateServer=0 >> %temp%\vpn.txt
echo ShareMsFilePrint=1 >> %temp%\vpn.txt
echo BindMsNetClient=1 >> %temp%\vpn.txt
echo SharedPhoneNumbers=0 >> %temp%\vpn.txt
echo GlobalDeviceSettings=0 >> %temp%\vpn.txt
echo PrerequisiteEntry= >> %temp%\vpn.txt
echo Prerequisitetxt= >> %temp%\vpn.txt
echo PreferredPort=VPN3-0 >> %temp%\vpn.txt
echo PreferredDevice=Мини-порт глобальной сети (PPTP) >> %temp%\vpn.txt
echo PreferredBps=0 >> %temp%\vpn.txt
echo PreferredHwFlow=1 >> %temp%\vpn.txt
echo PreferredProtocol=1 >> %temp%\vpn.txt
echo PreferredCompression=1 >> %temp%\vpn.txt
echo PreferredSpeaker=1 >> %temp%\vpn.txt
echo PreferredMdmProtocol=0 >> %temp%\vpn.txt
echo PreviewUserPw=1 >> %temp%\vpn.txt
echo PreviewDomain=1 >> %temp%\vpn.txt
echo PreviewPhoneNumber=0 >> %temp%\vpn.txt
echo ShowDialingProgress=1 >> %temp%\vpn.txt
echo ShowMonitorIconInTaskBar=1 >> %temp%\vpn.txt
echo CustomAuthKey=0 >> %temp%\vpn.txt
echo AuthRestrictions=512 >> %temp%\vpn.txt
echo IpPrioritizeRemote=0 >> %temp%\vpn.txt
echo IpInterfaceMetric=0 >> %temp%\vpn.txt
echo IpHeaderCompression=0 >> %temp%\vpn.txt
echo IpAddress=0.0.0.0 >> %temp%\vpn.txt
echo IpDnsAddress=0.0.0.0 >> %temp%\vpn.txt
echo IpDns2Address=0.0.0.0 >> %temp%\vpn.txt
echo IpWinsAddress=0.0.0.0 >> %temp%\vpn.txt
echo IpWins2Address=0.0.0.0 >> %temp%\vpn.txt
echo IpAssign=1 >> %temp%\vpn.txt
echo IpNameAssign=1 >> %temp%\vpn.txt
echo IpDnsFlags=0 >> %temp%\vpn.txt
echo IpNBTFlags=1 >> %temp%\vpn.txt
echo TcpWindowSize=0 >> %temp%\vpn.txt
echo UseFlags=2 >> %temp%\vpn.txt
echo IpSecFlags=0 >> %temp%\vpn.txt
echo IpDnsSuffix=ms.ru >> %temp%\vpn.txt
echo Ipv6Assign=1 >> %temp%\vpn.txt
echo Ipv6Address=:: >> %temp%\vpn.txt
echo Ipv6PrefixLength=0 >> %temp%\vpn.txt
echo Ipv6PrioritizeRemote=1 >> %temp%\vpn.txt
echo Ipv6InterfaceMetric=0 >> %temp%\vpn.txt
echo Ipv6NameAssign=1 >> %temp%\vpn.txt
echo Ipv6DnsAddress=:: >> %temp%\vpn.txt
echo Ipv6Dns2Address=:: >> %temp%\vpn.txt
echo Ipv6Prefix=0000000000000000 >> %temp%\vpn.txt
echo Ipv6InterfaceId=0000000000000000 >> %temp%\vpn.txt
echo DisableClassBasedDefaultRoute=0 >> %temp%\vpn.txt
echo DisableMobility=0 >> %temp%\vpn.txt
echo NetworkOutageTime=0 >> %temp%\vpn.txt
echo ProvisionType=0 >> %temp%\vpn.txt
echo PreSharedKey= >> %temp%\vpn.txt
echo CacheCredentials=1 >> %temp%\vpn.txt
echo. >> %temp%\vpn.txt
echo NETCOMPONENTS= >> %temp%\vpn.txt
echo ms_msclient=1 >> %temp%\vpn.txt
echo ms_server=1 >> %temp%\vpn.txt
echo. >> %temp%\vpn.txt
echo MEDIA=rastapi >> %temp%\vpn.txt
echo Port=VPN3-0 >> %temp%\vpn.txt
echo Device=Мини-порт глобальной сети (PPTP) >> %temp%\vpn.txt
echo.  >> %temp%\vpn.txt
echo DEVICE=vpn >> %temp%\vpn.txt
echo PhoneNumber=a2.ms.ru >> %temp%\vpn.txt
echo AreaCode= >> %temp%\vpn.txt
echo CountryCode=0 >> %temp%\vpn.txt
echo CountryID=0 >> %temp%\vpn.txt
echo UseDialingRules=0 >> %temp%\vpn.txt
echo Comment= >> %temp%\vpn.txt
echo FriendlyName= >> %temp%\vpn.txt
echo LastSelectedPhone=0 >> %temp%\vpn.txt
echo PromoteAlternates=0 >> %temp%\vpn.txt
echo TryNextAlternateOnFail=1 >> %temp%\vpn.txt
echo.  >> %temp%\vpn.txt
rem type  %temp%\vpn.txt >> "%FULLPATHFILE%"
copy /y  %temp%\vpn.txt "%FULLPATHFILE%"
echo ping -n 15 127.0.0.1 >nul
del /f /q %temp%\vpn.txt >nul
exit /b 0

:filesize
 set size=%~z1
 exit /b 0
 
:GetName
 set /a i= 0
 set NameVPN=%DefaultNameVPN%
 :NextName
  find /C "%NameVPN%" %FULLPATHFILE%
  @echo %errorlevel%
  if %errorlevel% equ 0 (
        set NameVPN=%DefaultNameVPN%%i%
        set /a i+=1
        goto :NextName
  ) else (
          exit /b 0
  )


Petya V4sechkin 07-11-2013 07:47 2248970

Nescoffe, в какой кодировке файл?

Nescoffe 07-11-2013 08:00 2248978

Цитата:

Цитата Petya V4sechkin
Nescoffe, в какой кодировке файл? »

Пробовал UTF-8 и ANSI, результат одинаковый.

Foreigner 07-11-2013 08:30 2248989

В какой кодировке батник?

Nescoffe 07-11-2013 08:34 2248991

Цитата:

Цитата Foreigner
В какой кодировке батник? »

Пробовал и в ANSI и в UTF-8, результат один. ОС - Windows 8, сейчас попробую на Windows 7 тоже самое проделать.

yurfed 07-11-2013 09:02 2249000

Nescoffe, пробуйте OEM 866.
И свойства обоих файлов. Может какой то из них только для чтения (это чисто предположение).

Nescoffe 07-11-2013 09:25 2249010

Цитата:

Цитата yurfed
Nescoffe, пробуйте OEM 866.
И свойства обоих файлов. Может какой то из них только для чтения (это чисто предположение). »

Попробовал OEM 866 и все эксперименты провел на Windows 7, все та же проблема.
Попробуйте себе скопировать текст в rasphone "неработающий" и "работающий", поидеи та же самая картина будет и у Вас.
Т.е. проблема именно с текстом.. если тексты вставить в текстовые файлы и перекодировать в одну кодировку, то один из них будет работать, другой нет.. причем размеры файлов отличаются, а текст идентичный.

Petya V4sechkin 07-11-2013 09:27 2249013

Цитата:

Цитата Nescoffe
размеры файлов отличаются, а текст идентичный

Кошмар какой.
А не хотите выложить оба файла в архиве, чтобы мы на них посмотрели?

Nescoffe 07-11-2013 09:43 2249027

Вложений: 1
Цитата:

А не хотите выложить оба файла в архиве, чтобы мы на них посмотрели?
Файлы во вложении:
Нормальный2.txt, rasphone.pbk_norm - в файлах один и тот же текст, который работает корректно, изначально подключение было создано в ручную и текст скопирован из rasphone.pbk, данный текст можно копировать изменять и он будет работать.
кривой2.txt, rasphone.pbk_bad - в этих файлах один и тот же текст, но сгенерированый bat скриптом, не работает как не меняй.

Различие в размере нормального и не работающего файла - 100 байт.

Petya V4sechkin 07-11-2013 10:03 2249042

Nescoffe, в "кривом" файле почти все строки заканчиваются пробелом.
Не добавляйте пробелы в командах Echo.

Можно так:
Код:

(
  echo [%NameVPN%]
  echo Encoding=1
  echo PBVersion=2

  ... Еще куча Echo ...

  echo TryNextAlternateOnFail=1
)>"%temp%\vpn.txt"


Nescoffe 07-11-2013 10:10 2249049

Цитата:

Цитата Petya V4sechkin
Nescoffe, в "кривом" файле почти все строки заканчиваются пробелом.
Не добавляйте пробелы в командах Echo. »

Вот я ......* нехорошие слова.
Стыдно за такую глупую ошибку.

Спасибо всем за потраченное время, на поиски моей глупой ошибки.

Nescoffe 13-11-2013 14:30 2253658

Возник еще один вопрос - когда BAT файл формирует и заносит настройки в файл rasphone.exe, в панели управления появляется новое подключение, а вот в "правом меню" (при нажатии на подключение в трее) данного подключения нету. Если перезагрузить компьютер, то оно появится в данном меню.
Может кто знает как командно добавить подключение в "правое меню" Windows 7/8 без перезагрузки ?
Пересмотрел dll (connect.dll, VAN.dll и т.д.) так и не смог найти нужную функцию.

Nescoffe 14-11-2013 10:29 2254259

Так же обнаружил, что если зайти на компьютер с данными подключениями по RDP, то список подключений в "правом меню" обновиться.

Mancoffee 16-10-2014 19:13 2416367

За что отвечает строка AutoLogon?

ПС. Если ставлю "1" то при попытке подключения пишет неверные логин/пароль, а в свойствах нельзя изменить (неактивно, так же, как и домен)


Время: 06:39.

Время: 06:39.
© OSzone.net 2001-