2016-11-03 12 views
-1

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))} 

の$ uriがhttp://[servername]/[applicationame]/apix/marketdata/upload

のようなものですと$ filePathにはC:\ユーザーは、.. \ドキュメント

エラー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にそれをPEはので、私は今テストする能力を持っていないが、これは-credentialパラメータを使用して、あなたが使用する必要がどのような資格情報オブジェクトを渡すことが可能でなければならない[OK]を

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

をカール。

+0

私はこのようにしました:Invoke-WebRequest -Uri $ uri -Methodポスト-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

ポーズしたものに-credentialパラメータや信用証明オブジェクトが含まれていない場合、それらを含めるとどうなりますか? –