#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 ).