Dark_Masta
Cadet 4th Year
- Registriert
- Juli 2007
- Beiträge
- 85
Hallo Zusammen
Ich bräuchte wieder mal eure Hilfe und zwar bei PowerShell
Ich hab ein kleines Script welches mit RoboCopy die Daten von Gerät 1 auf Gerät 2 kopiert.
Jetzt müsste ich natürlich wissen ob das geklappt hat oder was das Problem war. Da ich ziemlich ein Anfänger bin was PowerShell betrifft habe ich mich im Internet ein paar Sachen durch gelesen und ein paar Scripts getestet, leider hab ich bis jetzt noch keine E-Mail erhalten
Beim Gmail Part hab ich schon recht herumgepfuscht und viel ausprobiert daher haben sich wohl auch schon viele Fehler eingeschlichen. Das Passwort stand schon im PowerShell oder jetzt mit verschlüsselter Datei, nichts hat funktioniert.
Ich bekomme fast immer die selben Meldungen:
"The SMTP server requeres a secure connection or the client was not authicated. The server respone was 5.7.0 Must issue a STARTTLS command first.
oder
"Send-MailMessage : Cannot process argument transformation on parameter 'Credential'. userName
At C:\RoboCopyScript.ps1:115 char:30"
Vielen Dank für eure Hilfe
Ich bräuchte wieder mal eure Hilfe und zwar bei PowerShell
Ich hab ein kleines Script welches mit RoboCopy die Daten von Gerät 1 auf Gerät 2 kopiert.
Jetzt müsste ich natürlich wissen ob das geklappt hat oder was das Problem war. Da ich ziemlich ein Anfänger bin was PowerShell betrifft habe ich mich im Internet ein paar Sachen durch gelesen und ein paar Scripts getestet, leider hab ich bis jetzt noch keine E-Mail erhalten
Code:
#*=============================================
#* Base variables
#*=============================================
$SourceFolder = "D:\TEST"
$DestinationFolder = "\\TEst\Test"
$Logfile = "C:\Robocopy.log"
$Subject = "Robocopy Results: Copy Purpose - Location to Location"
#$SMTPServer = "smtp.server.com"
$Sender = "Hans@gmail.com"
$Recipients = "Fritz@gmail.com"
$Admin = "Uli@gmail.com"
$SendEmail = $True
$IncludeAdmin = $True
$AsAttachment = $False
#*=============================================
#* GMAIL variables
#*=============================================
$SMTPServer = "smtp.gmail.com"
$cred = New-Object System.Net.NetworkCredential("Hans@gmail.com", "Test");
# Add "-UseSsl -Credential $cred" to the Send-MailMessage
#*=============================================
#* SCRIPT BODY
#*=============================================
# Change robocopy options as needed. ( http://ss64.com/nt/robocopy.html )
Robocopy $SourceFolder $DestinationFolder /MIR /R:2 /W:5 /LOG:$Logfile /NP /NDL
# The following attempts to get the error code for Robocopy
# and use this as extra infromation and email determination.
# NO OTHER CODE BETWEEN THE SWITCH AND THE ROBOCOPY COMMAND
Switch ($LASTEXITCODE)
{
16
{
$exit_code = "16"
$exit_reason = "***FATAL ERROR***"
#$IncludeAdmin = $False
#$SendEmail = $False
}
8
{
$exit_code = "8"
$exit_reason = "**FAILED COPIES**"
#$IncludeAdmin = $False
#$SendEmail = $False
}
4
{
$exit_code = "4"
$exit_reason = "*MISMATCHES*"
$IncludeAdmin = $False
#$SendEmail = $False
}
2
{
$exit_code = "2"
$exit_reason = "EXTRA FILES"
$IncludeAdmin = $False
#$SendEmail = $False
}
1
{
$exit_code = "1"
$exit_reason = "Copy Successful"
$IncludeAdmin = $False
#$SendEmail = $False
}
0
{
$exit_code = "0"
$exit_reason = "No Change"
$SendEmail = $False
$IncludeAdmin = $False
}
default
{
$exit_code = "Unknown ($LASTEXITCODE)"
$exit_reason = "Unknown Reason"
#$SendEmail = $False
$IncludeAdmin = $False
}
}
# Modify the subject with Exit Reason and Exit Code
$Subject += " : " + $exit_reason + " EC: " + $exit_code
# Test log file size to determine if it should be emailed
# or just a status email
If ((Get-ChildItem $Logfile).Length -lt 25mb)
{
If ($IncludeAdmin)
{
If ($AsAttachment)
{
Send-MailMessage -From $Sender -To $Recipients -Cc $Admin -Subject $Subject -Body "Robocopy results are attached." -Attachment $Logfile -DeliveryNotificationOption onFailure -UseSsl -Credential $cred -SmtpServer $SMTPServer
} Else {
Send-MailMessage -From $Sender -To $Recipients -Cc $Admin -Subject $Subject -Body (Get-Content $LogFile | Out-String) -DeliveryNotificationOption onFailure -UseSsl -Credential $cred -SmtpServer $SMTPServer
}
} Else {
If ($AsAttachment)
{
Send-MailMessage -From $Sender -To $Recipients -Subject $Subject -Body "Robocopy results are attached." -Attachment $Logfile -DeliveryNotificationOption onFailure -UseSsl -Credential $cred -SmtpServer $SMTPServer
} Else {
Send-MailMessage -From $Sender -To $Recipients -Subject $Subject -Body (Get-Content $LogFile | Out-String) -DeliveryNotificationOption onFailure -UseSsl -Credential $cred -SmtpServer $SMTPServer
}
}
} Else {
# Creat the email body from the beginning and end of the $Logfile
$Body = "Logfile was too large to send." + (Get-Content $LogFile -TotalCount 15 | Out-String) + (Get-Content $LogFile | Select-Object -Last 13 | Out-String)
# Include Admin if log file was too large to email
Send-MailMessage -From $Sender -To $Recipients -Cc $Admin -Subject $Subject -Body $Body -DeliveryNotificationOption onFailure -UseSsl -Credential $cred -SmtpServer $SMTPServer
#Exclude Admin if log file was too large to email
#Send-MailMessage -From $Sender -To $Recipients -Subject $Subject -Body $Body -DeliveryNotificationOption onFailure -SmtpServer $SMTPServer
}
#*=============================================
#* END OF SCRIPT: Copy-RobocopyAndEmail.ps1
#*=============================================
Beim Gmail Part hab ich schon recht herumgepfuscht und viel ausprobiert daher haben sich wohl auch schon viele Fehler eingeschlichen. Das Passwort stand schon im PowerShell oder jetzt mit verschlüsselter Datei, nichts hat funktioniert.
Ich bekomme fast immer die selben Meldungen:
"The SMTP server requeres a secure connection or the client was not authicated. The server respone was 5.7.0 Must issue a STARTTLS command first.
oder
"Send-MailMessage : Cannot process argument transformation on parameter 'Credential'. userName
At C:\RoboCopyScript.ps1:115 char:30"
Vielen Dank für eure Hilfe
Zuletzt bearbeitet: