Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к виртуальным машинам ✔️ Windows
Сводка
При устранении неполадок на виртуальной машине Azure можно подключиться к виртуальной машине с помощью удаленных средств, которые рассматриваются в этой статье, а не с помощью протокола Remote Desktop (RDP).
Последовательная консоль
Используйте сериализованную консоль для Виртуальные машины Azure для выполнения команд на удаленной виртуальной машине Azure.
Удаленное выполнение команд
Скачайте PsExec. Подключитесь к виртуальной машине с помощью следующей команды.
psexec \\<computer>-u user -s cmd
Примечание.
- Команда должна выполняться на компьютере, который находится в той же виртуальной сети.
- DIP или HostName можно использовать для замены <компьютера>.
- Параметр -s гарантирует, что команда вызывается с помощью системной учетной записи (с разрешениями администратора).
- PsExec использует TCP-порты 135 и 445. В результате на брандмауэре должны быть открыты два порта.
Выполнение команд
Дополнительные сведения об использовании функции команды выполнения для выполнения скриптов на виртуальной машине см. в статье Run PowerShell scripts in your Windows VM with run command.
Расширение настраиваемых скриптов
Можно использовать функцию расширения пользовательских сценариев для выполнения пользовательского сценария на целевой виртуальной машине. Для этого должны быть выполнены следующие условия.
Виртуальная машина имеет подключение к сети.
Azure агент виртуальной машины установлен и работает должным образом на виртуальной машине.
Расширение не было установлено на виртуальной машине.
Расширение внедряет скрипт только при первом использовании. Если вы используете эту функцию позже, расширение распознает, что он уже использовался и не отправляет новый скрипт.
Отправьте скрипт в учетную запись хранения и создайте собственный контейнер. Затем запустите следующий сценарий в Azure PowerShell на компьютере с подключением к виртуальной машине.
Для виртуальных машин Azure Resource Manager
#Set up the basic variables.
$subscriptionID = "<<SUBSCRIPTION ID>>"
$storageAccount = "<<STORAGE ACCOUNT>>"
$storageRG = "<<RESOURCE GROUP OF THE STORAGE ACCOUNT>>"
$localScript = "<<FULL PATH OF THE PS1 FILE TO EXECUTE ON THE VM>>"
$blobName = "file.ps1" #Name you want for the blob in the storage.
$vmName = "<<VM NAME>>"
$vmResourceGroup = "<<RESOURCE GROUP>>"
$vmLocation = "<<DATACENTER>>"
#Set up the Azure PowerShell module, and ensure the access to the subscription.
Login-AzAccount #Ensure login with the account associated with the subscription ID.
Get-AzSubscription -SubscriptionId $subscriptionID | Select-AzSubscription
#Set up the access to the storage account, and upload the script.
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageRG -Name $storageAccount).Value[0]
$context = New-AzureStorageContext -StorageAccountName $storageAccount -StorageAccountKey $storageKey
$container = "cse" + (Get-Date -Format yyyyMMddhhmmss)
New-AzureStorageContainer -Name $container -Permission Off -Context $context
Set-AzureStorageBlobContent -File $localScript -Container $container -Blob $blobName -Context $context
#Push the script into the VM.
Set-AzVMCustomScriptExtension -Name "CustomScriptExtension" -ResourceGroupName $vmResourceGroup -VMName $vmName -Location $vmLocation -StorageAccountName $storageAccount -StorageAccountKey $storagekey -ContainerName $container -FileName $blobName -Run $blobName
Удаленный PowerShell
Примечание.
Необходимо открыть TCP-порт 5986 (HTTPS), чтобы можно было использовать эту возможность.
Для виртуальных машин Azure Resource Manager необходимо открыть порт 5986 в группе безопасности сети (NSG). Дополнительные сведения см. в статье о группах безопасности.
Для виртуальных машин RDFE необходима конечная точка с частным портом (5986) и общедоступным портом. Затем необходимо также открыть этот общедоступный порт в NSG.
Настройка клиентского компьютера
Чтобы использовать PowerShell для удаленного подключения к виртуальной машине, необходимо сначала настроить клиентский компьютер, чтобы разрешить такое подключение. Для этого добавьте виртуальную машину в список доверенных узлов PowerShell, выполнив приведенную ниже команду соответствующим образом.
Чтобы добавить одну виртуальную машину в список доверенных узлов:
Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName>
Чтобы добавить несколько виртуальных машин в список доверенных узлов:
Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName1>,<ComputerName2>
Чтобы добавить все компьютеры в список доверенных хостов:
Set-Item wsman:\localhost\Client\TrustedHosts -value *
Включение RemotePS на виртуальной машине
Для виртуальных машин, созданных с помощью классической модели развертывания, используйте расширение пользовательского скрипта для выполнения следующего сценария:
Enable-PSRemoting -Force
New-NetFirewallRule -Name "Allow WinRM HTTPS" -DisplayName "WinRM HTTPS" -Enabled True -Profile Any -Action Allow -Direction Inbound -LocalPort 5986 -Protocol TCP
$thumbprint = (New-SelfSignedCertificate -DnsName $env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My).Thumbprint
$command = "winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=""$env:computername""; CertificateThumbprint=""$thumbprint""}"
cmd.exe /C $command
Для виртуальных машин Azure Resource Manager используйте команды выполнения скриптов с портала для запуска скрипта EnableRemotePS.
Подключение к виртуальной машине
Выполните следующую команду на основе расположения клиентского компьютера:
Вне виртуальной сети или развертывания
Для виртуальной машины, созданной с помощью классической модели развертывания, выполните следующую команду:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<CLOUDSERVICENAME.cloudapp.net>>" -port "<<PUBLIC PORT NUMBER>>" -Credential (Get-Credential) -useSSL -SessionOption $SkipДля виртуальной машины Azure Resource Manager сначала добавьте DNS-имя в общедоступный IP-адрес. Для подробных инструкций см. раздел Создание полностью квалифицированного доменного имени в портале Azure для виртуальной машины Windows. Затем выполните следующую команду:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<DNSname.DataCenter.cloudapp.azure.com>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
В виртуальной сети или развертывании выполните следующую команду:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<HOSTNAME>>" -port 5986 -Credential (Get-Credential) -useSSL -SessionOption $Skip
Примечание.
Если установить флаг SkipCaCheck, то можно обойти обязательный импорт сертификата на виртуальную машину при запуске сеанса.
Можно также использовать командлет Invoke-Command для удаленного запуска скрипта на виртуальной машине.
Invoke-Command -ComputerName "<<COMPUTERNAME>" -ScriptBlock {"<<SCRIPT BLOCK>>"}
Удаленный реестр
Примечание.
TCP-порты 135 и 445 должны быть открыты для использования этой функции.
Для виртуальных машин Azure Resource Manager необходимо открыть порт 5986 в NSG (группе безопасности сети). Дополнительные сведения см. в статье о группах безопасности.
Для виртуальных машин RDFE необходима конечная точка с частным портом (5986) и общедоступным портом. Кроме того, необходимо открыть этот публичный порт в НСГ.
На другой виртуальной машине в той же виртуальной сети откройте редактор реестра (regedit.exe).
Выберите Файл>Подключить сетевой реестр.
Найдите целевую виртуальную машину по имени узла или динамическому IP-адресу (предпочтительно), введя его в поле "Введите имя объекта" для выбора.
Введите учетные данные для целевой виртуальной машины.
Внесите в реестр необходимые изменения.
Консоль удаленных служб
Примечание.
TCP-порты 135 и 445 должны быть открыты для использования этой функции.
Для виртуальных машин Azure Resource Manager необходимо открыть порт 5986 в группе безопасности сети. Дополнительные сведения см. в статье о группах безопасности.
Для виртуальных машин RDFE необходима конечная точка с частным портом (5986) и общедоступным портом. Кроме того, необходимо открыть этот общедоступный порт в сетевой группе безопасности (NSG).
На другой виртуальной машине в той же виртуальной сети откройте экземпляр Services.msc.
Щелкните правой кнопкой мыши Службы (локальные).
Выберите Connect to another computer (Подключение к другому компьютеру).
Введите динамический IP-адрес целевой виртуальной машины.
Внесите необходимые изменения в службы.
Следующие шаги
- Дополнительные сведения о командлете Enter-PSSession см. раздел Enter-PSSession.
- Дополнительные сведения о расширении пользовательского скрипта для Windows с помощью классической модели развертывания см. в разделе Custom Script Extension for Windows.
- PsExec является частью набора PSTools.
- Дополнительные сведения о PSTools Suite см. в разделе PSTools.