Das Script funktioniert mit meinem Adminaccount einwandfrei, wenn ich mich aber mit dem Account anmelde den ich im TaskScheduler hinterlegen möchte,erscheint beim Ausführen des Scripts der Passwort Prompt von pg_dump. Der Account hat Vollzugriff auf die im Script angeführten Verzeichnisse. Was mache ich falsch?
Dort definierst Du, welcher User mit welcher IP auf welche DB darf und wie er sich dafür authentifizieren muss.
In Windows und Linux ist das naturgemäß etwas unterschiedlich, vermutlich musst Du unter Windows einen reinen Usernamen, Maschinennamen/Usernamen oder Domännamen/Usernamen eintragen, entsprechend dem User den du im Service nutzt.
U.U. gibt es sogar einen Postgres User (bei der Installation angelegt). Den könnte man ggF. nutzen, es fehlen dann aber vielleicht andere WIndows-, Script-, Dateirechte.
Der Dateizugriff allein ist aber wahrscheinlich nur die halbe Miete.
Wenn das Konto für den Scheduler interaktive Anmeldung erlaubt, meld Dich einfach damit an und ruf Dein Script auf. Dann bekommst Du Klartextfehlermeldungen. Die sollten sich auch in Postgres Logs befinden, wenn eine Anmeldung fehlschlägt. Weiß nicht, wo man die unter Windows findet.
Die Zeile im Script mit Set-Variable konnt ich danach auskommentieren.
Warum Set-Variable nur mit dem Domain Admin aber nicht mit meinem pgbackupuser funktioniert, konnte ich nicht klären. Der User ist auch lokaler Admin des Servers. Hatte ihn auch kurz Domain Admin Rechte gegeben um identische Userrechte zu erhalten und dann erneuten Login durchgeführt, um die Rechte zu übernehmen.
Anbei noch der Inhalt der pg_hba.conf:
TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
Die Idee mit dem Eintrag des Usernamens könnte ich noch ausprobieren. Ja, und auch die Logs wären interessant, müsste ich auch noch ausfindig machen. Aber da es nun funktioniert werde ich der Sache nicht weiter nachgehen.