Ich versuche gerade mein Powershell Skript so umzubauen, dass ich die Credentials nicht mehr als Plain text in der Parameterübergabe des Sensor eintragen muss.
Dabei habe ich nun die Zugangsdaten mit Hilfe von dem folgenden Powershell Befehl erzeugt:
New-VICredentialsStoreItem -Host <<Servername/-adresse>> -User "<<Domäne\Username>>" -Password '<<Sicheres Passwort>>' -File <<Servername/-adresse>>
Das funktioniert auch.
Nun lese ich die Datei im Skript aus und verwende die ausgelesenen Zugangsdaten zum anmelden an das VCenter. Die Befehle dazu sehen wie folgt aus:
$Credentials = Get-VICredentialStoreItem -Host <<Servername/-adresse>> -File <<Servername/-adresse>> $conn = Connect-VIServer <<Servername/-adresse>> -User $Credentials.User -Password $Credentials.Password -Force
Zu Anfang habe ich noch eine nachvollziehbare Fehlermeldung erhalten, dass der Sensor nicht die nötige Berechtigung hat, die XML-Datei zu lesen. Das Problem konnte ich damit lösen, das die XML-Datei die gleichen Berechtigungen bekommen hat, wie sie auch das Powershell Skript hat. Das Powershell skript kann ja auch vom Sensor gelesen und ausgeführt werden.
Ich erhielt also nicht mehr die Fehlermeldung, dass der Sensor keine Lese-/Ausführ-Rechte auf die XML-Datei hat. Dafür kam nun immer die Meldung, das System kann den definierten Pfad nicht finden:
Meldung: The system cannot find the path specified
Gesamte Fehlermeldung:
Error occurred while checking for snapshots: System.Security.Cryptography.CryptographicException The system cannot find the path specified. . at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope) at VMware.Security.CredentialStore.CredentialStore.DecryptPassword(String password) at VMware.Security.CredentialStore.CredentialStore.GetPasswordInternal(XmlDocument credentialsXmlDocument, String host, String username, Boolean isUsernameCaseSensitive) at VMware.Security.CredentialStore.CredentialStore.GetPassword(String host, String username) at VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVICredentialStoreItem.ProcessRecord()
Meine Nachforschung haben dazu leider nichts ergeben, was das Problem hätte lösen können.
Ich hoffe, das jemand weiß, wie das Problem zu lösen ist und einen Tipp oder sogar eine Lösung anbieten kann.
Danke im Voraus.
Add comment