Jump to content

BpDk

Members
  • Gesamte Inhalte

    56
  • Registriert seit

  • Letzter Besuch

Reputation in der Community

0 Neutral

1 Benutzer folgt diesem Benutzer

Über BpDk

  • Rang
    Newbie
  1. Hallo Leute, vielen Dank für eure Unterstützung. Ich habe es umgesetzt bekommen!
  2. Hallo Zahni, ich habe die Möglichkeit aus dem Artikel versucht anzuwenden, jedoch ohne Erfolg. Kannst du mir auf die Sprünge helfen?
  3. Hallo Leute, ich habe mir ein kleines Skript mit Powershell erstellt, das mir eine VHDX + VM mit ein paar Grundeinstellungen erstellt und einbindet. Wie ihr seht. definiere ich oben verschiedene Variablen mit "Read-Host" für eine Benutzereingabe. Nun habe ich folgendes Problem: Die Variablen "$Vhdsize" und "$Memorysize" kann nicht weiterverarbeitet werden -->Folgende Meldung: Wie muss ich meine Variablen deklarien, dass diese verarbeitet werden können? Hier mein Skript: [string]$HostName = "WS037" [string]$VMName = Read-Host "VMName" [string]$VMDir = Read-Host "VHDX Verzeichnis" [string]$Vhdsize = Read-Host "VHH Größe" [string]$Memorysize = Read-Host "Arbeitsspeicher" [string]$NumbervCPU = Read-Host "Anzahl vCPU" New-VHD -Path $VMDir\$VMName.vhdx -Fixed -SizeBytes $Vhdsize New-VM -Name $VMName -MemoryStartupBytes $Memorysize -Generation 2 -VHDPath $VMDir\$VMName.vhdx -ComputerName $HostName -SwitchName VSwitch Set-VMProcessor -VMName $VMName -ComputerName $HostName -Count $NumbervCPU Get-VM –VMname $VMName | Set-VM -AutomaticStopAction ShutDown Get-VM –VMname $VMName | Set-VMMemory -DynamicMemoryEnabled $false Ich bin absoluter Powershell-Neuling. Gerne Verbesserungsvorschläge. Liebe Grüße und Danke, BpDk
  4. Get-VM Parsen ?

    Da wir die freie Version nutzen (für uns aktuell vollkommen ausreichend) müssen wir mit Script und Tasks arbeiten um automatisch zu sichern. Hallo Dukel, die Variable "Ausgabe" enthält alle VM's in der gewünschtgen Syntax ("VM01, "VM02", .....). Quasi wie, wenn ich der Variable feste Werte zuweise. :confused:
  5. Get-VM Parsen ?

    Vielen Dank für euer Feedback. Kennt sich jemand zufällig mit Veeam Backup & Replication aus und sichert seine VMs damit? Meine Intention war eigentlich das Powershell Skript so anzupassen, dass die vorhandenen VM's automatisch ermittelt werden. Leider funktioniert das nicht so einfach, wie ich ich mir das vorgestellt hatte. Jemand ein Tipp? # Author: Vladimir Eremin # Created Date: 3/24/2015 # http://forums.veeam.com/member31097.html # ################################################################## # User Defined Variables ################################################################## # Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2” $Ausgabe = '' $VMs = (Get-VM) foreach ($VM in $VMs) { $Ausgabe = $Ausgabe + '"' + $VM.Name + '",' } $VMNames = $Ausgabe.trimEnd(',') # Name of vCenter or standalone host VMs to backup reside on (Mandatory) $HostName = "DMZ01" # Directory that VM backups should go to (Mandatory; for instance, C:\Backup) $Directory = "F:\HyperV" # Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme) $CompressionLevel = "5" # Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False) $EnableQuiescence = $True # Protect resulting backup with encryption key (Optional; $True/$False) $EnableEncryption = $False # Encryption Key (Optional; path to a secure string) $EncryptionKey = "" # Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time. # Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month) $Retention = "Never" ################################################################## # Notification Settings ################################################################## # Enable notification (Optional) $EnableNotification = $false # Email SMTP server $SMTPServer = "" # Email FROM $EmailFrom = "" # Email TO $EmailTo = "" # Email subject $EmailSubject = "HyperV Backup" ################################################################## # Email formatting ################################################################## $style = "<style>BODY{font-family: Arial; font-size: 10pt;}" $style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}" $style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }" $style = $style + "TD{border: 1px solid black; padding: 5px; }" $style = $style + "</style>" ################################################################## # End User Defined Variables ################################################################## #################### DO NOT MODIFY PAST THIS LINE ################ Asnp VeeamPSSnapin $Server = Get-VBRServer -name $HostName $MesssagyBody = @() foreach ($VMName in $VMNames) { $VM = Find-VBRHvEntity -Name $VMName -Server $Server If ($EnableEncryption) { $EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString) $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey } Else { $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention } If ($EnableNotification) { $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords $FailedSessions = $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"} if ($FailedSessions -ne $Null) { $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}}) } Else { $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}}) } } } If ($EnableNotification) { $Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo $Message.Subject = $EmailSubject $Message.IsBodyHTML = $True $message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String $SMTP = New-Object Net.Mail.SmtpClient($SMTPServer) $SMTP.Send($Message) } Folgende Fehlermeldung erhalte ich: Start-VBRZip : Das Argument für den Parameter "Entity" kann nicht überprüft werden. Das Argument ist NULL. Geben Sie einen gültigen Wert für das Argument an, und führen Sie den Befehl erneut aus. In C:\Users\Administrator\Desktop\Veeam_Backup.ps1:92 Zeichen:40 + $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $Comp ... + ~~~ + CategoryInfo : InvalidData: (:) [Start-VBRZip], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Veeam.Backup.PowerShell.Cmdlets.StartVBRZip Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat. In C:\Users\Administrator\Desktop\Veeam_Backup.ps1:97 Zeichen:5 + $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull Ausnahme beim Aufrufen von "Send" mit 1 Argument(en): "Fehler beim Senden von Mail." In C:\Users\Administrator\Desktop\Veeam_Backup.ps1:119 Zeichen:1 + $SMTP.Send($Message) + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SmtpException
  6. Get-VM Parsen ?

    Ist mir fast peinlich, aber ja läuft nun. Ich bedanke mich bei allen für die schnelle Hilfe. Nur dass ich es auch verstehe. Was macht hier genau der Parameter -join?
  7. Get-VM Parsen ?

    Vielen Dank für deine schnelle Hilfe!!! Leider gibt mir der Code nichts aus, wenn ich diesen am Hyper-V Host ausführe.
  8. Get-VM Parsen ?

    Hallo Leute, gibt es die Möglichkeit den Befehl "Get-VM" so zu parsen, dass die Ausgabe in folgender Syntax ist? "VM-Name," "VM-Name", ...... Ich würde gerne mein Veeam Backup Skript dynamisch aufbauen, damit das Skript nicht jedes mal bei einer VM-Neuanlage angepasst werden muss. Vielen Dank, BpDK
  9. Erstmal vielen Dank für deine Antwort. Und ja, wir melden uns mit unseren Domänen-Admin Usern an den Servern an, korrekt. Hast du in deinem LAB die gleiche GPO wie ich oben aktiviert? Liebe Grüße!
  10. Hallo, gibt es die Möglichkeit das Herunterfahren / Neustarten auch für Domänen Admins auf Servern zu deakvieren bzw. auszublenden? Über die Administrative Vorlage -> Starmenü und Taskleiste -> Befehle "" "" "" verweigern habe ich bereits getestet, jedoch greift diese aktuell nicht für Domänen Admins. Sinn und Zweck ist es, dass nicht mehr ausversehen ein Server Heruntergefahren bzw. neu gestartet wird. shutdown über die Kommandozeile soll natürlich funktionieren. Habt ihr eine Idee? LG, BpDK
  11. Ich werde das nacher gleich mal versuchen und anschließend meine Erfahrung mit euch teilen. Vielen Dank.
  12. Ich benötige das für ein recht exotisches Szenario: In einer Anwendung pflegen Anwender Ihre Termine, Veranstaltungen usw. Nun bietet diese Anwendung eine Art "Schnittstelle" zu Exchange. Bei dieser "Schnittstelle" versendet die Anwendung Terminanfragen per E-Mail an die Exchange User, sodass Termine auch im Outlook, Smartphone etc. einsehbar sind. Daher das User Postfach und kein Raumposftfach LG
  13. Ich möchte einfach die Kalendereinstellungen, die ich mir mit Get-CalendarProcessing -Identity "Name" | FL anzeigen lassen kann, ändern. In meinem Fall soll der Wert von "ProcessExternalMeetingMessages" von $false auf $true geändert werden.
  14. Hallo Leute, kann mir jemand erklären, wie ich die Kalender Einstellungen eines Benutzerpostfaches ändern kann? Ich lasse mir am Exchange 2013 über die Powershell die Settings des Postfaches anzeigen: Get-CalendarProcessing -Identity "Name" | FL so nun bekomme ich verschiedene Einstellungen, die entweder auf true oder false stehen. Ich möchte die Einstellung "ProcessExternalMeetingMessages auf $true ändern Bei einem Raumpostfach kann ich das mit diesem Befehl wunderbar ändern: Get-mailbox Raumpostfach | Set-CalendarProcessing -ProcessExternalMeetingMessages: $true Wenn ich den gleichen Befehl nehme und anstatt dem Raumpostfachname den Benutzer hinterlege, meckert er "Dieser Befehl funktioniert nur bei Raumpostfächern" Kann mir da jemand helfen? LG, BpDk
  15. Hallo, ich würde gerne per Skript eine Datensicherung auf externe Festplatten ausführen. Nun kann es vorkommen dass die Laufwerkbuchstaben der Festplatten sich ändern. Kann ich irgendwie vorher den Laufwerkbuchstaben anhand z.B des Namens ermitteln und diesen in eine Variable schreiben? Über Lösungen würde ich mich freuen. LG, BpDK
×