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-Key: 339963

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

Printed on: April 26, 2024 at 06:04 o'clock

Member: SlainteMhath
SlainteMhath Jun 07, 2017 at 09:55:29 (UTC)
Goto Top
Moin,

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

lg,
Slainte
Mitglied: 133417
133417 Jun 07, 2017 updated at 10:05:59 (UTC)
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ß
Member: LordNicon79
LordNicon79 Jun 07, 2017 at 10:40:36 (UTC)
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
Mitglied: 133417
Solution 133417 Jun 07, 2017 updated at 10:46:00 (UTC)
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
Member: LordNicon79
LordNicon79 Jun 07, 2017 at 10:50:32 (UTC)
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