cullentrey
Goto Top

Hilfe bei Invoke-WebRequest

Hallo zusammen,

hoffe ich hab den Richtigen Bereich gewählt.

Ich bersuche für den Massenimport von Usern in eine NextCloud (nicht lokal gehostet) ein Powershell Script zu schreiben.
Im Netz finde ich aber nur die Infos zur API (https://docs.nextcloud.com/server/13/admin_manual/configuration_user/ins ..) und Codebeispiele mit curl.

Ein Versuch das ganz umzustricken auf Powershell bringt mir immer den Fehler
"997 Current user is not logged in"
wenn ich das ganze ohne den Header Parameter versuche, mit Header
"Der Parameter "Headers" kann nicht gebunden werden. Der Wert "OCS-APIRequest: true" vom Typ "System.String" kann nicht in den Typ "System.Collections.IDictionary" konvertiert werden."

Der curl Befehl, der funktioniert,
curl https://USER:PASSWORD@cloud.XXX.de/ocs/v1.php/cloud/users -H "OCS-APIRequest: true" --insecure  

und mein Versuch in der Powershell, mit und ohne den Header Parameter
Invoke-WebRequest -Uri "https://USER:PASSWORD@cloud.XXX.de/ocs/v1.php/cloud/users" -Headers "OCS-APIRequest: true" -Method GET  
Invoke-WebRequest -Uri "https://USER:PASSWORD@cloud.XXX.de/ocs/v1.php/cloud/users" -Method GET  

Vielleicht könnt ihr mir ja helfen, das zum laufen zu bringen.


MfG

Cullen

Content-ID: 381802

Url: https://administrator.de/contentid/381802

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

Bitboy
Bitboy 31.07.2018 um 14:06:35 Uhr
Goto Top
Zitat von @CullenTrey:
"Der Parameter "Headers" kann nicht gebunden werden. Der Wert "OCS-APIRequest: true" vom Typ "System.String" kann nicht in den Typ "System.Collections.IDictionary" konvertiert werden."

Offensichtlich erwartet der Befel keinen String sondern ein Dictionary.
Da gibt's Vorschläge:
https://stackoverflow.com/questions/12936150/is-it-possible-to-send-addi ...
wisebeer
wisebeer 31.07.2018 um 17:14:35 Uhr
Goto Top
Hallo!

Was spricht dagegen Curl zu installieren? Kannst du ja auch in Powershell nutzen.

Lg
colinardo
colinardo 01.08.2018 aktualisiert um 13:19:20 Uhr
Goto Top
Das ganze sieht für Invoke-Webrequest so aus Usernamen und Passwort lassen sich hier auch per Credential-Object übergeben, ist ja Basic WebAuth):
Invoke-WebRequest -Uri "https://cloud.XXX.de/ocs/v1.php/cloud/users" -Headers @{'OCS-APIRequest'='true'} -Method GET -Credential (new-Object PSCredential('USER',(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) 
Grüße Uwe