Rychlý Start pro PowerShell v Azure Cloud Shell

Tento dokument popisuje, jak používat PowerShell v Cloud Shell v Azure Portal.

Poznámka

K dispozici je také bash v Azure Cloud Shell rychlý Start.

Spuštění Cloud Shellu

  1. V horním navigačním panelu Azure Portal klikněte na tlačítko Cloud Shell

    Snímek obrazovky znázorňující, jak začít Azure Cloud Shell z Azure Portal

  2. V rozevíracím seznamu vyberte prostředí PowerShell a budete na jednotce Azure. (Azure:)

    Snímek obrazovky znázorňující, jak vybrat prostředí PowerShell pro Azure Cloud Shell.

Spuštění příkazů PowerShellu

V Cloud Shell spouštějte běžné příkazy PowerShellu, například:

PS Azure:\> Get-Date

# Expected Output
Friday, July 27, 2018 7:08:48 AM

PS Azure:\> Get-AzVM -Status

# Expected Output
ResourceGroupName       Name       Location                VmSize   OsType     ProvisioningState  PowerState
-----------------       ----       --------                ------   ------     -----------------  ----------
MyResourceGroup2        Demo        westus         Standard_DS1_v2  Windows    Succeeded           running
MyResourceGroup         MyVM1       eastus            Standard_DS1  Windows    Succeeded           running
MyResourceGroup         MyVM2       eastus   Standard_DS2_v2_Promo  Windows    Succeeded           deallocated

Interakce s virtuálními počítači

Všechny virtuální počítače můžete najít v rámci aktuálního předplatného prostřednictvím VirtualMachines adresáře.

PS Azure:\MySubscriptionName\VirtualMachines> dir

    Directory: Azure:\MySubscriptionName\VirtualMachines


Name       ResourceGroupName  Location  VmSize          OsType              NIC ProvisioningState  PowerState
----       -----------------  --------  ------          ------              --- -----------------  ----------
TestVm1    MyResourceGroup1   westus    Standard_DS2_v2 Windows       my2008r213         Succeeded     stopped
TestVm2    MyResourceGroup1   westus    Standard_DS1_v2 Windows          jpstest         Succeeded deallocated
TestVm10   MyResourceGroup2   eastus    Standard_DS1_v2 Windows           mytest         Succeeded     running

Vyvolání skriptu PowerShellu napříč vzdálenými virtuálními počítači

Za předpokladu, že máte virtuální počítač, MyVM1, využijeme Invoke-AzVMCommand k vyvolání bloku skriptu PowerShellu na vzdáleném počítači.

Enable-AzVMPSRemoting -Name MyVM1 -ResourceGroupname MyResourceGroup
Invoke-AzVMCommand -Name MyVM1 -ResourceGroupName MyResourceGroup -Scriptblock {Get-ComputerInfo} -Credential (Get-Credential)

Můžete také nejprve přejít do adresáře VirtualMachines a spustit ho Invoke-AzVMCommand následujícím způsobem.

PS Azure:\> cd MySubscriptionName\ResourceGroups\MyResourceGroup\Microsoft.Compute\virtualMachines
PS Azure:\MySubscriptionName\ResourceGroups\MyResourceGroup\Microsoft.Compute\virtualMachines> Get-Item MyVM1 | Invoke-AzVMCommand -Scriptblock {Get-ComputerInfo} -Credential (Get-Credential)

# You will see output similar to the following:

PSComputerName                                          : 65.52.28.207
RunspaceId                                              : 2c2b60da-f9b9-4f42-a282-93316cb06fe1
WindowsBuildLabEx                                       : 14393.1066.amd64fre.rs1_release_sec.170327-1835
WindowsCurrentVersion                                   : 6.3
WindowsEditionId                                        : ServerDatacenter
WindowsInstallationType                                 : Server
WindowsInstallDateFromRegistry                          : 5/18/2017 11:26:08 PM
WindowsProductId                                        : 00376-40000-00000-AA947
WindowsProductName                                      : Windows Server 2016 Datacenter
WindowsRegisteredOrganization                           :
 ...

Interaktivní přihlášení ke vzdálenému virtuálnímu počítači

Můžete použít Enter-AzVM k interaktivnímu přihlášení k virtuálnímu počítači běžícímu v Azure.

PS Azure:\> Enter-AzVM -Name MyVM1 -ResourceGroupName MyResourceGroup -Credential (Get-Credential)

Můžete také přejít k VirtualMachines adresáři jako první a spustit následujícím Enter-AzVM způsobem:

PS Azure:\MySubscriptionName\ResourceGroups\MyResourceGroup\Microsoft.Compute\virtualMachines> Get-Item MyVM1 | Enter-AzVM -Credential (Get-Credential)

Zjistit WebApps

Když zadáte do WebApps adresáře, můžete snadno procházet prostředky webových aplikací.

PS Azure:\MySubscriptionName> dir .\WebApps\

    Directory: Azure:\MySubscriptionName\WebApps

Name            State    ResourceGroup      EnabledHostNames                  Location
----            -----    -------------      ----------------                  --------
mywebapp1       Stopped  MyResourceGroup1   {mywebapp1.azurewebsites.net...   West US
mywebapp2       Running  MyResourceGroup2   {mywebapp2.azurewebsites.net...   West Europe
mywebapp3       Running  MyResourceGroup3   {mywebapp3.azurewebsites.net...   South Central US

# You can use Azure cmdlets to Start/Stop your web apps
PS Azure:\MySubscriptionName\WebApps> Start-AzWebApp -Name mywebapp1 -ResourceGroupName MyResourceGroup1

Name           State    ResourceGroup        EnabledHostNames                   Location
----           -----    -------------        ----------------                   --------
mywebapp1      Running  MyResourceGroup1     {mywebapp1.azurewebsites.net ...   West US

# Refresh the current state with -Force
PS Azure:\MySubscriptionName\WebApps> dir -Force

    Directory: Azure:\MySubscriptionName\WebApps

Name            State    ResourceGroup      EnabledHostNames                  Location
----            -----    -------------      ----------------                  --------
mywebapp1       Running  MyResourceGroup1   {mywebapp1.azurewebsites.net...   West US
mywebapp2       Running  MyResourceGroup2   {mywebapp2.azurewebsites.net...   West Europe
mywebapp3       Running  MyResourceGroup3   {mywebapp3.azurewebsites.net...   South Central US

SSH

Chcete-li provést ověření na serverech nebo virtuálních počítačích pomocí protokolu SSH, vygenerujte dvojici klíčů veřejného a privátního klíče v Cloud Shell a publikujte veřejný klíč na authorized_keys vzdáleném počítači, například /home/user/.ssh/authorized_keys .

Poznámka

Privátní veřejné klíče SSH můžete vytvořit pomocí ssh-keygen a publikovat je $env:USERPROFILE\.ssh v nástroji v Cloud Shell.

Používání SSH

pokud chcete vytvořit novou konfiguraci virtuálního počítače pomocí rutin Azure PowerShell, postupujte podle pokynů. Než zahájíte volání do New-AzVM nasazení, přidejte do konfigurace virtuálního počítače veřejný klíč SSH. Nově vytvořený virtuální počítač bude obsahovat veřejný klíč v ~\.ssh\authorized_keys umístění, čímž se k virtuálnímu počítači zapíná relace SSH bez přihlašovacích údajů.

# Create VM config object - $vmConfig using instructions on linked page above

# Generate SSH keys in Cloud Shell
ssh-keygen -t rsa -b 2048 -f $HOME\.ssh\id_rsa 

# Ensure VM config is updated with SSH keys
$sshPublicKey = Get-Content "$HOME\.ssh\id_rsa.pub"
Add-AzVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"

# Create a virtual machine
New-AzVM -ResourceGroupName <yourResourceGroup> -Location <vmLocation> -VM $vmConfig

# SSH to the VM
ssh azureuser@MyVM.Domain.Com

Zobrazit dostupné příkazy

V části Azure jednotka zadejte, Get-AzCommand aby se získaly příkazy Azure specifické pro kontext.

Případně můžete k Get-Command *az* -Module Az.* Získání dostupných příkazů Azure vždycky použít.

Nainstalovat vlastní moduly

Můžete spustit Install-Module pro instalaci modulů z Galerie prostředí PowerShell.

Get-Help

Zadejte Get-Help , chcete-li získat informace o PowerShellu v Azure Cloud Shell.

Get-Help

U určitého příkazu můžete i nadále používat Get-Help rutinu.

Get-Help Get-AzVM

Použití souborů Azure k ukládání dat

Můžete vytvořit skript, říkáte helloworld.ps1 ho a uložte ho do souboru, clouddrive abyste ho mohli použít napříč relacemi prostředí.

cd $HOME\clouddrive
# Create a new file in clouddrive directory
New-Item helloworld.ps1
# Open the new file for editing
code .\helloworld.ps1
# Add the content, such as 'Hello World!'
.\helloworld.ps1
Hello World!

Když použijete PowerShell v Cloud Shell, helloworld.ps1 soubor bude existovat v $HOME\clouddrive adresáři, který je připojen ke sdílené složce Azure Files.

Použít vlastní profil

Prostředí PowerShell můžete přizpůsobit vytvořením profilů PowerShellu – profile.ps1 (nebo Microsoft.PowerShell_profile.ps1 ). Uložte ji pod $profile.CurrentUserAllHosts (nebo $profile.CurrentUserAllHosts ), aby se mohla načíst do každého PowerShellu v Cloud Shell relace.

Informace o tom, jak vytvořit profil, najdete v tématu o profilech.

Použití Gitu

K naklonování úložiště Git v Cloud Shell musíte vytvořit osobní přístupový token a použít ho jako uživatelské jméno. Jakmile budete mít token, naklonujte úložiště následujícím způsobem:

  git clone https://<your-access-token>@github.com/username/repo.git

Opusťte prostředí

Zadejte exit , chcete-li ukončit relaci.