Microsoft Azure-virtuaalikoneen admin-tunnus tai salasana hukassa?


Microsoft Azure-virtuaalikoneen admin-tunnus tai salasana hukassa?



Joskus saattaa tulla eteen tilanne, jossa Azureen provisioidun yksittäisen virtuaalikoneen hallintatunnus ja/tai salasana on hävinnyt, tai niitä ei ole dokumentoitu oikein. Tämän takia kaikki asennukset olisi syytä tehdä Azure PowerShell-skripteillä, koska ne voidaan liittää suoraan osaksi asennusdokumentaatiota.

Oletetaan, että tulee tarve käynnistää Azuressa sammutettuna oleva virtuaalikone ja siihen pitäisi päästä etäyhteydellä käsiksi; hallintatunnusta ei löydy mistään, eikä salasanastakaan ole mitään hajua. Onko peli menetetty tässä vaiheessa? Ei, jos osaamme käyttää PowerShell-loitsuja.

Kääritään hihat, ja käydään hommiin…

Ensiksi tarvitsemme hallintakoneen, jossa on asennettuna Azure PowerShell

image

Seuraavaksi tarvitsemme tiedon Azure-tilauksesta, missä edellä mainittu virtuaalikone sijaitsee. Azure-tilauksen hallintasertifikaatti saadaan PowerShellissä komennolla Get-AzurePublishSettingsFile. Komennon avulla hallintakoneelle ladataan hallintasertifikaatti, jolla PowerShell istunto saadaan yhdistettyä Azure-tilaukseen. Hallintasertifikaatti otetaan käyttöön Import-AzurePublishSettingsFile ’C:DownloadsFree Trial-1-1-1985-credentials.publishsettings’ komennolla.

Tässä vaiheessa on hyvä tarkistaa, onko hallintakoneella muita Azuren hallintasertifikaatteja, jotta tiedämme, mihin tilaukseen alamme varsinaisia komentoja kohdentamaan. Get-AzureSubscription palauttaa listan Azure-tilauksista, joihin löytyy hallintasertifikaatti. (Olettaen, että kaikki on kunnossa hallintakoneella, omalla kohdalla ei näin ollut; kts. kuva alla). –> Bad Request virheestä toipuminen

Get-AzureSubscription-error1

Haluttu listaus pitäisi näyttää suunnilleen tältä:

Get-AzureSubscription-error3

Kuten huomaamme, kyseinen Azure-tilaus ei ‘Oletus tilaus’, joten saadaksenne PowerShell komennot kohdentumaan tähän tilaukseen, vaihdetaan se ‘Oletukseksi’ komennolla Select-AzureSubscription -Default “Free Trial″. Nyt voimme tarkistaa, että haluamamme virtuaalikone löytyy tästä tilauksesta, Get-AzureVM komennolla.

image

Tässä esimerkissä käytetään virtuaalikonetta SVR1test9000, joten potkaistaan se käyntiin ja aloitetaan PowerShell-loitsu.

$vm = Get-AzureVM -ServiceName ”SVR1test9000” -Name SVR1
$adminCred = Get-Credential
// Tässä voit generoida uuden hallintatunnuksen, salasanan tai molemmat!!!
Set-AzureVMAccessExtension -VM $vm -UserName $adminCred.UserName -Password $adminCred.GetNetworkCredential().Password -ReferenceName “VMAccessAgent” | Update-AzureVM
Restart-AzureVM -ServiceName $vm.ServiceName -Name $vm.Name

 

Viimeisen komennon jälkeen virtuaalipalvelin käynnistyy uudelleen ja sitten vain kokeilemaan etäyhteyden toimivuutta. Muista tarkistaa mitä RDP-porttia virtuaalikoneessa käytetään.

image

Bad Request virheestä toipuminen

Palataan vielä aiemmin Get-AzureSubscription palauttamaan Bad Request virheilmoitukseen. Siinähän selvästi sanotaan, että tiettyä Namespacea ei löydy data storesta, mutta mikä ja missä tuo data store oikein on? Käyttäjäprofiilin alta löytyy %APPDATA%Windows Azure Powershell kansio ja sieltä pitäisi myös löytyä AzureProfile.json (JavaScript Object Notation) tiedosto.

image

Tämä tiedosto on muokattavissa esimerkiksi Notepadilla ja sen avulla voimme etsiä, löytyykö virheellistä namespace asetusta vastaavaa ID:tä.

image

Poistetaan virheellinen tieto AzureProfile.json tiedostosta ja tallennetaan se, tämän jälkeen Get-AzureSubscription komento palauttaa listauksen Azure tilauksista. Omassa tapauksessani virheen aiheutti vanha Azure Trial tilaus, joka oli mennyt umpeen, mutta en ollut sen hallintakomponentteja muistanut siivota pois omalta koneelta.



Master of the Universe. Windows Server oriented Trainer and Technology Consultant - Microsoft MVP, MCT, MCSE, MCSA, MCITP, MCP, MS, ISI. Likes also #IOS devices.