entfernt
Goto Top

VMware PowerCLI

Hallo zusammen,

ich versuche ein paar Vorgänge zu automatisieren (Nach Zeitplan VM's hoch und wieder runterfahren)
Dafür habe ich mir einfach ein Script geschrieben, dass das für mich erledigen soll:

Start-VM -VM VM-NAME -confirm:$false

Mein Problem:

Wenn ich das so machen will, muss ich mich ja immer vorher mit dem Host verbinden:
Connect-VIServer -Server IP/Name -user root -password PASSWORD

Aber das ist etwas was ich nicht in Klarschrift in einem Script haben will...
Jetzt gibt es ja die Möglichkeit bei jedem ausführen diese Befehle mitzugeben notepad $profile aber das ist ja noch schlimmer weil die profile Datei dann einfach unter User/Documents liegt....

Wie ist hier der beste Weg um diese Scripte sicher auszuführen ?

Umgebung:
Alleinstehender ESXi 7 (Testumgebung)
Die scripte wollte ich einfach auf dem DC unter C:\scripts legen und mit der Aufgabenplanung des DC's steuern...

VG
Tom

Content-ID: 645999

Url: https://administrator.de/contentid/645999

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

entfernt
entfernt 29.01.2021 um 12:19:04 Uhr
Goto Top
Nachtrag:

Am Ende soll möglichst das System-Konto dazu genutzt werden können die Scripte aus der Aufgabenplanung auszuführen...
147323
147323 29.01.2021 aktualisiert um 13:09:21 Uhr
Goto Top
Secure-String für Account erzeugen (https://www.pdq.com/blog/secure-password-with-powershell-encrypting-cred ..), diesen speichern und dann im Skript mit dem Secure-String ein Credential Object erzeugen das übergeben wird. Oder gleich das Credential in der Anmeldeinformationsverwaltung des Accounts hinterlegen.

Gruß j.
entfernt
entfernt 29.01.2021 um 13:43:04 Uhr
Goto Top
Hmmm...

Folgendes habe ich jetzt versucht:

Step1:
Creating Securestring
$password = Read-Host -AsSecureString
$password | ConvertFrom-SecureString | Out-File c:\scripts\password.txt

Hier gebe ich das Passwort ein und es wird eine txt Datei im Pfad angelegt

Step2:
Using Securestring in Scripts
$username = "DOMÄNE\Administrator"
$password = Get-Content c:\scripts\password.txt | ConvertTo-SecureString
$credentials = New-Object System.Management.Automation.PSCredential (“$username”, $password)

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Connect-VIServer -Server SERVERNAME -user root -password $password

Domäne & Servername sind natürlich entsprechend gesetzt.
Aber wenn ich Step2 ausführe, egal ob das Script selbst oder in der ISE, bekomme ich immer die Fehlermeldung:

Connect-VIServer : 29.01.2021 13:38:36 Connect-VIServer Cannot complete login due to an incorrect user name or password.

Was habe ich hier falsch verstanden ?

VG
entfernt
entfernt 29.01.2021 um 14:37:55 Uhr
Goto Top
Bin selbst drauf gekommen:

$username = "root" <<< Username der Credentials und nicht vom Ausführer
$password = Get-Content c:\scripts\password.txt | ConvertTo-SecureString
$credentials = New-Object System.Management.Automation.PSCredential (“$username”, $password)

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Connect-VIServer -Server SERVERNAME -Credential $credentials <<< falschen Parameter


VG
147323
147323 29.01.2021 aktualisiert um 15:41:38 Uhr
Goto Top
Bin selbst drauf gekommen:
Das war die Intention des Posts ...