PowerShell vrijdag: verbinding maken met vCenter
Gepubliceerd op 13 november 2015 • 3 min leestijd • 493 woorden
Voordat we iets nuttigs kunnen doen op een ESXi-host of vCenter, moeten we verbinding maken met de server. Verbinding maken met vCenter of een ESXi-host gebeurt met de opdracht:
Powershell
Connect-VIServerAls u dit invoert bij de PowerCLI-prompt, wordt u om de waarden gevraagd.
Als u de certificaten voor uw hosts of vCenter-server niet heeft gewijzigd, krijgt u een waarschuwing over het certificaat ‘WAARSCHUWING: er waren een of meer problemen met het servercertificaat’ enzovoort. Als u het certificaat niet heeft gewijzigd, is dit een normaal bericht. Belangrijker is de boodschap: ‘WAARSCHUWING: HET STANDAARDGEDRAG OP ONGELDIG SERVERCERTIFICAAT ZAL IN EEN TOEKOMSTIGE RELEASE VERANDEREN’, die voor zich spreekt.
Connect-VIServer vraagt u om een gebruikersnaam en wachtwoord, waarna u een object krijgt dat de verbinding met vCenter bevat.
Wanneer u nu een opdracht uitvoert, wordt deze uitgevoerd met de verbinding die u heeft ingesteld, bijvoorbeeld Get-VM om alle VM’s in uw vCenter weer te geven.
Als je niet van pop-ups houdt en alles vanuit een script wilt doen, kun je het volgende doen:
Powershell
Connect-VIServer -Server vc01.domain.local -User [email protected] -Password ThisIsNotSecureWanneer je dit in je scripts wilt gebruiken is het uiteraard niet erg veilig. Uw wachtwoord is zichtbaar in platte tekst en zal zichtbaar zijn in uw geschiedenis als u het op deze manier vanaf de opdrachtregel uitvoert. Als je gebruikersnamen en wachtwoorden in tekstbestanden wilt gebruiken, kun je hiervoor beter het standaard PowerShell-materiaal gebruiken, het PSCredential-object. You can construct a PSCredential object with:
Powershell
$credentials=Get-CredentialNogmaals, als u de prompt niet wilt, kunt u deze volledig op de opdrachtregel genereren:
Powershell
$credentials=Get-Credential -UserName [email protected] -Message "Enter your vCenter password"Er wordt om een wachtwoord gevraagd. Als u nu verbinding wilt maken met vCenter, kunt u het volgende gebruiken:
Powershell
Connect-VIServer -Server vc01.domain.local -Credential $credentialsAls u tegelijkertijd verbinding wilt maken met meer vCenter-servers, of gewoon niet van generieke verbindingen houdt, is er goed nieuws. U kunt het verbindingsobject aan een variabele toewijzen. Met die variabele kun je andere dingen doen, zoals weergegeven in het volgende voorbeeld:
Powershell
$vc = Connect-VIServer -Server vc01.domain.local -Credential $credentials
Get-VM -Server $vc
```## Veilige tekenreeksen
Nu weet ik dat ik zei dat dit bericht ging over het verbinden met vCenter, maar ik denk dat het erg belangrijk is om vanaf het begin veilig te zijn, dus het hele "wachtwoord in een script" is niet iets dat je zou moeten doen. Maar soms kun je er niet omheen om accounts met wachtwoorden in je scripts te gebruiken. In dat geval kun je beter het volgende gebruiken:Powershell CredsFile
Als u dat wachtwoord later wilt gebruiken, kunt u het bestand met het gecodeerde wachtwoord opnieuw lezen:Powershell securePassword = Get-Content $CredsFile | ConvertTo-SecureString
securePassword) Connect-VIServer -Server vc01.domain.local -Credential $credentials
