none
WDS- Unattended.xml - Skripte - Netzlaufwerk wird per Kommandozeile nur verbunden wenn der Pfad vorher im Explorer aufgerufen worden ist. RRS feed

  • Frage

  • Hallo an Alle,

    ich weiß gar nicht wie ich es in eine Überschrift verfassen soll, deshalb komme ich gleich mal zum Problem:

    Ausgangssituation: Server 2008 R2 Standard, AD,DHCP,DNS und WDS sind installiert.

    Ziel: Einen Client mit Win7x86 im Unattended-Modus + Programme installieren.

    In meiner Unattended.xml habe ich folgendes hinzugefügt:

    - LogonCommands

    AsynchronousCommand(Order1)

    Commandline: net use s: \server\reminst\images\win7x32\firefox\

    AsynchronousCommand(Order2)

    Commandline: CMD /C install.cmd

    \\server\reminst\images\win7x32\firefox\ ist der Ordner wo sich die Install.cmd befindet.

    Die Install.cmd beinhaltet das eine Setup.exe aufgerufen wird und silent installiert wird.

    ______________________________________________________________________________________

    Nun der Ablauf:

    Der Client wird erfolgreich mit Windows 7 installiert - komplett Unattended -

    Der Client loggt sich mit dem Domänen-Admin ein und startet das install.cmd -Skript --- so weit so gut.

    Allerdings schlägt dann die Installation fehl, weil das Skript nicht die Setup.exe finden kann ...

    Beim genaueren hinschauen stellt sich heraus das die CMD.exe sich im Pfad: C:\Windows\system32 befindet.

    Im Skript selber navigiere ich mit Aufruf der Setup.exe auf den Server, allerdings greift er nicht darauf zu.

    For example: Start /wait setup.exe /S \\server\reminst\images\win7x32\firefox\data\

    Das Netzlaufwerk wird und ist auch nicht verbunden!

    Also habe ich per CMD.exe den Win7-Client (nach mehreren versuchen) per net use angebunden und habe dann das Skript aufgerufen --- Skript funktioniert! D.h. das Programm wird installiert.

    Also kann es nicht mehr an dem Skript liegen.

    Jetzt das große ABER:

    Ich sagte ja schon vorhin das ich mit mehreren versuchen ein net use per CMD.exe vollzogen habe, allerdings funktioniert das nur wenn ich vorher mit dem Explorer auf genau den Pfad navigiert habe. D.h. im Klartext:

    Explorer.exe\server\reminst\images\win7x32\firefox\ --- funktioniert

    anschließend

    cmd.exe\server\reminst\images\win7x32\firefox\ --- funktioniert jetzt auch.

    Aber wenn der Explorer nicht vorher gestartet worden ist dann komme ich per CMD.exe nicht auf das Netzlaufwerk/Freigabe drauf!!

    Ich kann mir das nicht erklären, da ich diese Methode schon einmal erfolgreich praktiziert habe und nie dieses Problem besaß.

    Hat jemand für mich einen Rat?

    Liebste Grüße.


    Donnerstag, 2. August 2012 11:59

Antworten

  • Moin,

    @ Martin: Danke für deine Tipps.Aber in der Unattended muss ich auf den Server verweisen da sonst mein Skript für Firefox nicht aufgerufen wird. Und die meisten anderen Tipps hatte ich schon berücksichtigt ;-)

    Gute Nachricht - Es funktioniert jetzt ... Allerdings weiß ich immer noch nicht warum ...

    Ich habe die Unattended Files bearbeitet und das Skript komplett neu geschrieben bzw. noch mehr Verbindungsmechanismen eingebaut und dann klappte es auch irgendwann.

    Ich habe im Skript selber nicht mehr versucht den ganzen Pfad aufzurufen (\\server\reminst\images\win7x32\firefox\) und das Netzlaufwerk mit Pfad  zu verbinden sondern bin nur mit einem NET USE bis nach S:\C$ (REMINST - Auch eine Freigabe - hat nicht funktioniert) gegangen und bin jetzt manuell mit einem CHANGE DIRECTORY (cd) bis in den gewollten Ordner navigiert und rufe dann nochmal die Setup.exe auf. Ich habe niemals gedacht das ich jemals alle Schritte die ich gehen möchte einzeln aufrufen muss (sprich um in einen speziellen Ordner zu gelangen), aber siehe da auch das scheint es zu geben. In anderen Skripten funktioniert das angeben eines kompletten Pfades super.

    Um noch einmal zu verdeutlichen was ich mit - bin jetzt manuell mit einem CHANGE DIRECTORY (cd) - meine hier ein kleiner Auszug:

    net use s: \\Server\C$
    s:
    cd RemoteInstall
    cd Images
    cd Win7x32
    cd Firefox

    So komme ich in den gewünschten Ordner, allerdings muss ich vorher im Skript auch aus %WINDIR% raus navigieren!

     Im Klartext: Falls jemand ähnliche Problem auch mal haben sollte --> Wenn alle Stricke reißen gibt in einem Skript jeden einzelnen Schritt an und schaut wie weit Ihr kommt.Nur duch jeden einzelnen Aufruf der Ordner und Co. komme ich nun an mein Skript und kann es erfolgreich installieren. Nicht Elegant aber akzeptabel.
    Dienstag, 14. August 2012 10:59

Alle Antworten


  • AsynchronousCommand(Order1)

    Commandline: net use s: \server\reminst\images\win7x32\firefox\

    AsynchronousCommand(Order2)

    Commandline: CMD /C install.cmd

    \\server\reminst\images\win7x32\firefox\ ist der Ordner wo sich die Install.cmd befindet.


    Nur so als Idee: Warum packst Du den net use nicht auch in die CMD mit rein?


    For example: Start /wait setup.exe /S \\server\reminst\images\win7x32\firefox\data\


    Ändere das in

    start /wait "%~dp0setup.exe" /s ....

    CMD.EXE unterstützt keine UNC-Pfade als aktuelles Verzeichnis und wechselt daher "hilflos" nach %systemroot%\system32.

    Oder wie oben gesagt: Pack den net use in Deine CMD mit rein und rufe dann S:\setup.exe auf.

    Ich sagte ja schon vorhin das ich mit mehreren versuchen ein net use per CMD.exe vollzogen habe, allerdings funktioniert das nur wenn ich vorher mit dem Explorer auf genau den Pfad navigiert habe. D.h. im Klartext:

    Installierst Du aus einem geprepten Image? Ist da für den Admin noch ein nichtverbundenes Netzlaufwerk drin? Dann wäre das die Erklärung - cmd.exe verbindet getrennte Laufwerke nicht, das macht IMHO nur der Explorer.

    mfg Martin

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    Wenn meine Antwort hilfreich war, freue ich mich über eine Bewertung! If my answer was helpful, I'm glad about a rating!
    Montag, 6. August 2012 08:30
  • Moin,

    @ Martin: Danke für deine Tipps.Aber in der Unattended muss ich auf den Server verweisen da sonst mein Skript für Firefox nicht aufgerufen wird. Und die meisten anderen Tipps hatte ich schon berücksichtigt ;-)

    Gute Nachricht - Es funktioniert jetzt ... Allerdings weiß ich immer noch nicht warum ...

    Ich habe die Unattended Files bearbeitet und das Skript komplett neu geschrieben bzw. noch mehr Verbindungsmechanismen eingebaut und dann klappte es auch irgendwann.

    Ich habe im Skript selber nicht mehr versucht den ganzen Pfad aufzurufen (\\server\reminst\images\win7x32\firefox\) und das Netzlaufwerk mit Pfad  zu verbinden sondern bin nur mit einem NET USE bis nach S:\C$ (REMINST - Auch eine Freigabe - hat nicht funktioniert) gegangen und bin jetzt manuell mit einem CHANGE DIRECTORY (cd) bis in den gewollten Ordner navigiert und rufe dann nochmal die Setup.exe auf. Ich habe niemals gedacht das ich jemals alle Schritte die ich gehen möchte einzeln aufrufen muss (sprich um in einen speziellen Ordner zu gelangen), aber siehe da auch das scheint es zu geben. In anderen Skripten funktioniert das angeben eines kompletten Pfades super.

    Um noch einmal zu verdeutlichen was ich mit - bin jetzt manuell mit einem CHANGE DIRECTORY (cd) - meine hier ein kleiner Auszug:

    net use s: \\Server\C$
    s:
    cd RemoteInstall
    cd Images
    cd Win7x32
    cd Firefox

    So komme ich in den gewünschten Ordner, allerdings muss ich vorher im Skript auch aus %WINDIR% raus navigieren!

     Im Klartext: Falls jemand ähnliche Problem auch mal haben sollte --> Wenn alle Stricke reißen gibt in einem Skript jeden einzelnen Schritt an und schaut wie weit Ihr kommt.Nur duch jeden einzelnen Aufruf der Ordner und Co. komme ich nun an mein Skript und kann es erfolgreich installieren. Nicht Elegant aber akzeptabel.
    Dienstag, 14. August 2012 10:59