Я пытаюсь автоматизировать соединение Wi-Fi в целях тестирования. Используя команду netsh в PowerShell, я могу сгенерировать XML-файл и подключиться к любому персональному Wi-Fi.
Но проблема с Enterprise (802.1X). Я могу сгенерировать XML-файл с начальной конфигурацией. Но имя пользователя и пароль не хранятся в нем. Я обнаружил, что они хранятся в зашифрованном виде по адресу: HKCU\Software\Microsoft\Wlansvc\UserData\Profiles {GUID} Очевидно, что он зашифрован с использованием CryptProtectData.
Я загрузил ключ с одного SSID, подключенного к моему текущему пользователю с использованием 802.1X, и пытался расшифровать его, чтобы выяснить, какую строку необходимо зашифровать. Вот сценарий до сих пор:
Add-Type -AssemblyName System.Security
$HEXA ='01 00 00 00 d0 8c 9d df 01 15 d1 11 8c 7a 00 c0 4f c2 97 eb 01 00 00
00 a8 55 8d b0 1a c5 48 4e 8e 35 ff...'
##hexa to byte
$HEXA_array= $HEXA.split(" ")
$bytes_object = $HEXA_array | FOREACH {[BYTE][CHAR]
([CONVERT]::toint16($_,16))}
##Create an array of Byte
$i=0
foreach ($element in $bytes_object){$i++}
$Byte_Array = New-Object Byte[] $i
#system.object to system.byte
$i=0
foreach ($element in $bytes_object)
{
$Byte_Array[$i]=$element
$i++
}
write-host "Type of Byte_Array: " $Byte_Array.getType().FullName #
#decrypt
$bytes2 = [System.Security.Cryptography.ProtectedData]::Unprotect(
$Byte_Array,
$null,
[System.Security.Cryptography.DataProtectionScope]::CurrentUser)
Но я получаю следующее сообщение об ошибке: Исключение вызывает "Снять защиту" с аргументом (ами)"3": "Параметр неверен"
РЕДАКТИРОВАТЬ: ошибка не появляется, как только я запускаю скрипт с пользователем локальной системы. Я вижу имя пользователя, но за ним следуют нечитаемые символы. Энтропия установлена в $ null (2-й параметр), и ей интересно, может ли это вызвать проблему
Спасибо,