locked
[XP] %TEMP% im Shutdown Skript RRS feed

  • Frage

  • Hi Com,

    ich habe in einem Shutdown Skript, welches die Temp-Verzeichnisse beim herunterfahren leert, die Variable %TEMP% stehen, welche in die User-Temp Verzeichnisse aufgelöst wird. Führe ich das Skript lokal (von Hand) aus, werden die Temp-Verzeichnisse wie gewünscht geleert, wird das Skript als Shutdown Skript ausgeführt, wird nur das System-Temp Verzeichnis geleert. Kann es sein, dass die Variable %TEMP% zum Zeitpunkt wo das Shutdownskript abläuft schon nicht mehr aufgelöst werden kann? Sprich: Der User schon abgemeldet wurde?

    Hier das Skript:

     

    @echo off
    FOR /D %%A IN (%WINDIR%\Temp\*) DO RD /S /Q "%%A"
    DEL %WINDIR%\Temp\* /s /q
    FOR /D %%A IN (%TEMP%\*) DO RD /S /Q "%%A"
    DEL %TEMP%\* /s /q

     

    Thx & Bye Tom

     

     


    -- "Was war zuerst da? Das Problem oder der Admin?"
    Montag, 15. November 2010 19:07

Antworten

  • Moin,

    Am 15.11.2010 20:07, schrieb Thomas - Pronto - Wildgruber:

    Kann es sein, dass die Variable %TEMP% zum Zeitpunkt wo das
    Shutdownskript abläuft schon nicht mehr aufgelöst werden kann?

    Doch, absolut prima und ordentlich, nur:
    Shutdown = Computer = SYSTEM Kontext => %temp% = %systemroot%\Temp

    ... du möchtest ein Abmeldescript verwenden, daß als BENUTZER
    ausgeführt wird und somit auch die %userprofiles% nachschaut,
    Herr "SYSTEM" löst seine %temp% Variable woanders auf.

    Passe dein Script an und integriere auch die Profil-Ordner.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage:    www.gruppenrichtlinien.de - deutsch
    GPO Tool:    www.reg2xml.com - Registry Export File Converter
    NNTP Bridge: http://communitybridge.codeplex.com/releases

    Montag, 15. November 2010 19:56
  • Am 15.11.2010 schrieb Thomas - Pronto - Wildgruber:

    ich habe in einem Shutdown Skript, welches die Temp-Verzeichnisse beim herunterfahren leert, die Variable %TEMP% stehen, welche in die User-Temp Verzeichnisse aufgelöst wird. Führe ich das Skript lokal (von Hand) aus, werden die Temp-Verzeichnisse wie gewünscht geleert, wird das Skript als Shutdown Skript ausgeführt, wird nur das System-Temp Verzeichnis geleert. Kann es sein, dass die Variable %TEMP% zum Zeitpunkt wo das Shutdownskript abläuft schon nicht mehr aufgelöst werden kann? Sprich: Der User schon abgemeldet wurde?

    Genau deshalb gibts ein Abmelde- und Shutdownscript. Gehts denn beim
    abmelden?

    Hier das Skript:

    Alternativ das Script von Helmut Ruhrbeck benutzen, DelTemp.VBS:
    http://www.helmrohr.de/Win98ME.htm Dein Script würde auch die
    Installationsdateien im Tempverzeichnis löschen, das Script von Helmut
    Rohrbeck macht das nicht.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Montag, 15. November 2010 19:56

Alle Antworten

  • Moin,

    Am 15.11.2010 20:07, schrieb Thomas - Pronto - Wildgruber:

    Kann es sein, dass die Variable %TEMP% zum Zeitpunkt wo das
    Shutdownskript abläuft schon nicht mehr aufgelöst werden kann?

    Doch, absolut prima und ordentlich, nur:
    Shutdown = Computer = SYSTEM Kontext => %temp% = %systemroot%\Temp

    ... du möchtest ein Abmeldescript verwenden, daß als BENUTZER
    ausgeführt wird und somit auch die %userprofiles% nachschaut,
    Herr "SYSTEM" löst seine %temp% Variable woanders auf.

    Passe dein Script an und integriere auch die Profil-Ordner.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage:    www.gruppenrichtlinien.de - deutsch
    GPO Tool:    www.reg2xml.com - Registry Export File Converter
    NNTP Bridge: http://communitybridge.codeplex.com/releases

    Montag, 15. November 2010 19:56
  • Am 15.11.2010 schrieb Thomas - Pronto - Wildgruber:

    ich habe in einem Shutdown Skript, welches die Temp-Verzeichnisse beim herunterfahren leert, die Variable %TEMP% stehen, welche in die User-Temp Verzeichnisse aufgelöst wird. Führe ich das Skript lokal (von Hand) aus, werden die Temp-Verzeichnisse wie gewünscht geleert, wird das Skript als Shutdown Skript ausgeführt, wird nur das System-Temp Verzeichnis geleert. Kann es sein, dass die Variable %TEMP% zum Zeitpunkt wo das Shutdownskript abläuft schon nicht mehr aufgelöst werden kann? Sprich: Der User schon abgemeldet wurde?

    Genau deshalb gibts ein Abmelde- und Shutdownscript. Gehts denn beim
    abmelden?

    Hier das Skript:

    Alternativ das Script von Helmut Ruhrbeck benutzen, DelTemp.VBS:
    http://www.helmrohr.de/Win98ME.htm Dein Script würde auch die
    Installationsdateien im Tempverzeichnis löschen, das Script von Helmut
    Rohrbeck macht das nicht.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Montag, 15. November 2010 19:56
  •  

    Doch, absolut prima und ordentlich, nur:
    Shutdown = Computer = SYSTEM Kontext => %temp% = %systemroot%\Temp


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage:    www.gruppenrichtlinien.de - deutsch
    GPO Tool:    www.reg2xml.com - Registry Export File Converter
    NNTP Bridge: http://communitybridge.codeplex.com/releases

    Soll das heißen das System löst die Variable %temp% unterschiedlich auf, je nachdem in welchem Kontext sie aufgerufen wird? Bye Tom (Sorry für die Formatierung aber ein Return wirft mich an den Anfang des Quotes zurück)

    -- "Was war zuerst da? Das Problem oder der Admin?"
    Montag, 15. November 2010 20:04
  • Hi,

    Am 15.11.2010 21:04, schrieb Thomas - Pronto - Wildgruber:

    Soll das heißen das System löst die Variable %temp% unterschiedlich auf,

    Nein. Aber SYSTEM und BENUTZER sind völlig unterschiedliche Personen,
    die jede für sich eine andere Definition von %temp% haben.

    Das SYSTEM kennt deinen TempOrdner nicht. Der weiss nicht mal wo
    er schauen muss. Du (als SYSTEM) hast ja praktisch auch keine Ahnung,
    wo mein temp Ordner (als Benutzer) liegt.
    Das müsste ich dir sagen oder du müsstest auf meine Platte div.
    Ordner durchsuchen.

    Falls die User nicht den Standard Speicherort für Temp verwenden ist
    das mit der Suche in einem bestimmten Pfad auch nicht glücklich.

    Du könntest bei der Abmeldung der Benutzers die TEMP Variable in eine
    einzige Textdatei schreiben lassen, zB
    echo %temp% > \\meinServer\alleschreiben\%computername%_tempordner.txt

    Dann schickst du deinen DEL Befehl mit einen FOR /f schleife durch
    diese Liste der div. Tempordner.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage:    www.gruppenrichtlinien.de - deutsch
    GPO Tool:    www.reg2xml.com - Registry Export File Converter
    NNTP Bridge: http://communitybridge.codeplex.com/releases

    Montag, 15. November 2010 20:49
  • Am 15.11.2010 21:04, schrieb Thomas - Pronto - Wildgruber:

    Soll das heißen das System löst die Variable %temp% unterschiedlich auf,

    Nein. Aber SYSTEM und BENUTZER sind völlig unterschiedliche Personen,
    die jede für sich eine andere Definition von %temp% haben.

    Da liegt wohl der Hund begraben. SYSTEM ist ein Benutzer - der sein %temp% eben in %systemroot% bzw. %windir% hat. Das hatte ich so nicht mehr auf dem Zettel.

    Thx & Bye Tom


    -- "Was war zuerst da? Das Problem oder der Admin?"
    Montag, 15. November 2010 20:58
  • Genau deshalb gibts ein Abmelde- und Shutdownscript. Gehts denn beim
    abmelden?

    Als Logout Skript klappt das ohne Probleme. Klar, das Temp-Verzeichnis in %systemroot% wird direkt angesprochen und das User-Temp Verzeichnis über die Variable %temp%. Die Geschichte das SYSTEM ein User ist und somit mein Skript beim Shutdown zweimal das gleiche Temp-Verzeichnis löscht (nämlich %windir%\temp), war mir aber nicht bewusst.

    Thx & Bye Tom

     


    -- "Was war zuerst da? Das Problem oder der Admin?"
    Montag, 15. November 2010 21:04