2016-11-03 2 views
-1

Пожалуйста, мне нужна помощь с Загрузка файлов Excel с помощью Powershell. Мне нужно написать скрипт, который соответствует стандарту POST (хорошо сформированному по правилам внешней системы) для URI этой системы. Сценарий должен быть аутентифицирован через NTLM (на Apache), а затем отправлять данные.Загрузить файл Powershell и аутентифицировать через NTLM

Я пытался что-то вроде этого:

Invoke-WebRequest -Uri $uri -Method Post -InFile $filePath -ContentType "multipart/form-data" -Headers @{"Authorization" = "Basic "+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+":"+$password))} 

где $ Ури что-то вроде http://[servername]/[applicationame]/apix/marketdata/upload

и $ Filepath является C: \ Users .. \ Documents \ Market_data.xlsx

Ошибка :

Invoke-WebRequest : {"status":"ERROR","message":"HTTP 400 Bad Request","additionalMessages":[]} 
At C:\Users\..\script.ps1:48 char:1 
+ Invoke-WebRequest -Uri $uri -Method Post -InFile $filePath -ContentTy ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException 
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand 

Эта команда Curl.exe работает, поэтому мне нужно повторно ре его PS свернуться

curl.exe -X POST -H "Pragma: no-cache" -H "Origin: http://[server]" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -H "Accept: */*" -H "Cache-Control: no-cache" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" -H "Referer: http://[server]/" -F "Content-Type=application/vnd.ms-excel" -F "[email protected]$filePath" -F "filename=$filePath" "http://[servername]/[applicationname]/apix/marketdata/upload?User=[DOMAIN]%255C[USER]" --ntlm --negotiate -u 'DOMAIN\user:password' 

ответ

0

Ok, так что я не имею возможности проверить прямо сейчас, но это должно быть возможно с помощью -credential параметра и переходя в любой объект учетных данных вам нужно использовать.

+0

Я пробовал этот способ: Invoke-WebRequest -Uri $ uri -Method Post -InFile $ file_to_upload -ContentType "application/vnd.ms-excel" -Headers @ {"Authorization" = "Basic" + [System.Convert ] :: ToBase64String ([System.Text.Encoding] :: UTF8.GetBytes ("[user]: [password]"))} но я получил «HTTP 415 Unsupported Media Type» –

+0

ok, если только я не пропустил код вы только что поставили, не включили параметр -credential или объект учетных данных, что произойдет, если вы попытаетесь включить их? –

Смежные вопросы