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-Key: 381802

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

Printed on: April 24, 2024 at 00:04 o'clock

Member: Bitboy
Bitboy Jul 31, 2018 at 12:06:35 (UTC)
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 ...
Member: wisebeer
wisebeer Jul 31, 2018 at 15:14:35 (UTC)
Goto Top
Hallo!

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

Lg
Member: colinardo
colinardo Aug 01, 2018 updated at 11:19:20 (UTC)
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