agnostiker

Login Powershell Script Fehler

Hi,

eigentlich wollte ich nur ein simples Script verfassen welches nach einem Erfolgreichen Anmelden eines Users dessen Workstation und Loginzeit an
spezifizierte Email Adresse sendet, dazu habe ich folgendes Script erstellt und dachte eigentlich das es so laufen muesste aber ich renne in den unten Stehenden fehler, erstmal das script, eigentlich selbst erklaerend:

$pw = Get-Content \\Server\path\filename.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential "service_account", $pw  
$subject = [Environment]::UserName.substring(1,1).toupper()+[Environment]::UserName.substring(2)+", "+[Environment]::UserName.substring(0,1).toupper()+" hat sich an "+[Environment]::MachineName+" eingeloggt"  
$C10 = [char]10
$Zeit = Get-Date

$body = [Environment]::UserName+" hat sich erfolgreich an "+[Environment]::MachineName+" eingeloggt."+$C10+$C10+$C10  
$body=$body + 'Logon Server: '+$env:logonserver+$C10  
$body=$body + 'Aktuelle Uhrzeit: '+$Zeit+$C10  
Send-MailMessage -Credential $cred -to "user@tld.com" -from "Anmeldung <no-reply@tld.com>" -Subject $subject -body $body -SmtpServer internal.server.lan  

Die Fehlermeldung die mich noch Wahnsinnig macht ist:

ConvertTo-SecureString : Schlüssel ist im angegebenen Status nicht gültig.
In Path\loginmail.ps1:1 Zeichen:73
+ $pw = Get-Content \\path\\netlogon\scripts\filename.txt | ConvertT ...
+                                                                         ~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [ConvertTo-SecureString], CryptographicException
    + FullyQualifiedErrorId : ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
 
New-Object : Ausnahme beim Aufrufen von ".ctor" mit 2 Argument(en):  "Das Argument kann nicht verarbeitet werden, da der Wert des Arguments "password" NULL ist. Ändern Sie den Wert   
des Arguments "password" in einen Wert ungleich NULL."  
In path\loginmail.ps1:2 Zeichen:9
+ $cred = New-Object System.Management.Automation.PSCredential "service_account", $p ...  
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
   + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

Da die Mail im Kontext von bereichts authentifizierten Usern gesendet wird waerend des Login Prozesses muss doch eigentlich auch moeglich sein komplett ohne predefinierten User / ohne Die $Creds auszukommen oder ?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 227578

Url: https://administrator.de/forum/login-powershell-script-fehler-227578.html

Ausgedruckt am: 07.05.2025 um 07:05 Uhr

colinardo
colinardo 24.01.2014 um 09:36:11 Uhr
Goto Top
Hallo agnostiker,
Da die Mail im Kontext von bereichts authentifizierten Usern gesendet wird waerend des Login Prozesses muss doch eigentlich auch moeglich sein komplett ohne predefinierten User / ohne Die $Creds auszukommen oder ?
Eigentlich ja, wenn User berechtigt ist Mails zu versenden. (http://www.windowspro.de/script/send-mailmessage-e-mails-versenden-powe ..)
Liegt das Passwort bereits verschlüsselt in der Textdatei vor ? Wenn ja, hast du das Passwort vermutlich mit einem anderen als dem Service-Account verschlüsselt erzeugt, siehe: http://social.technet.microsoft.com/Forums/de-DE/74fa3d1a-ded7-4e89-827 ...

Grüße Uwe
agnostiker
agnostiker 24.01.2014 um 11:06:22 Uhr
Goto Top
ich habe jetzt einen neuen recieve connector gebaut, welcher anonymous annimmt und auf einem speziellen, nicht nach aussen verfügbaren port laeuft.
das script laeuft ABER es werden nur eine handvoll user protokolliert. diese user haben keinerlei eigenheiten also nicht eine spezielle gruppe, ou oder auf einem
speziellen exchange server, sieht schon fast random aus.

user1 loggt sich ein -> mail
user2 loggt sich ein -> nix
user1 loggt sich wieder ein -> mail
colinardo
colinardo 24.01.2014 aktualisiert um 12:09:40 Uhr
Goto Top
ist denn bei allen Usern die "Powershell Script Execution-Policy" (Set-ExecutionPolicy) korrekt gesetzt ?

falls es doch an der Mail-Funktion haken sollte, benutze mal diese Funktion zum Mail versenden
(Zeile 2-5 noch anpassen / letzte Zeile versendet eine Beispiel-Mail mit dieser Function)
Function sendmail($FROM,$TO,$SUBJECT,$BODY,$ATTACHMENTS = $null){
  $SMTPHOST = "smtp.server.de"  
  $SMTPPORT = 25
  $SMTPUSER = "USERNAME"  
  $SMTPPass = "PASSWORD"  
  $SMTPClient = New-object System.Net.Mail.SmtpClient($SMTPHOST,$SMTPPORT)
  $SMTPClient.EnableSsl = $true
  $Mail = new-object System.Net.Mail.MailMessage
  $Mail.from = $FROM 
  $Mail.to.add($TO)
  $SMTPClient.Credentials = new-object System.Net.NetworkCredential($SMTPUSER,$SMTPPass)
  $Mail.Subject = $SUBJECT
  $Mail.Body = $BODY
  # Add Attachments
  if ($ATTACHMENTS){
      foreach ($att in $ATTACHMENTS){
        $Mail.Attachments.Add($att.FullName)
      }
  }
  $SMTPClient.Send($Mail)
}
sendmail "absender@domain.com" "empfaenger@domain.com" "DEIN BETREFF" "DER INHALT"