Stefan W 14 Geschrieben 21. August 2012 Melden Teilen Geschrieben 21. August 2012 Grüß euch, Mein Script sollte in einen Reg Key schreiben wann es zuletzt gelaufen ist. Beim nächsten Durchlauf sollte er auslesen, wann er gelaufen ist, und prüfen ob zwischen jetzt, und last run ein Postfach erstellt wurde. (Hintergrund ist eine Willkommensnachricht für neue Mitarbeiter mit Postfach) $strScriptName = $MyInvocation.MyCommand.Name if (!(Get-ItemProperty HKLM:\Software\Innervation\$strScriptName -Name LastRun -EA SilentlyContinue)){ New-Item -path HKLM:\Software\Innervation -EA SilentlyContinue | Out-Null New-Item -path HKLM:\Software\Innervation\$strScriptName | Out-Null New-ItemProperty -path HKLM:\Software\Innervation\$strScriptName -Name "LastRun" -Value (Get-Date) -propertyType String | Out-Null write-host "Initial configuration completed." -ForegroundColor green } # get time stamp from registry so we know when it last ran $LastRun = Get-Date ((Get-ItemProperty -path HKLM:\Software\Innervation\$strScriptName -Name LastRun).LastRun) $ElapsedTime = ((Get-Date) - $lastrun).TotalSeconds $MBXArray = @(Get-Mailbox -ResultSize Unlimited | ? {($_.WhenCreated -gt (Get-Date).AddSeconds(-$ElapsedTime)) -and ($_.ExchangeUserAccountControl -ne "AccountDisabled")}) beim Testweise ausführen bekomme ich jedoch folgenden Fehler Get-Date : Der Parameter "Date" kann nicht gebunden werden. Der Wert "08/21/2012 14:12:23" kann nicht in den Typ "Syste m.DateTime" konvertiert werden. Fehler: "Die Zeichenfolge wurde nicht als gültiges DateTime erkannt." Bei C:\Program Files\Microsoft\Exchange Server\V14\Scripts\Welcomemessage.ps1:12 Zeichen:20 + $LastRun = Get-Date <<<< ((Get-ItemProperty -path HKLM:\Software\Innervation\$strScriptName -Name LastRun).LastRun) + CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetDateCommand Für "op_Subtraction" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "2". Bei C:\Program Files\Microsoft\Exchange Server\V14\Scripts\Welcomemessage.ps1:13 Zeichen:29 + $ElapsedTime = ((Get-Date) - <<<< $lastrun).TotalSeconds + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodCountCouldNotFindBest Den Grundbaustein habe ich hier her, und der Kopf wurde auch nicht geändert » Send-NewUserWelcome.ps1 – Automatically sending a ‘Welcome’ email to all new user accounts Ehlo World! Wie ändere ich nun diese "Zeichenfolge für ein gültiges DateTime Format"? lg Zitieren Link zu diesem Kommentar
ducke 11 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Die Lösung steht doch in dem verlinkten Artikel! Note #2: If you’re using a server that’s not configured for the normal U.S. style time-date format, such as in the U.K., see Neil Hobson’s post at I See UC: PowerShell Bug? for information. Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 22. August 2012 Autor Melden Teilen Geschrieben 22. August 2012 :/ peinlich... und funktioniert ;) danke Zitieren Link zu diesem Kommentar
ducke 11 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Hatte ich aber auch erst nicht gesehen :) Geht auch mit New-ItemProperty -path HKLM:\Software\Innervation\$strScriptName -Name "LastRun" -Value ([system.DateTime]::Today.ToString()) -propertyType String | Out-Null Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.