Vorgehensweise - Erstellen Sie eine sichere Berechtigungsnachweisdatei für die Verwendung mit PowerShell - Wie Man

Vorgehensweise - Erstellen Sie eine sichere Berechtigungsnachweisdatei für die Verwendung mit PowerShell

In meiner Umgebung verwenden wir den integrierten Taskplaner für Windows in Kombination mit einem PowerShell-Skript auf unseren Hostservern, um Sicherungen unserer VM-Images in einen alternativen Ordner zu exportieren, der in bestimmten Abständen auf unseren NAS kopiert wird.

Ich habe mehrere Verbesserungen an diesem Prozess vorgenommen, vor allem, indem ich das Skript so geändert habe, dass es keine Klartext-Anmeldeinformationen mehr für das E-Mail-Konto verwendet, das zur Benachrichtigung bei einem Fehlschlagen des Prozesses verwendet wird.

Der Inhalt des Skripts ist nicht wichtig, da mit diesem Prozess die sichere Berechtigungsnachweisdatei für ein beliebiges PowerShell-Skript erstellt werden kann. Das einzige, was zu beachten ist, ist, dass dieser Vorgang auf jedem Host einzeln durchgeführt werden muss und bei Änderungen des Kennworts wiederholt werden muss. Für uns ist dies kein Problem, da ich nur 6 Hosts habe. Bei größeren Umgebungen kann dies jedoch schwieriger sein. Für diejenigen, die mehr Erfahrung mit PowerShell haben, gibt es wahrscheinlich einen einfacheren Weg, dies zu tun, aber ich bin ein kompletter PS-Neuling.

Bitte beachten Sie, ich habe das Skript nicht geschrieben. Ich habe es nur aus anderen Dingen zusammengestellt, die ich online gesehen habe.

7 Schritte insgesamt

Schritt 1: Öffnen Sie auf dem Hostserver die PowerShell mit Administratorzugriff.

Schritt 2: Geben Sie den folgenden Befehl ein: read-host -assecurestring | konvertierenvon-sicherheitszeichen | out-file D: Scripts secure.txt

Stellen Sie sicher, dass der Pfad "out-file" mit dem Speicherort Ihres PowerShell-Hauptskripts übereinstimmt

Schritt 3: Geben Sie das Passwort für das Konto ein, das Sie verwenden (in meinem Fall ein E-Mail-Konto) in der nächsten Zeile

Es erfolgt keine Aufforderung. Tippen Sie nach der Eingabe auf die Eingabetaste. Geben Sie den Code sorgfältig ein, da das Kennwort verschlüsselt ist und Sie keine Möglichkeit zur erneuten Eingabe oder Bestätigung haben.

Schritt 4: Navigieren Sie zu dem Verzeichnis, in dem Sie die Datei gespeichert haben, und bestätigen Sie, dass sie erstellt (oder geändert) wurde.

Schritt 5: Beenden Sie PowerShell.

Schritt 6: Ändern Sie Ihr vorhandenes Skript

Nachdem Sie das Kennwort gespeichert haben, sollten Sie einige Zeilen in Ihrem PowerShell-Skript ändern / hinzufügen, damit die verschlüsselte Datei verwendet werden kann. An meinem Beispiel für E-Mail-Benachrichtigungen unten habe ich eine neue Variable definiert, $ pass, die dann die Datei abruft, und $ Cred, die die E-Mail-Adresse und das Kennwort zu einem neuen Berechtigungsnachweisobjekt kombiniert:

$ smtpServer = "smtp.office365.com"
$ smtpFrom = "[email protected]"
$ smtpTo = "[email protected]"
$ addy = "[email protected]"
$ pass = Get-Content 'D: Scripts secure.txt' | ConvertTo-SecureString
$ Cred = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $ addy $ pass

Schritt 7: Verwenden Sie die neuen Variablen

Sobald dies geschehen ist, kann die PowerShell-Funktion zum Senden von E-Mails wie folgt verwendet werden, wobei das ursprüngliche Klartextkennwort durch die neue $ Cred-Variable ersetzt wird:

# Ergebnisse per E-Mail senden (Office 365)
Send-MailMessage -From $ smtpFrom -To $ smtpTo -Subject $ messagesubject -Body $ messagebody -SmtpServer $ smtpServer -Credential $ Cred -UseSsl -Port 587

Wie gesagt, ich bin kein professioneller PowerShell-Benutzer. Ich konnte das aus anderen Teilen zusammenstellen, die ich beim Suchen gefunden habe. Ich hoffe, es wird jemandem die Mühe ersparen.