Zum Inhalt springen

Robocopy Startup Script in Windows Domäne


cmdr_paule

Empfohlene Beiträge

Hallo Leute,

ich habe ein kleines Problem mit einem Robocopy Script, das beim Hochfahren auf einem Rechner laufen soll.

Situation:

Ich habe ein simples Kopierskript für robocopy geschrieben, das ein bestimmten Ordner samt Inhalt und einen Link kopieren soll. Dazu habe ich eine Netzwerkfreigabe eingerichtet, auf der folgende Komponenten liegen:

- robocopy.exe

- der zu kopierende Ordner

- der zu kopierende Link

Nun habe ich ein GPO erstellt und unter Windows Settings > Scripts > Startup das entsprechende Skript per UNC Pfad angegeben (also: \\server\freigabe\skript.cmd).

Leider funktioniert das Ganze so nicht! Hat hier jemand ne Idee? Wenn ich das Skript auf der Oberfläche eines angemeldeten Benutzers ausführe, läuft es problemlos.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie siehts aus mit Startskripts erzwingen aus?

Was sagt die Ereignisanzeige aufm Client??

Ach ich sehs grad..

Wenn du ein Skript in die AD einbindest, dann musst du den Pfad der Gruppenrichtlinie nehmen.

\\localhost\SYSVOL\Domäne\scripts\ID\User\StartUp

So müsste der sein, wenn mich nicht alles täuscht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was meinst du denn mit "Startscripts" erzwingen?

Das Ereignislog auf dem Client ist völlig sauber. Im Anwendungslog kein Hinweis auf ein Startskript...

Wenn ich das Skript aber in das GPO einbinden will muss der Pfad doch so lauten, oder?

\\<Domäne>\SysVol\Domäne\Policies\{GUID}\Machine\Scripts\Startup

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was meinst du denn mit "Startscripts" erzwingen?

Das Ereignislog auf dem Client ist völlig sauber. Im Anwendungslog kein Hinweis auf ein Startskript...

Wenn ich das Skript aber in das GPO einbinden will muss der Pfad doch so lauten, oder?

\\<Domäne>\SysVol\Domäne\Policies\{GUID}\Machine\Scripts\Startup

Wenn dann

\\<Domäne>\SysVol\Domäne\Policies\{GUID}\User\Scripts\Startup

weil, das Script ja nach dem Anmelden der User gestartet werden soll und nicht beim hochfahren oder??

Anmeldescripte erzwingen kannste in den Gruppenrichtlinien festlegen..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn dann

\\<Domäne>\SysVol\Domäne\Policies\{GUID}\User\Scripts\Startup

weil, das Script ja nach dem Anmelden der User gestartet werden soll und nicht beim hochfahren oder??

Nein 'Machine' ist schon richtig, denn es soll User-unabhängig laufen, da es sich um ein Programm handelt, dass alle User verwenden können! Is eben ne komische Java Anwendung, die du per Copy and Paste verteilen kannst. Ich habe aber keine Lust an die einzelnen Rechner dran zu gehen, deshalb such ich ne automatisierte Lösung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wäre doch aber kein Problem, da sich das Script ja eh bei jedem User ausführen lässt.

Oben haste geschrieben:

Nun habe ich ein GPO erstellt und unter Windows Settings > Scripts > Startup das entsprechende Skript per UNC Pfad angegeben (also: \\server\freigabe\skript.cmd).

Wenn du in den GPO´s bist und auf Startscripts gehts (unabhängig von User oder Machine) und im Dialogfenster auf Bearbeiten klickst, dann schlägt der dir doch einen Ordner vor, genau den musste nehmen. Da muss dein Script rein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du in den GPO´s bist und auf Startscripts gehts (unabhängig von User oder Machine) und im Dialogfenster auf Bearbeiten klickst, dann schlägt der dir doch einen Ordner vor, genau den musste nehmen. Da muss dein Script rein.

Hmm ich kann dir gerade leider nicht folgen! Wenn ich ein GPO in der GPMC aufrufe und editiere, muss ich mich doch zwangsweise für den Pfad des Users oder der Maschine entscheiden!? (siehe Bild):confused:

post-21236-14430447539295_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, dass ist ja richtig..

Aber bei der Auswahl später sind die Fenster ja die gleichen, die Speicherpfade aber anders.

Ich hoffe in meinem angehangen Bild siehste was ich mein.

Der Pfad der da sichtbar ist, da muss das Script rein, sonst geht das nicht.

Du hast wenn es noch so ist einen anderen Pfad genommen.

Beim Starten vom System steht dann da, "Anmeldescripte werden ausgeführt" oder so.

Dann gehts.

Klar jetzt?

post-16766-14430447539482_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ich habe jetzt den Pfad verwendet, der in deinem Screenshot zu sehen war. Habe das Skript da rein kopiert und ich sehe beim Start des Rechners auch "Startskripte werden ausgeführt".

Doch leider alles ohne Erfolg. Das Skript scheint nicht mal im Entferntesten anzulaufen, denn im Skript lasse ich den robocopy auch noch loggen und diese Logfiles werden gar nicht angefasst.

Hier mein Skript, vielleicht läuft hier was schief:

[FONT="Courier New"]net use r: "\\Server\Freigabe$\Ordner"

r:\robocopy.exe "\\Server\Freigabe$\Ordner\Programmname" "%ProgramFiles%\Programmname" /E /R:5 /W:5 /V /TBD /NFL /NDL /Z /LOG+:r:\Logs\CopyToClients.log

r:\robocopy.exe "\\Server\Freigabe$\Ordner\Programmname.lnk" "%ALLUSERSPROFILE%\Desktop" /E /R:5 /W:5 /V /TBD /NFL /NDL /Z /LOG+:r:\Logs\CopyToClients2.log

net use r: /delete[/FONT]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, auch kein Problem.

Wenn du mit net use arbeitest, dann musst du auf die Userkonfiguration umstellen. Soll heissen, beim Starten kann noch kein Laufwerk gemapped werden, erst beim anmelden des Users.

ODER du stellst dein Script auf UNC Pfade um (wobei ich nicht weiss ob das bei Robocopy geht). Aber anscheinend geht es nicht mit RC, da du sonst das Laufwerk nicht mappen würdest?! Isnt it!?

Probier mal aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ich habe mir soetwas schon gedacht, dass der net use nicht zieht vor der Anmeldung.

Der Robocopy selbst kann als Quell- und Zielangaben schon mit UNC Pfaden arbeiten, aber die Ausführung der robocopy.exe funzt in der batch nicht über UNC, dehalb wollte ich ein Laufwerk mappen.

Soweit so gut, wenn ich auf User umstelle, habe ich 2 Fragen:

1. gibt es ne Möglichkeit, dass das Skript nur einmal ausgeführt wird ?

2. wird das Skript dann mit Systemrechten ausgeführt oder mit denen des angemeldeten Users?

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. gibt es ne Möglichkeit, dass das Skript nur einmal ausgeführt wird ?

2. wird das Skript dann mit Systemrechten ausgeführt oder mit denen des angemeldeten Users?

1. Noe, müsstest du über eine Abfrage machen

Anmerkung: würde bei der Machine aber auch nicht gehen, die Abfrage müsstest du so oder so machen.

Kannst ja Abfragen ob es den Ordner Lokal schon gibt, wenn nein dann kopieren, wenn ja nix machen.

Wenn du z.B. nen neuen Rechner ins Netz hängst bekommt der dann auch die Files gleich rüberkopiert.

2. Rechte des Users

Anmerkung: sollte aber reichen, weil du willst ja eh nur kopieren und die NTFS Rechte reichen ja dafür

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso..

Hmm bei UNC bekommste dann wieder Probleme in der Batch.

Gut, dann nehmen wir WSH.

Wichtig dafür das hier: wsh run

In deinem Fall also so:

---- schnipp ----


WshShell.Run ("\\Server\Freigabe$\Ordner\robocopy.exe "\\Server\Freigabe$\Ordner\Programmname" "%ProgramFiles%\Programmname" /E /R:5 /W:5 /V /TBD /NFL /NDL /Z /LOG+:r:\Logs\CopyToClients.log", ,True)

WshShell.Run ("\\Server\Freigabe$\Ordner\robocopy.exe "\\Server\Freigabe$\Ordner\Programmname.lnk" "%ALLUSERSPROFILE%\Desktop" /E /R:5 /W: /V /TBD /NFL /NDL /Z /LOG+:r:\Logs\CopyToClients2.log", , True)

WScript.Quit

---- schnapp ----

Hoffe du bist nen bisschen Fit in WSH

Probier einfach mal aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Puh ich geh bald kaputt...:upps

Also ich habe jetzt ein VB Script geschrieben (und da die RUN Methode des WSH verwendet), das wunderbar funzt, wenn ich es über den Windows Explorer per Doppelklick ausführe.

Wenn ich dieses Skript aber dem Rechner per GPO zuweise passiert wiedermal gar nix.

Aber jetzt habe ich noch eine Idee, denn das Skript liest die Umgebungsvariablen %ProgramFiles% & %ALLUSERSPROFILE% aus und baut mir damit den Pfad im Run-Kommando zusammen.

Geht das denn überhaupt? Sind diese Variablen schon vor der Anmeldung gesetzt? Vielleicht muss ich hier mit absoluten Pfadangaben arbeiten, was nicht so sehr schön wäre?!:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also jetz bin ich so langsam mit meinem Latein am Ende!!! Selbst mit Angabe der festen Pfaden im Skript zieht es nicht.:(

Ich glaube ich werde mir jetzt ein Robocopy Skript basteln und jeden Rechner einzeln angeben, auf den die Software soll (sind ja zum Glück nur 22). Dieses werde ich dann einmal laufen lassen und gut ist...

Oder hat noch jemand eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit einem MSI Paket weiß ich nicht, denn ist ja keine Installation, sondern ein reiner Kopiervorgang!

Ich habe mir ne Batch gebastelt, die ich jetzt einmal laufen lasse. Habe die entsprechenden Rechner direkt angegeben. Ist zwar nicht die schönste Lösung aber ich kann nicht noch mehr Zeit da rein stecken, denn der Kunde will mit dem Zeug arbeiten.

Danke für deine Unterstützung!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja das Problem an der Sache ist ganze einfach.

Du machst das jetzt mit der Hand. Geht!

Wenn allerdings vom Kunden mal nen Rechner kaputt geht, fängste wieder von vorne an.

Ändern sich mal Daten, die kopiert werden müssen auch.

Mit dem MSI machste ja nur nen SnapShot.

Soll heissen. Einmal vom Rechner vor dem kopiervorgang, dann kopierste und einmal danach. In die MSI kommen nur Dateien und Regeinträge die sich während dieser Zeit geändert haben.

Quasi die kopierten Dateien. Nix mit Installation.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, das MSI iss dann deine Installationsroutine.

Wird ja aber nur kopiert. Bzw dass, was man selber initiiert.

Guck dir das mal genauer an. Mach damit sehr viel. Der Aufwand am Anfang iss nen bisschen höher, aber wennde was hast, was auf 200 Rechner muss, dann biste froh wenn du dann nix mehr machen musst..

Und nicht vergessen. TESTEN vorher :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du versteifst duch darauf, das Script schon vor der Anmeldung des Benutzers per Machine-Policy auszuführen. Ist das denn so tatsächlich notwendig?

Ich könnte mir gut vorstellen, dass es (Rechte-?)Probleme gibt, eben weil kein Benutzerkontext vorhanden ist...

Würde es nicht zB reichen, die Robocopy-Anweisung(en) ins normale Domänen-Anmeldescript (oder in eine User-Policy) reinzunehmen?

Oder (falls es tatsächlich nicht ohne Machine-Policy gehen sollte) gibt es eine andere Möglichkeit, die Dateien/Verknüpfungen an ihren Bestimmungsort zu bringen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du versteifst duch darauf, das Script schon vor der Anmeldung des Benutzers per Machine-Policy auszuführen. Ist das denn so tatsächlich notwendig?

Ich könnte mir gut vorstellen, dass es (Rechte-?)Probleme gibt, eben weil kein Benutzerkontext vorhanden ist...

Würde es nicht zB reichen, die Robocopy-Anweisung(en) ins normale Domänen-Anmeldescript (oder in eine User-Policy) reinzunehmen?

Naja eigentlich ist es schon notwendig über Machine Policy zu gehen, da wie bereits erwähnt Links in das "All Users Profil" kopiert werden sollen! Dabei reichen eben die normalen Benutzerrechte, die per GPO oder Loginscript vorliegen würden nicht aus. Wenn etwas über Machine Policy gemacht wird, so werden doch Rechte des Systems angewendet und die sollten denke ich reichen!

Oder (falls es tatsächlich nicht ohne Machine-Policy gehen sollte) gibt es eine andere Möglichkeit, die Dateien/Verknüpfungen an ihren Bestimmungsort zu bringen?

Deshalb habe ich diesen Thread gestartet...:D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...