lordnicon79
Goto Top

Powershell MailInfo Script über Locked Accounts

Hallo zusammen,

ich habe mir ein Script in Powershell erstellt, das mit per Mail eine info zu allen Gesperrten Accounts liefert.

Ich kann es zumeist 1x ausführen und dann bekomme ich bei der zweiten Runde die Info zurück, dass im Body etwas drin stehen muss!

Ich habe mittlwerweile herausgefunden, dass eine meiner definierten Variablen manchmal meine übergebenen Infos übernimmt und manchmal nicht.

Vielleicht hat einer eine Idee woran das liegen kann ?

Hier mein kleines Script:

  1. ======================
  2. Collecting Info
  3. ======================
{
import-module activedirectory

$result = Search-ADAccount -LockedOut | Select Name, LastLogonDate | out-string
return $result
}

  1. ======================
  2. Sending Email Section
  3. ======================

$strFrom = "LockedOutInformation@*.de"
$strTo = "mein-Name@domain.de"
$strSubject = "
* Info about Locked Accounts last 30 Min. ***"
$strSMTPServer = "SMTP Server"

send-mailmessage -to $strTo -from $strFrom -subject $strSubject -body $result -BodyAsHtml -smtpserver $strSMTPServer -encoding ([System.Text.Encoding]::UTF8)


Das return $result habe ich nur zur Kontrolle eingebaut um den Fehler zu sehen !

Danke schon mal für Eure Hilfe!

Gruß

Content-ID: 339963

Url: https://administrator.de/contentid/339963

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

SlainteMhath
SlainteMhath 07.06.2017 um 11:55:29 Uhr
Goto Top
Moin,

kannst du das mal in code-tags setzten bitte - ist so kaum lesbar

lg,
Slainte
133417
133417 07.06.2017 aktualisiert um 12:05:59 Uhr
Goto Top
Ich kann es zumeist 1x ausführen und dann bekomme ich bei der zweiten Runde die Info zurück, dass im Body etwas drin stehen muss!
Logisch wenn man nicht prüft ob die Variable $result überhaupt Inhalt hat!
import-module activedirectory
$strFrom = "LockedOutInformation@*.de"  
$strTo = "mein-Name@domain.de"  
$strSubject = "* Info about Locked Accounts last 30 Min. ***"  
$strSMTPServer = "SMTP Server"  

$result = Search-ADAccount -LockedOut | Select Name, LastLogonDate | ConvertTo-HTML -Fragment
if ($result){
    send-mailmessage -to $strTo -from $strFrom -subject $strSubject -body $result -BodyAsHtml -smtpserver $strSMTPServer -encoding UTF8
}else{
    write-host "No locked-out accounts." -F yellow  
}
Gruß
LordNicon79
LordNicon79 07.06.2017 um 12:40:36 Uhr
Goto Top
return $result habe ich ja ebend dazu genutzt zu sehen ob was drin ist !

Ich habe es aber grad behoben!

ich habe das return $result entfernt!

anscheinend löscht es danach den Inhalt .. oder was da auch immer passiert. Ohne das läuft es !

Besten Dank
133417
Lösung 133417 07.06.2017 aktualisiert um 12:46:00 Uhr
Goto Top
return bedeutet beende Skript/Skriptblock. Die Rückgabe speicherst du nirgendwo, also ist da auch nichts drin weil du die Variable in einem Sub-Skriptblock definiert wurde und deswegen außerhalb nicht mehr sichtbar ist.

Les mal about_scopes
LordNicon79
LordNicon79 07.06.2017 um 12:50:32 Uhr
Goto Top
ok dann erklärt sich das jetzt auch dadurch !

Danke noch mal für den Hinweis.
Wenn man das nicht jeden Tag macht! face-smile