Экспорт конфигурации FritzBox: cURL для вызова-Webrequest

#powershell #curl #invoke-webrequest #fritzbox

Вопрос:

Я хочу экспортировать конфигурацию из моего Фрица!Поле, но не смог найти для этого никакого сценария PowerShell. Поэтому я пытаюсь преобразовать найденное выражение curl, но оно не работает:

 curl -s -k -o $OUT --form sid=$SID --form ImportExportPassword=$Passwort--form ConfigExport= https://fritz.box/cgi-bin/firmwarecfg
 

Я перепробовал много вещей, таких как:

 $body = {
        sid = $SID, 
        ImportExportPassword = $Passwort,
        ConfigExport = ""
}
Invoke-WebRequest -Uri "http://$FritzBoxUrl/cgi-bin/firmwarecfg" -Body $body -Method Post -OutFile $BackupPath
 

Информация: Идентификатор SID уже перехвачен из другой команды Invoke-Webrequest

Также я поместил параметры в теле в двойные кавычки, но это тоже не сработало.

Я использую PS 5.1 (встроенный в Windows), в котором нет параметра «-Форма».

Каков правильный синтаксис, чтобы заставить его работать?

Комментарии:

1. Прагматично говоря — предполагая, что вы используете Windows 10 / серверную версию, которая поставляется вместе с curl.exe — вы можете попробовать свою исходную команду curl.exe вместо curl

2. Спасибо, приятно знать, что это существует. Я знал, что команда «curl» была просто псевдонимом для Invoke-Webrequest. В любом случае… Я пробовал, но, к сожалению, это не сработало. Я пробовал: curl.exe -k -o $BackupPath --form sid=$SID --form ImportExportPassword=$Password --form ConfigExport= https://$FritzBoxUrl/cgi-bin/firmwarecfg Но в результате он ничего не написал (хотя разрешения установлены правильно).

3. Да, именно поэтому .exe для обхода этого псевдонима требуется явное указание. Обратите внимание, что псевдоним больше не определен в PowerShell Core (версия 6 ).