Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Включить опцию "Сохранения логина-пароля" для Интернет-соединения

Ответить
Настройки темы
Любой язык - [решено] Включить опцию "Сохранения логина-пароля" для Интернет-соединения

Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


Cабж (на Win7 x64)
В общем требуется при помощи любого скрипта (cmd, vbs, powershell, или любой другой способ) или сторонней консольной утилиты включить опцию в свойствах соединения:
"Сохранять Имя пользователя и Пароль"

Хотел полностью автоматизировать создание нескольких готовых соединений на чистой свеже установленной системе, импортировал rasphone.pbk, а вот при последующем прописывании логина-пароля при помощи найденных аналогичных программок (nircmd setdialuplogon и Dialupass /setpass) неожиданно столкнулся с проблемой, т.к. они могут прописать и сохранить логин и особенно пароль ТОЛЬКО если в свойствах соединения уже активирована опция сохранения логина-пароля.

Долго искал в инете хоть какое-нибудь решение (казалось простой задачи), но к моему удивлению в этот раз так и не нашел...

Отправлено: 00:58, 12-04-2012

 


Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


Скрипт для создания интернет-соединения

Отправлено: 07:32, 12-04-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


По теме:
1) CMAK - не вариант абсолютно
2) Скрипт AutoIt на Win7 x64 не работает, т.е. сразу встает на паузу. Да и не скрыто он я так понимаю работает.
3) Оба скрипта vbs, "старый" и "улучшенный", (кстати "старый" скрипт я уже раньше находил и пробовал). Сейчас еще раз попробвал, оба vbs. Оба не работают, видно что "улучшенный" "нажимает" совершенно не те кнопки (видимо опять под XP всё). Да и даже если бы работал, отображаются все действия как если бы это всё делалось вручную.

В "улучшенном" vbs правда есть нужная часть кода (которая тоже работает не так как должна):
Цитата:
'В интернет-соединении ставим галочку "Сохранять имя пользователя и пароль", если не стоит
но даже если исправить (думаю смогу), толку всё равно от этого почти нет, т.к. это почти тот же самый ручной метод, т.к. всё отображается и после доработки, чтобы этот vbs сработал и поставилась галочка на сохранение логина-пароля обязательно в свойствах соединения понадобится, чтобы было включено "Запрашивать логин-пароль", т.к. без этого окна ничего не сработает.

Сабж всё ещё актуален.

Последний раз редактировалось 19w85, 12-04-2012 в 09:07.


Отправлено: 08:54, 12-04-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 19w85:
1) CMAK - не вариант абсолютно »
Отчего так?

Отправлено: 09:07, 12-04-2012 | #4


Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
Отчего так? »
http://forum.oszone.net/post-1094156-7.html

Да и вообще использование в точности настроенного rasphone.pbk мне очень нравится, достаточно гибкий способ. Сохранив всего один файлк имеемь полный комплект нескольких настроенных соединений.

Отправлено: 09:11, 12-04-2012 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Особо не тестировал,но у меня под Windows 7 отработало,как надо.

Код: Выделить весь код
$code = @"
const int UNLEN = 256;
const int PWLEN = 256;
const int DNLEN = 15;

[DllImport("Rasapi32.dll ", CharSet=CharSet.Auto, SetLastError=true)] 
public static extern uint RasSetCredentials( 
  [MarshalAs(UnmanagedType.LPWStr)]
  string lpszPhonebook,
  [MarshalAs(UnmanagedType.LPWStr)]
  string lpszEntry,
  LPRASCREDENTIALS lpCredentials,
  bool fClearCredentials
);

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] 
public struct LPRASCREDENTIALS { 
  public uint dwSize;
  public uint dwMask;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = UNLEN + 1)]
  public string szUserName;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = PWLEN + 1)]
  public string szPassword;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = DNLEN + 1)]
  public string szDomain;
}
"@

Add-Type -MemberDefinition $code -Namespace Ras -Name RasCred

#Путь к Phonebook
$pbk = "$env:APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk"
#Название соединения
$con = "MyNet"

$StrCred = New-Object Ras.RasCred+LPRASCREDENTIALS

<#
http://msdn.microsoft.com/en-us/library/aa376730(v=vs.85).aspx
dwMask флаги

3 - 1 -bor 2 (UserName -bor Password)

RASCM_UserName = 0x00000001,
RASCM_Password = 0x00000002,
RASCM_Domain = 0x00000004,
RASCM_DefaultCreds = 0x00000008,
RASCM_PreSharedKey = 0x00000010,
RASCM_ServerPreSharedKey = 0x00000020,
RASCM_DDMPreSharedKey = 0x00000040

#>

$StrCred.dwMask = 3
$StrCred.szUserName = "Test"
$StrCred.szPassword = "Test"

[Ras.RasCred]::RasSetCredentials($pbk,$con,$StrCred,$false)
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:26, 08-05-2012 | #6


Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


Kazun,
Огромное спасибо, работает идеально!

P.S. Как чувствовал, что Вы моя последняя надежда на нормальное решение сабжа...так оно и оказалось

Отправлено: 05:55, 08-05-2012 | #7


Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


Kazun,
А можно попросить ещё чуток дополнить скрипт?
Добавить возможность передавать имя соединения при помощи доп. ключа при запуске скрипта, вместо фиксированно заданного тут:
Код: Выделить весь код
$con = "MyNet"
Т.е. типа такого:
Код: Выделить весь код
powershell .\temp.ps1 -Name "Name Connect"
P.S. В идеале, конечно, передавать "Имя соединения+UserName+Password" но необходимый минимум хотя бы имя соединения.

Отправлено: 00:27, 09-05-2012 | #8


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Добавить в верхушку скрипта:

param($Name)

Удалить строку: $con = "MyNet"

И исправить [Ras.RasCred]::RasSetCredentials($pbk,$con,$StrCred,$false) на [Ras.RasCred]::RasSetCredentials($pbk,$name,$StrCred,$false)

Собственно для UserName,Password:
Код: Выделить весь код
param(
 	$Name,
	$UserName,
	$PassWord
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:01, 09-05-2012 | #9


Пользователь


Сообщения: 65
Благодарности: 3

Профиль | Отправить PM | Цитировать


Kazun,
Ещё раз огромное спасибо, теперь сабж можно считать решённым на все 100%

Отправлено: 15:23, 09-05-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Включить опцию "Сохранения логина-пароля" для Интернет-соединения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как включить/выключить опцию отображения картинок в Internet explorer 8? evg64 AutoIt 3 26-02-2010 21:41
Изменение логина и пароля korsar77 Хочу все знать 5 08-09-2009 18:14
Доступ - Как включить опцию папки? Natsuki Microsoft Windows Vista 3 01-06-2008 20:27
Доступ без логина и пароля Ares2005 Microsoft Windows NT/2000/2003 3 22-11-2007 14:21
Помогите с вводом логина и пароля Guest Хочу все знать 3 10-12-2002 22:15




 
Переход