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
V horním navigačním panelu Azure Portal klikněte na tlačítko Cloud Shell

V rozevíracím seznamu vyberte prostředí PowerShell a budete na jednotce Azure.
(Azure:)
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
Upozornění
Přečtěte si prosím řešení potíží se vzdálenou správou virtuálních počítačů Azure.
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.