Jump to content

Netlogon Scripte: Anfängerfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Gerade eben schrieb Dukel:

Wieso willst du eine technische Lösung umsetzen? Wieso nicht die Firma selbst bzw. dessen IT?

Wie ich bereits schrieb, ich will mit einem Lösungsvorschlag verhärtete Fronten aufbrechen.

Was ich allerdings überhaupt nicht verstehe, es bietet sich hier jemand direkt an zu helfen, sagt mir, ich soll ihm am besten eine Mail schreiben, dafür erntet man dann Vorwürfe und Protest.

Dann versuche ich das Ganze dennoch fortzusetzen um eine Lösung zu bekommen an der alle partizpieren können und niemanden interessiert mehr so recht die eigentliche Problemstellung.

 

Ich brauche keine Hilfe im Bereich Beratungskompetenz, Consulting oder Prozessoptimierung, das sind alles Baustellen, die längst in Bearbeitung sind. Ich könnte einfach sinnvolle Vorschläge zur Problemstellung "Wie führe ich das Script am besten aus" gebrauchen.

 

Ich lasse dran gerne alle teilhaben, wenn sich eine Lösung findet, aber es wäre wirklich schön wenn wir nach gefühlten 5 DIN A4 Seiten die ganzen wirklich uninteressanten Nebenkriegsschauplätze mal außer acht lassen könnten.

 

 

Link zu diesem Kommentar
vor 1 Stunde schrieb tesso:

Du hast doch mehrere Ansätze für Lösungen bekommen. Teste diese oder lasse es die IT machen.

Ich habe vor allem gute Ratschläge bekommen wie der Kunde seine bescheidene IT doch bitteschön verbessern sollte. ;-)

 

Also ich habe nun folgende Ansätze, vielleicht kann die ja noch jemand gerne auch kritisch und hilfreich bewerten.

  1. Ich würde ungern auf Grund der beschriebenen Gesamtsituation und dem bereits fortgeschrittenen Gegeneinander dem Kunden jetzt ungern seine LoginScripte um die Ohren hauen oder gar behaupten wollen die seien alle Mist.
  2. Ich würde ebenso gerne eine Lösung anbieten, die sich mit möglichst wenig Änderungen implementieren lässt.
  3. Die Lösung sollte also die gegebenen Lösungen ergänzen, die Bedenken des Kunden berücksichtigen und trotzdem funktionieren. ;-)

Im Startbeitrag ist bereits das Standard Login-Script des Kunden dargestellt.

  • Wenn ich Batch richtig verstanden habe, dann ruft "START" ein Programm auf, ohne auf das Ende der Ausführung zu warten. Es wäre demnach sinnvoll innerhalb des Logon-Scripts die von mir geplanten Aufrufe mit "START Programm" aufzurufen.

Ich würde dann das Login-Script einfach um den Eintrag

start DocusnapScript.vbs

ergänzen.

Damit wären die Änderungen am Login Script minimal und das Login Script wird in seiner Ausführung nicht verzögert.

Die im Loginscript in Zeile 16 aufgerufene pcinfo,cmd

Z16		call pcinfo.cmd

halte ich nach dem was ich bislang gelernt habe für einen Fehler. Denn hier wird eine gesamte Installationsprüfung aufgerufen und ggf auch durchgeführt.
Siehe Zitat unten:

IF NOT EXIST c:\gesuchtes_Programm\Ready.dat (call \\Server\Programmname\client\launcher.exe) ELSE (exit)

Das würde nach meinem Verständnis bedeuten, das gesamte Loginscript wartet ggf. bis die Installation abgeschlossen ist, da auch diese per CALL aufgerufen wird.

https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle#CALL

 

Finde ich irgendwie doof! ;-)

 

Also zurück zum Aufruf von DocusnapScript.vbs

 

Diese Datei sieht wie folgt aus:

Dim WShell
Set WShell = CreateObject("WScript.Shell")
WShell.Run "Script.bat", 0
Set WShell = Nothing

Warum habe ich mir diesen Zwischenschritt überlegt?

Ich möchte alles was danach passiert völlig autark im Hintergrund ausführen lassen ohne dass ein User davon irgendetwas mitbekommt, durch irgendwelche Meldungen abgelenkt wird oder glaubt auf irgendetwas warten zu müssen.

 

Ruft man eine Batchdatei so mit Hilfe des VB Scripts auf, werden auch alle Meldungen der Batchdatei unterdrückt.

 

Das VB-Script ruft dann den eigentlichen "Job" auf, den ich wie folgt aufgebaut habe:

 

@echo off
:: Zeile 1 schaltet pauschal alle Ausgabemeldungen für diese Batchdatei ab. 

echo Executing Inventory-Script
:: Statusmeldung was hier gemacht wird. In der Regel verschwindet das Fenster so schnell wieder, dass es für den User unbemerkt bleibt. 
:: Bei einer Ausführung des Scripts im DOS-Fenster wird diese Meldung jedoch angezeigt, wohingegen der Rest des Scripts verborgen bleibt. 

net use Z: /delete /yes
:: Trennt die Verbindung zum Laufwerk, falls diese noch besteht. 
:: Laufwerksbuchstabe muss an die Kundenumgebung angepasst werden.
:: ACHTUNG: Laufwerksbuchstaben im Verlaufe des Scripts beachten. 

net use Z: \\INSPIRON-7373\e$\Test\DocusnapScript /persistent:no
:: Stellt die Verbindung zum Laufwerk her auf dem sich die DokusnapScript.exe Datei befindet. 
:: Die Freigabe muss für alle Rechner in der Domäne erreichbar sein. 
:: Der in diesem Beispiel angegebene Pfad muss an die Kundenumgebung angepasst werden. 

net use Y: /delete /yes
:: Trennt die Verbindung zum Laufwerk, falls diese noch besteht. 
:: Laufwerksbuchstabe muss an die Kundenumgebung angepasst werden.
:: ACHTUNG: Laufwerksbuchstaben im Verlaufe des Scripts beachten. 

net use Y: \\INSPIRON-7373\e$\Test\XML_Dateien /persistent:no
:: Stellt die Verbindung zum Laufwerk her auf dem die Erfassungsergebnisse als XML-Dateien abgelegt werden. 
:: Die Freigabe muss für alle Rechner in der Domäne erreichbar sein. 
:: Der in diesem Beispiel angegebene Pfad muss an die Kundenumgebung angepasst werden. 

Z:\DocusnapScript.exe -O Y:\

net use Z: /delete /yes
net use Y: /delete /yes
exit

Natürlich enthält die Batch aktuell Verzeichnisse und Pfade zu meinem lokalen PC auf dem ich gerade experimentiere. Das hier noch Anpassungen an die reale Kundenumgebung gemacht werden sollten ist klar.

 

Getestet habe ich das mit einer Musterdatei anstelle eines LoginScriptes. Einfach irgendeine Batchdatei die verschiedenste Texte per Echo ausgibt und zwischendrin ruft sie auch die oben genannte vbs Datei auf und beendet sich dann nach der Ausgabe der per Echo aufgerufenen Texte.

Das funktioniert soweit wunderbar. Die ursprüngliche Batch Datei ist längst beendet, wenn die DocusnapScript.vbs bzw. die durch sie aufgerufenen Programm noch im Hintergrund laufen. 

 

Wenn ich es jetzt noch hinbekomme, dass das Script prüft, ob die Verbindung zum DC existiert und im falle dass diese nicht existent ist, die Ausführung abbricht, wäre noch einer weitere Stufe der Sicherheit erreicht, die verhindert, dass sich hier ggf. etwas totläuft.

 

 

Link zu diesem Kommentar
vor 39 Minuten schrieb j.bussmann:

Wenn ich es jetzt noch hinbekomme, dass das Script prüft, ob die Verbindung zum DC existiert und im falle dass diese nicht existent ist, die Ausführung abbricht, wäre noch einer weitere Stufe der Sicherheit erreicht, die verhindert, dass sich hier ggf. etwas totläuft. 

Das könntest du evtl. über ein ping rausbekommen.

vor 41 Minuten schrieb j.bussmann:

Ich habe vor allem gute Ratschläge bekommen wie der Kunde seine bescheidene IT doch bitteschön verbessern sollte. ;-)

Das die Arbeitsweise des Kunden semioptimal ist erkennst du doch auch selbst. Das du so nichts neues einführen kannst auch.

Ich finde in diesem Thread jede Menge Ansätze dein Problem zu lösen.

 

 

Link zu diesem Kommentar
vor 1 Minute schrieb tesso:

Das könntest du evtl. über ein ping rausbekommen.

Ja, ich habe dazu folgendes gefunden:

PING -n 1 -w 20 [COMPUTERNAME/IP-ADRESSE] | FINDSTR "Antwort"
IF %ERRORLEVEL% == 1 GOTO ENDE

:: Hier die weitere Abarbeitung ::

:ENDE
EXIT

Aber wenn ich nur daraus eine Batch mache, um zunächst ersteinmal zu testen ob es geht und ich füge dort eine IP ein, die nicht existiert also bei mir im Netz z.B. die 192.168.188.100

Dann funktioniert das leider nicht.
Nur der Befehl

PING -n 1 -w 20 192.168.188.100

Gibt korrekterweise folgendes aus:

Ping wird ausgeführt für 192.168.188.100 mit 32 Bytes Daten:
Zeitüberschreitung der Anforderung.

Ping-Statistik für 192.168.188.100:
    Pakete: Gesendet = 1, Empfangen = 0, Verloren = 1
    (100% Verlust),

Ich vermute also einen Fehler im Teil ab dem "|" habe aber dort noch keine Lösung

 

Ok, Fehler selber gefunden.

@ECHO OFF
PING -n 1 -w 20 192.168.188.34 

IF %ERRORLEVEL% == 1 GOTO ENDE
echo der Text wird angezeigt wenn Ping erfoglreich
:ENDE
::EXIT

So funktioniert es, dass muss natürlich jetzt noch zusammengebaut werden.

 

 

Link zu diesem Kommentar
vor einer Stunde schrieb j.bussmann:

Aber wenn ich nur daraus eine Batch mache, um zunächst ersteinmal zu testen ob es geht und ich füge dort eine IP ein, die nicht existiert also bei mir im Netz z.B. die 192.168.188.100

Dann funktioniert das leider nicht.

Was funktioniert nicht? Habe das gerade auf einem deutschen Windows 10 probiert und es funktioniert. Errorlevel ist 1 wenn die IP nicht erreichbar ist.

Link zu diesem Kommentar
vor 51 Minuten schrieb tesso:

Was funktioniert nicht? Habe das gerade auf einem deutschen Windows 10 probiert und es funktioniert. Errorlevel ist 1 wenn die IP nicht erreichbar ist.

Ja, das ist klar, aber das Script:

PING -n 1 -w 20 [COMPUTERNAME/IP-ADRESSE] | FINDSTR "Antwort"
IF %ERRORLEVEL% == 1 GOTO ENDE

:: Hier die weitere Abarbeitung ::

:ENDE
EXIT

Funktioniert bei mir in seiner Gänze nicht.

Habe ja in meinem Beitrag schon geschrieben, wie es funktioniert.

 

Link zu diesem Kommentar
vor 3 Stunden schrieb j.bussmann:

Ja, das ist klar, aber das Script:


PING -n 1 -w 20 [COMPUTERNAME/IP-ADRESSE] | FINDSTR "Antwort"
IF %ERRORLEVEL% == 1 GOTO ENDE

:: Hier die weitere Abarbeitung ::

:ENDE
EXIT

Funktioniert bei mir in seiner Gänze nicht.

Habe ja in meinem Beitrag schon geschrieben, wie es funktioniert.

Funktioniert bei mir auch wie gewollt. Hast Du es denn auch korrekterweise mit ANSI abgespeichert? Notepad++ ist da sehr hilfreich. ;)

Link zu diesem Kommentar
Am 19.6.2019 um 07:53 schrieb Sunny61:

Toller Thread, wenn es davon mehrere gäbe, könnten wir das Forum in 2 Wochen dicht machen.

Kontraproduktiver Kommentar - mir geht es defintiv nicht um das Verheimlichen von Lösungen, sondern um das unaufgeregte (und gern unkommentierte!) Feststellen des eigentlichen Problems. Wer mich kennt, sollte das eigentlich wissen, aber ok, erst mal druff. Danke dafür...

 

Edit: Das gleiche gilt auch für den darauf folgenden Kommentar :hmmm:

BTT: Ich würde erst mal Batch streichen und auf Powershell umsteigen. Die Einstiegshürde ist nicht besonders groß, sehr viele (sehr sehr viele) Standardanforderungen in der Administration lassen sich googeln und Du wärst unendlich viel flexibler.

bearbeitet von daabm
Link zu diesem Kommentar
vor einer Stunde schrieb daabm:

Ich würde erst mal Batch streichen und auf Powershell umsteigen. Die Einstiegshürde ist nicht besonders groß, sehr viele (sehr sehr viele) Standardanforderungen in der Administration lassen sich googeln und Du wärst unendlich viel flexibler. 

Ich denke mit dem was ich bisher ausgetüftelt habe, auch dank der hiesigen Unterstützung, habe ich eine Lösung, die zwar nicht perfekt ist, aber weitaus besser als das was der Kunde bislang hat.

Erschreckend finde ich eher, dass ich nach knapp zwei Tagen einen funktierenden Lösungsansatz habe, während ich mich zuvor vom Kunden noch hatte anmachen lassen müssen, weil ich angeblich etwas umsetzen wollte, was "nicht geht". Und ich dann als quasi Laie nach ein bisschen Einlesen in Grundlagen zusätzlichaauch noch einen Haufen eklatanter Fehler in den bestehenden Scripten finde.

Man kann es sicherlich noch etwas besser machen, als das was ich jetzt als Lösung habe, aber das werde ich bis zum Termin am Donnerstag beim Kunden nicht schaffen, das sattelfest herüber zu bringen.

Wobei mich aus rein persönlichem Ehrgeiz durchaus noch interessiert, was man noch verbessern könnte.

 

Link zu diesem Kommentar
vor 1 Stunde schrieb daabm:

Kontraproduktiver Kommentar - mir geht es defintiv nicht um das Verheimlichen von Lösungen, sondern um das unaufgeregte (und gern unkommentierte!) Feststellen des eigentlichen Problems. Wer mich kennt, sollte das eigentlich wissen, aber ok, erst mal druff. Danke dafür... 

 

Edit: Das gleiche gilt auch für den darauf folgenden Kommentar :hmmm:

Komm wieder runter, Du hast PN ins Spiel gebracht, reg dich nicht über andere Meinungen auf. Immer schön sachlich bleiben.

Link zu diesem Kommentar

Bitte bewahrt die Contenance und antwortet, wenn Ihr wollt, in Eurem Rhythmus und mit Euren Ansätzen.

 

Das hat schon seine Richtigkeit, dass Hinweise kommen zum Thema Prozesse, PowerShell, dem Vorgehen an sich etc.

Denkt bitte daran, dass ein Beitrag natürlich dem Fragesteller (TO oder OP) helfen soll, aber viele Mitleser -und so ist das auch gedacht- einen Ansatz oder eine Lösung für sich adaptieren.

Ein Beitrag hilft vielen und das ist Sinn und Zweck eines Forums.

 

Der Hinweis zum Thema PN kam sicherlich nicht so an, wie er gedacht war. Lasst es gut sein, ich denke, wir haben die Meinungen ausgetauscht und wissen alle, wie der andere dazu steht. ;-)

 

Alles gut... :klar:

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

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

×
×
  • Neu erstellen...