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.


Article Comments

Hallo Patrick_ST,

werden im Skript absolute Pfadangaben genutzt?

In welchem Security-Context läuft der Sensor? (Kann in den Settings eingestellt werden.)


Apr, 2019 - Permalink

Hallo Arne,

Ich habe im Skript sowohl absolute Pfadangaben als auch relative Pfadangaben ausprobiert, d.h. absolut: C:\<<Pfad>>\<<XML-Datei>> oder relativ: ..\<<Pfad>>\<<XML-Datei>> oder mit Admin Shares.

Der Sensor ist auf den Security-Context "Sicherheitskontext des Probe-Dienstes verwenden" eingestellt.


Apr, 2019 - Permalink

Hallo Patrick_ST,

absolute Pfadangaben sind in der Regel vorzuziehen bei Skriptsensoren.

Bitte den anderen Sicherheitskontext einstellen und prüfen, ob im übergeordneten Geräteobjekt entsprechende Windows-Anmeldedaten hinterlegt sind. Läuft es dann?


Apr, 2019 - Permalink

Hallo Arne,

ich hab den Sicherheits-Context umgestellt und die Probe als Übergerodnetes Gerät entsprechend konfiguriert.

Nun funktioniert alles!

Danke für die Hilfe.


Apr, 2019 - Permalink