Batch vor Anmeldung eines Benutzers ausführen

PatrickS1990

Cadet 4th Year
Registriert
Apr. 2018
Beiträge
85
Hallo,

ich habe ein kleines Problem.
Ich habe eine Python Anwendung mit Flask geschrieben, welche übergangsweise auf einem PC läuft, der recht oft (1-2x pro Woche) neu gestartet wird.
Innerhalb der Anwendung wird auf ein Netzwerklaufwerk zugegriffen.

Nun habe ich eine Batch Datei geschrieben, die zuerst das Netzwerklaufwerk mit net use verbindet und anschließend die Python Anwendung startet.
Da die Batch nach jedem Neustart ausgeführt werden soll, habe ich sie bei den Gruppenrichtlinien eingetragen.
Die Ausführung sollte ja dann geschehen, auch ohne dass sich ein Benutzer angemeldet hat.

Leider habe ich nun das Problem, dass das Netzwerklaufwerk dennoch nicht erreicht werden kann. Wenn ich mich dann auf dem Rechner anmelde, wird ein nicht verbundenes Netzwerklaufwerk angezeigt.

Habt ihr eine Idee?
 
Quizfrage: Mit welchem Benutzer soll das Laufwerk denn verbunden werden? Und hat dieser die passende Berechtigung dazu?
Und in welchem Kontext läuft dein Batch? ich tippe mal auf SYSTEM?
 
Schmeiß mal vorher das Laufwerk raus und dann wieder verbinden.

Edit: ggf. per gpo auch "Warten auf Netzwerkverbindung" oder so mal ausprobieren.

@kartoffelpü DIe Frage kannste dir schenken, sonst würde seine Anwendung nicht komplett funktionieren
 
  • Gefällt mir
Reaktionen: Simonte
kartoffelpü schrieb:
Quizfrage: Mit welchem Benutzer soll das Laufwerk denn verbunden werden? Und hat dieser die passende Berechtigung dazu?
Und in welchem Kontext läuft dein Batch? ich tippe mal auf SYSTEM?

Wir haben einen Funktionalaccount, der Zugriff auf das Laufwerk hat. Benutzer und Kennwort sind in der Batch hinterlegt. Das klappt auch alles so, wenn ich die Batch anklicke und laufen lasse. Allerdings bin ich ja dann in meinem Benutzerkonto.


LasseSamenström schrieb:
Schmeiß mal vorher das Laufwerk raus und dann wieder verbinden.

Edit: ggf. per gpo auch "Warten auf Netzwerkverbindung" oder so mal ausprobieren.

@kartoffelpü DIe Frage kannste dir schenken, sonst würde seine Anwendung nicht komplett funktionieren

Das Laufwerk habe ich zuvor entfernt, dann leite ich den Neustart ein.
Wie mache ich das mit "Warten auf Netzwerkverbindung"?
 
Ein Laufwerksmapping wird pro Benutzer gemacht, daher musst du das LW zusätzlich auch für alle entsprechenden Benutzer mappen und nicht nur über deine Computerpolicy.
 
@PatrickS1990 Du kennst den Unterschied zwischen Computerpolicy und Benutzerpolicy?
Dein Script lässt du ja als Computerpolicy laufen, da es vor Benutzeranmeldung passieren soll. Das Laufwerksmapping für den Benutzer muss dann noch in einer Benutzerpolicy geschehen.
Theoretisch kann beides in der gleichen Policy geregelt werden, wenn Computer- und Benutzerobjekt die gleiche Policy zugewiesen sind. Unterschiedliche Einträge wären es aber trotzdem.

Der Zweig "Computer Configuration gilt halt nur für den Computer, User Configuration für die Benutzer":
1725520662648.png


Ansonsten nochmal mit den Grundlagen von Gruppenrichtlinien beschäftigen.
 
  • Gefällt mir
Reaktionen: JumpingCat
Wenn das Mapping in der Batch gemacht wird, was hat das dann mit dem User zu tun?

Ich werf mal noch den Taskplaner in den Raum, ist vielleicht einfacher als das Ganze via GPOs zu konfigurieren. Desweiteren kann man hier ebenfalls direkt den auszuführenden User hinzufügen, somit müsste man dann auch nicht mehr in der Batch die Zugangsdaten hinterlegen...
 
  • Gefällt mir
Reaktionen: JumpingCat
Ich bin mir nicht sicher, ob ich es richtig verstehe.
Auf das Netzwerklaufwerk kann ich mit einem Benutzer und Passwort zugreifen. Dieser Benutzer ist aber meiner Meinung nach kein Benutzer, der sich an dem PC anmelden kann, der sich mit dem Laufwerk verbinden soll.
 
Nun, du musst das Netzlaufwerk für die Benutzer, welches es an dem PC nutzen sollen, über eine Benutzerpolicy mappen:
1725522991768.png


Dort kann man dann auch einen anderen Benutzer definieren, mit dem das Laufwerk eingebunden werden soll. Ob das mit anderem Benutzer tatsächlich noch funktioniert, weiß ich nicht, da nie genutzt)
1725523067586.png


Falls es darüber nicht funktioniert, könnte man es alternativ über ein entsprechendes Logonscript machen.
 
kartoffelpü schrieb:
Nun, du musst das Netzlaufwerk für die Benutzer, welches es an dem PC nutzen sollen, über eine Benutzerpolicy mappen:
Anhang anzeigen 1519490

Dort kann man dann auch einen anderen Benutzer definieren, mit dem das Laufwerk eingebunden werden soll. Ob das mit anderem Benutzer tatsächlich noch funktioniert, weiß ich nicht, da nie genutzt)
Anhang anzeigen 1519491

Falls es darüber nicht funktioniert, könnte man es alternativ über ein entsprechendes Logonscript machen.

Ich finde bei mir nicht mal diese "Drive Maps".
Der Zugriff der Anwendung auf das Netzwerklaufwerk klappt nun aber. Es lag an einem relativen Pfad im Skript, den ich nun in einen absoluten Pfad gewandelt habe.

Nun habe ich noch das Problem, dass ich ein Nicht verbundenes Netzwerklaufwerk angezeigt bekomme, wenn ich mich mit meinem Benutzerkonto auf dem PC anmelde.
Komisch ist jedoch, dass ich trotzdem Zugriff auf das Laufwerk habe.
 

Anhänge

  • Unbenannt1.PNG
    Unbenannt1.PNG
    14,9 KB · Aufrufe: 34
Zuletzt bearbeitet:
Ah, es geht um eine lokale Richtlinie und nicht um ein AD.
Dann bleibt dir wohl nur ein logonscript für die Benutzer (quasi das gleiche, was du schon nutzt, nur ohne den Programmstart).
 
Na so wie das Batch-Script, welches du schon hast, nur ohne den Programmstart.
 
Ok also ich führe dann mit meinem Benutzerkonto sozusagen mit Neustart ein Skript aus, welches das Netzwerklaufwerk verbindet, korrekt? Wenn ja, kommt nun die Meldung : "Der lokale Gerätename wird bereits verwendet."

Logisch, da das Nichtverbundene Netzwerklaufwerk ja angezeigt wird und ich vollen Zugriff habe.
Das ist jetzt zwar nur ne Schönheitssache, aber es wäre gut, sie auch gelöst zu bekommen.
 
Trenn das Laufwerk doch nachdem das Tool fertig ist. Dann ist es nicht da wenn Du Dich anmeldest. Oder bau für Dich ein logon welches alle Verbundenen erst weg kloppt und dann Deins verbindet.
 
@BFF Das Laufwerk wird ja aber vom Python-Programm verwendet - demnach muss es ja verbunden bleiben oder? Das Programm läuft die ganze Zeit im Hintergrund.
 
Zuletzt bearbeitet:
Wenn es weiter arbeiten soll auch nach Deiner Anmeldung ja.

PatrickS1990 schrieb:
Innerhalb der Anwendung wird auf ein Netzwerklaufwerk zugegriffen.

Kann das Ding nicht direkt in eine Freigabe schreiben? Dann sparst Du Dir die Laufwerksverbindung.
 
BFF schrieb:
Kann das Ding nicht direkt in eine Freigabe schreiben? Dann sparst Du Dir die Laufwerksverbindung.
Soweit ich weiß nicht. Wenn man danach sucht steht immer, dass Python nur mit lokalen Pfaden umgehen kann.
 
Zurück
Oben