PowerShell Skript Beispiel (.ps1)
# Variablen festlegen
$PROTOCOL = "https"
$BASE_URL = "example.app.bearingx.io" # eigene BEARING X URL einfügen
$USERNAME = "exampleUserBEARINGX" # eigenen Usernamen einfügen
$PASSWORD = "examplePasswordBEARINGX" # eigenes Passwort einfügen
$FILENAME = "C:\Users\DeniseHaddad\Desktop\BX Upload\BEARING X - CSV-Testliste-kurz.csv" # eigenen Pfad der CSV-Datei einfügen
$WORKDIR = ".\"
$COOKIE_FILE = "$WORKDIR\bearingx_cookie.txt"
# Funktion zur Fehlerbehandlung
function Handle-Error {
Write-Host "Fehler beim Upload." -ForegroundColor Red
if ($Error[0]) {
Write-Host "Fehlerdetails: $($Error[0])" -ForegroundColor Yellow
}
exit 1
}
# Wechsel in das Arbeitsverzeichnis
Write-Host "Starting automatic upload..."
try {
Set-Location -Path $WORKDIR -ErrorAction Stop
} catch {
Write-Host "Arbeitsverzeichnis konnte nicht gesetzt werden." -ForegroundColor Red
Handle-Error
}
# Anmelden und Cookies speichern
Write-Host "Logging in as '$USERNAME' and saving cookie..."
try {
$loginResponse = Invoke-WebRequest -Uri "${PROTOCOL}://${BASE_URL}/login" `
-Method POST `
-Body @{username=$USERNAME; password=$PASSWORD} `
-ContentType "application/x-www-form-urlencoded" `
-SessionVariable Session
Write-Host "Login erfolgreich!" -ForegroundColor Green
} catch {
Write-Host "Login fehlgeschlagen!" -ForegroundColor Red
Handle-Error
}
# Datei manuell hochladen
Write-Host "Uploading file '$FILENAME'..."
try {
# Den Inhalt der Datei lesen
$fileBytes = [System.IO.File]::ReadAllBytes($FILENAME)
$boundary = "----WebKitFormBoundary$(Get-Random)"
# Erstellen mehrteiliger Formulardaten
$body = "--$boundary`r`n" +
"Content-Disposition: form-data; name=`"file`"; filename=`"$(Split-Path $FILENAME -Leaf)`"`r`n" +
"Content-Type: text/csv`r`n`r`n" +
([System.Text.Encoding]::UTF8.GetString($fileBytes)) + "`r`n" +
"--$boundary--"
$headers = @{
"Content-Type" = "multipart/form-data; boundary=$boundary"
}
# Senden Sie die Anfrage
$uploadResponse = Invoke-WebRequest -Uri "${PROTOCOL}://${BASE_URL}/api/orders/upload" `
-Method POST `
-Body $body `
-Headers $headers `
-WebSession $Session `
-ErrorAction Stop
Write-Host "Upload erfolgreich! Status: $($uploadResponse.StatusCode)" -ForegroundColor Green
} catch {
Write-Host "Upload fehlgeschlagen!" -ForegroundColor Red
Handle-Error
}
Write-Host "Process completed."
exit 0
Wie funktioniert das Skript?
Die folgende Beschreibung basiert auf dem oben dargestellte Skript. Das Skript ist nur ein Beispiel dafür, wie ein Upload möglich ist.
Um das Skript auszuführen, muss PowerShell ISE als Administrator geöffnet werden (am besten in die Windows Suche eingeben und dann mit rechtsklick als Administrator öffnen). Dann das oben dargestellte Skript einfügen. Die Zeilen mit der URL, dem Usernamen, dem Passwort und dem Dateipfad müssen angepasst werden (lila farbende Zeilen). Zum Schluss nur noch das Skript ausführen (grüner Play-Button).