none
Wöchentliches Löschskript läuft nicht durch RRS feed

  • Frage

  • Hallo zusammen,

    ich habe einen neuen Fileserver installiert welcher diverse Freigaben bei uns bereitstellt, u.a. auch einen allgemeinen Austausch für alle User der wöchentlich bereinigt werden soll.

    Meine aktuelle Umsetzung ist so: Ich habe ein Skript (siehe unten) welches ich per Aufgabenplanung auf dem Fileserver einmal pro Woche durchlaufen lasse mit den Berechtigungen des "Super"-Domänen-Admins (der, der alle Servergruppen beinhaltet).

    Problem: Laut Aufgabenplanung läuft das Skript durch und wird dann aber beendet, weil es länger als 3 Tage gedauert hat (0x103). Die Beendigung nach 3 Tagen habe ich bewusst eingestellt.

    Analyse: Wenn ich das Skript manuell starte dann läuft alles einwandfrei. Wenn das Skript per Aufgabenplanung gestartet wird, dann wird nicht eine einzige Datei gelöscht :(

    System: Server 2012 R2 Standard mit PS 4.0

    Ich hoffe mir kann jemand bei dem Problem helfen.

    Vielen Dank!

    Freundliche Grüße

    Sandro

    PowerShell Skript:

    #$Jetzt = Get-Date
    #$Alterung = "30"
    #$Aenderung = $Jetzt.AddDays(-$Alterung)
    $Ausnahmen = @("Readme.txt")
    $Pfad = "E:\Ordner\share"
    $Files = Get-Childitem $Pfad -Exclude $Ausnahmen -Force #| Where {$_.LastWriteTime -le "$Aenderung"}
    foreach ($File in $Files)
    {
    Remove-Item $File.FullName -Force -recurse | out-null
    }
    exit

    Aufgabenplanung:

    <?xml version="1.0" encoding="UTF-16"?>
    <Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
      <RegistrationInfo>
        <Date>2015-02-05T08:10:26.4801128</Date>
        <Author>Fileserver\Administrator</Author>
      </RegistrationInfo>
      <Triggers>
        <CalendarTrigger>
          <StartBoundary>2015-01-01T02:00:00</StartBoundary>
          <Enabled>true</Enabled>
          <ScheduleByWeek>
            <DaysOfWeek>
              <Saturday />
            </DaysOfWeek>
            <WeeksInterval>1</WeeksInterval>
          </ScheduleByWeek>
        </CalendarTrigger>
      </Triggers>
      <Principals>
        <Principal id="Author">
          <UserId>Domäne\superadmin</UserId>
          <LogonType>Password</LogonType>
          <RunLevel>HighestAvailable</RunLevel>
        </Principal>
      </Principals>
      <Settings>
        <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
        <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
        <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
        <AllowHardTerminate>true</AllowHardTerminate>
        <StartWhenAvailable>false</StartWhenAvailable>
        <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
        <IdleSettings>
          <StopOnIdleEnd>true</StopOnIdleEnd>
          <RestartOnIdle>false</RestartOnIdle>
        </IdleSettings>
        <AllowStartOnDemand>false</AllowStartOnDemand>
        <Enabled>true</Enabled>
        <Hidden>false</Hidden>
        <RunOnlyIfIdle>false</RunOnlyIfIdle>
        <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
        <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
        <WakeToRun>false</WakeToRun>
        <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
        <Priority>7</Priority>
      </Settings>
      <Actions Context="Author">
        <Exec>
          <Command>C:\Scripts\CleanShare\LoeschskriptmitAusnahmen.ps1</Command>
        </Exec>
      </Actions>
    </Task>

    Donnerstag, 12. März 2015 07:39

Antworten

  • Jetzt läufts!

    Ich starte per Taskscheduler einfach eine .cmd mit folgendem Inhalt (anstatt der .ps1 Datei) und der Job läuft mit o.g. Konfig durch:

    Powershell.exe -executionpolicy Unrestricted -File  C:\Scripts\CleanShare\LoeschskriptmitAusnahmen.ps1


    Montag, 16. März 2015 07:06