2 Replies Latest reply on Jan 2, 2017 1:00 AM by derniwi

    Paket monatlich Benutzerbezogen ausführen

    pfister@mesa Apprentice
      Hallo zusammen,
      ein Paket soll ausgeführt werden nachdem es bei dem angemeldeten Benutzer zuletzt vor einem Monat oder länger ausgeführt wurde, kann mir jemand zu diesem Thema weiterhelfen?
      Danke im voraus für die Unterstützung!
        • 1. Re: Paket monatlich Benutzerbezogen ausführen
          SitzRieSe Expert
          Hi,

          die Job Zuweisung lässt leider nur als größte Einheit 1x die Woche zu. Ich fände da mehr Optionen auch toll! Vielleicht machst du dafür mal ein Feature Request auf

          Mir fiel aktuell nur die Möglichkeit ein, ein Abgleich des Datums ins Skript zu bauen. Zum Beispiel kannst du einen entsprechenden Registry Key platzieren und den dann abfragen. Ist die letzte Ausführung länger als 30 Tage her, wird das Skript weiter ausgeführt, ist das nicht der Fall wird das Paket mit ExitProc(Done) beendet. Das kannst du dann 1x am Tag laufen lassen.

          Schön ist aber anders :P

          Gruß

          Alex
          • 2. Re: Paket monatlich Benutzerbezogen ausführen
            derniwi Master
            Hallo,

            um das Datum und die Uhrzeit landes- und sprachunabhängig auszulesen, habe ich mir mal eine Vorlage gebaut, die ich gerne hier reinstelle:
            !Vorlage Datum und Uhrzeit auslesen
            !Beschreibung: Datum und Uhrzeit von Win32_CurrentTime holen
            !
            !Variable initialisieren
            Set('_DATESEPARATOR','-')
            Set('_TIMESEPARATOR',':')
            Set('_DATETIMESEPARATOR',' ')
            Set('_DATE','')
            Set('_WMIDATE','')
            !
            !Datum und Uhrzeit von Win32_CurrentTime holen
            WMISimpleQuery('\\.\root\cimv2','Win32_CurrentTime','__CLASS=Win32_LocalTime','_WMIDATE')
            __CLASS
            Day
            Hour
            Minute
            Month
            Second
            Year
            EndProc
            !
            !Das Jahr auf vier Stellen und die anderen Werte auf zwei Stellen anpassen
            StrRight('0000%_WMIDATEYEAR%','4','_WMIDATEYEAR')
            StrRight('00%_WMIDATEMONTH%','2','_WMIDATEMONTH')
            StrRight('00%_WMIDATEDAY%','2','_WMIDATEDAY')
            StrRight('00%_WMIDATEHOUR%','2','_WMIDATEHOUR')
            StrRight('00%_WMIDATEMINUTE%','2','_WMIDATEMINUTE')
            StrRight('00%_WMIDATESECOND%','2','_WMIDATESECOND')
            !
            !Zeichenkette mit Datum und Uhrzeit im Format "JJJJ-MM-TT hh:mm:ss" erstellen
            Set('_DATE','%_WMIDATEYEAR%%_DATESEPARATOR%%_WMIDATEMONTH%%_DATESEPARATOR%%_WMIDATEDAY%%_DATETIMESEPARATOR%%_WMIDATEHOUR%%_TIMESEPARATOR%%_WMIDATEMINUTE%%_TIMESEPARATOR%%_WMIDATESECOND%')


            Am Ende wird ein String zusammengebaut (Variable "_DATE"), den man weiter verwenden kann. Die normale Windows-Umgebungsvariablen "DATE" und "TIME" kann man zwar auch verwenden, aber wenn ein mehrsprachiges System verwendet wird, können hier Vergleiche durchaus scheitern. Auch kann man in dem speziellen Fall dieses Threads drei Einträge in der Registry erstellen, so dass Jahr, Monat und Tag separat gespeichert werden - ich würde sogar nur den Monat verwenden, wenn der nicht paßt, das Skript ausführen und den aktuellen Monat speichern. Damit wird das Skript in einem Monat zwar einmal ausgeführt, aber es ist kein Abstand von min. 4 Wochen vorgegeben. Sprich, es kann am 28.01. und am 01.02. laufen... aber das sollte sich einigermaßen gut einspielen.

            Gruß
            Nils