Подключение к виртуальной машине powershell

Как подключиться к виртуальной машине Azure под управлением Windows и войти на нее

область применения: ✔️ Windows вм ✔️ гибкие масштабируемые наборы

Чтобы запустить сеанс удаленного рабочего стола, на портале Azure нажмите кнопку Подключиться на рабочем столе Windows. Сначала подключитесь к виртуальной машине, а затем войдите в систему.

Чтобы подключиться к виртуальной машине Windows с компьютера Mac, необходимо установить клиент RDP для Mac, например Удаленный рабочий стол (Майкрософт).

Подключитесь к виртуальной машине

Перейдите на портал Azure, чтобы подключиться к виртуальной машине. Найдите и щелкните Виртуальные машины.

Затем выберите виртуальную машину из списка.

В начале страницы виртуальной машины выберите Подключить.

На странице Подключение к виртуальной машине выберите RDP, а затем соответствующие IP-адрес и Номер порта. В большинстве случаев следует использовать IP-адрес и порт по умолчанию. Щелкните Скачать RDP-файл. Если на виртуальной машине существует набор политики JIT, сначала нужно нажать кнопку ​​Запросить доступ, прежде чем вы сможете загрузить RDP-файл. Дополнительные сведения о политике JIT см. в статье Управление доступом к виртуальным машинам с помощью JIT-доступа.

В окне Безопасность Windows выберите Варианты выбора и нажмите Использовать другую учетную запись. На виртуальной машине введите учетные данные учетной записи и нажмите кнопку ОК.

Локальная учетная запись: как правило, это имя пользователя и пароль, указанные при создании виртуальной машины. В этом случае домен — это имя виртуальной машины, которое указывается в качестве имени пользователяvmname.

Виртуальная машина, присоединенная к домену. Если виртуальная машина принадлежит домену, введите имя пользователя в формате домен имя_пользователя. Учетная запись также должна входить в группу «Администраторы» или ей должны быть назначены права удаленного доступа к виртуальной машине.

Контроллер домена: если виртуальная машина является контроллером домена, введите имя пользователя и пароль для учетной записи администратора домена для этого домена.

Щелкните Да для проверки удостоверения виртуальной машины и завершения входа в систему.

Если кнопка Подключиться на портале неактивна и вы не используете канал Express Route или VPN-подключение типа «сеть — сеть» для обмена данными с Azure, вам сначала нужно будет создать общедоступный IP-адрес и назначить его виртуальной машине. Только после этого вы сможете использовать протокол RDP. Дополнительные сведения см. в статье Типы IP-адресов и методы распределения в Azure.

Подключение к виртуальной машине с помощью PowerShell

если вы используете PowerShell и установили модуль Azure PowerShell, можно также подключиться с помощью Get-AzRemoteDesktopFile командлета, как показано ниже.

Этот пример немедленно устанавливает RDP-подключение с отображением аналогичных инструкций, как показано выше.

Вы также можете сохранить RDP-файл для дальнейшего использования.

Источник

Автоматизация виртуальных машин и управление ими с помощью PowerShell

Создание и завершение интерактивного сеанса PowerShell

Для выполнения команд PowerShell на виртуальной машине проще всего запустить интерактивный сеанс.

При запуске сеанса вводимые команды выполняются на виртуальной машине, как если бы вы вводили их непосредственно в сеансе PowerShell на самой виртуальной машине.

Запуск интерактивного сеанса:

На узле Hyper-V откройте PowerShell от имени администратора.

Выполните одну из указанных ниже команд, чтобы создать интерактивный сеанс, используя имя или GUID виртуальной машины:

Укажите учетные данные для виртуальной машины при отображении соответствующего запроса.

Для вашей командной строки PowerShell должен отображаться префикс VMName, как показано ниже:

После завершения работы выполните следующую команду, чтобы закрыть сеанс:

Примечание. Если сеанс не подключается, см. раздел Диагностика для определения возможных причин.

Дополнительные сведения об этих командлетах см. в разделах Enter-PSSession и Exit-PSSession.

Запуск сценария или команды с помощью командлета Invoke-Command

PowerShell Direct с Invoke-Command идеально подходит для ситуаций, когда нужно выполнить одну команду или один сценарий на виртуальной машине, после чего можно прекратить взаимодействие с виртуальной машиной.

Запуск одной команды:

На узле Hyper-V откройте PowerShell от имени администратора.

Выполните одну из указанных ниже команд, чтобы создать сеанс, используя имя или GUID виртуальной машины:

Укажите учетные данные для виртуальной машины при отображении соответствующего запроса.

Команда выполняется на виртуальной машине. При наличии выходных данных они выводятся на вашу консоль. Подключение будет закрыто автоматически сразу после запуска команды.

Запуск скрипта:

На узле Hyper-V откройте PowerShell от имени администратора.

Выполните одну из указанных ниже команд, чтобы создать сеанс, используя имя или GUID виртуальной машины:

Укажите учетные данные для виртуальной машины при отображении соответствующего запроса.

Сценарий выполняется на виртуальной машине. Подключение будет закрыто автоматически сразу после запуска команды.

Дополнительные сведения об этом командлете см. в статье Invoke-Command.

Копирование файлов с помощью New-PSSession и Copy-Item

Примечание. В сборках Windows 14280 и более поздних версий PowerShell Direct поддерживает только постоянные сеансы.

Постоянные сеансы PowerShell чрезвычайно полезны при написании сценариев, координирующих действия для одного или нескольких удаленных компьютеров. После создания постоянные сеансы выполняются в фоновом режиме, пока вы не решите удалить их. Это означает, что можно снова и снова ссылаться на один и тот же сеанс с помощью Invoke-Command или Enter-PSSession без передачи учетных данных.

По той же причине сеансы сохраняют состояние. Так как постоянные сеансы сохраняются, все созданные или переданные в них переменные сохраняются между вызовами. Существует несколько средств для работы с постоянными сеансами. В этом примере мы будем использовать New-PSSession и Copy-Item для перемещения данных с узла в виртуальную машину и из виртуальной машины на узел.

Создание сеанса с последующим копированием файлов:

На узле Hyper-V откройте PowerShell от имени администратора.

Укажите учетные данные для виртуальной машины при отображении соответствующего запроса.

Чтобы скопировать C:\host_path\data.txt на виртуальную машину с хост-компьютера, выполните следующую команду:

Чтобы скопировать C:\guest_path\data.txt на узел с виртуальной машины, выполните следующую команду:

Устранение неполадок

В PowerShell Direct выводится небольшой набор сообщений о распространенных ошибках. Ниже приведены наиболее распространенные ошибки, возможные причины и средства диагностики.

Возможные причины:
Скорее всего, проблема состоит в том, что PowerShell Direct не поддерживается операционной системой сервера виртуальных машин.

Проверить сборку Windows можно с помощью следующей команды:

Если применяется поддерживаемая сборка, возможно, ваша версия PowerShell не использует PowerShell Direct. Для PowerShell Direct и JEA требуется основной номер версии 5 или выше.

Проверить версию PowerShell можно с помощью следующей команды:

Ошибка: «Возможно, удаленный сеанс был завершен»

Примечание.
Для Enter-PSSession в сборках узла с 10240 по 12400 все описанные ниже ошибки регистрируются как «Возможно, удаленный сеанс был завершен».

Сообщение об ошибке:

Возможные причины:

Можно использовать командлет Get-VM, чтобы узнать, какие виртуальные машины выполняются на узле.

Сообщение об ошибке:

Возможные причины:

Чтобы обойти эту проблему с учетными данными, войдите на виртуальную машину с помощью VMConnect, откройте PowerShell и перезапустите службу vmicvmsession, используя следующую команду PowerShell:

Ошибка: набор параметров не может быть разрешен

Сообщение об ошибке:

Возможные причины:

-RunAsAdministrator не поддерживается при подключении к виртуальным машинам.

Ошибка. Недопустимые учетные данные.

Сообщение об ошибке:

Возможные причины:

Ошибка. Входной параметр VMName не разрешается ни в одну виртуальную машину.

Сообщение об ошибке:

Возможные причины:

С помощью командлета Get-VM можно проверить, имеется ли у используемых учетных данных роль администратора Hyper-V, а также просмотреть, какие виртуальные машины запущены локально и загружены.

Примеры и руководства пользователя

PowerShell Direct поддерживает JEA (Just Enough Administration). Чтобы оценить эту функцию, воспользуйтесь этим руководством пользователя.

См. примеры на веб-сайте GitHub.

С помощью PowerShell Direct можно запускать произвольный код PowerShell на виртуальной машине с Windows 10 или Windows Server 2016 с узла Hyper-V независимо от конфигурации сети и параметров удаленного управления.

Запустить PowerShell Direct можно несколькими способами.

Требования

Требования к операционной системе:

Если вы управляете виртуальными машинами более ранних версий, используйте средство «Подключение к виртуальной машине» (VMConnect) или настройте для этой машины виртуальную сеть.

Требования к конфигурации:

Источник

Управление виртуальными машинами Hyper-V с помощью PowerShell

Статья посвящена особенностям управления виртуальными машинами Hyper-V из консоли PowerShell. Мы рассмотрим создание виртуальных коммутаторов и виртуальных машин, изменение настроек ВМ и управление ими. Вы сможете использовать рассмотренные команды для ручного управления своими ВМ или в PowerShell скриптах для автоматизации различных задачей.

Установка роли Hyper-V в Windows Server и Windows 10

Для установки роли Hyper-V хост должен иметь процессор, поддерживающий виртуализацию со SLAT. В Windows Server для установки роли Hyper-V используется команда:

В десктопных редакциях (Windows 10 и 11) роль Hyper-V устанавливается так:

Для управления хостом Hyper-V на компьютере должен быть установлен модуль Hyper-V. Полный список команд в модуле (зависит от версии Windows) можно вывести так:

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

В Windows Server 2022 в модуле Hyper-V доступно 245 командлетов.

Вывести полный список настроек хоста Hyper-V можно с помощью команды:

Чтобы вывести только информацию о количестве доступных ядер и RAM:

Get-VMHost| select LogicalProcessorCount, MemoryCapacity

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Чтобы изменить настройки хоста Hyper-V используется командлет Set-VMHost. Следующая команда изменит пути по-умолчанию для хранения виртуальных дисков и конфигурационных файлов ВМ:

Создаем виртуальный коммутатор Hyper-V с помощью PowerShell

Прежде всего на сервере Hyper-V нужно создать виртуальный коммутатор. Виртуальные машины смогут получать доступ к сети только через виртуальный коммутатор.

Выведем список доступных физических адаптеров на хосте Hyper-V:

Создайте виртуальный внешний коммутатор:

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Создание и изменение настроек виртуальной машины Hyper-V с помощью PowerShell

Для создания новой виртуальной машины используется командлет New-VM. В этом примере мы создадим новую ВМ второго поколения с 1 ГБ RAM и vhdx диском размером 5 Гб.

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Рассмотрим команды, которые можно использовать для изменения настроек виртуальных машин.

Увеличить размер RAM для ВМ:

Get-VM –VMname spb-dmz1 | Set-VM –AutomaticStartAction Start

Чтобы подключить дополнительный виртуальный диск в ВМ, нужно сначала создать его:

А затем подключить к ВМ:

Используем PowerShell для управления виртуальными машинами Hyper-V

Вывести список виртуальных машин на хосте Hyper-V:

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Команда вернула список ВМ с несколькими базовыми характеристиками. Чтобы вывести все свойства ВМ, выполните:

Вывести только включенные ВМ:

Запустить виртуальную машину:

Запустить все выключенные виртуальные машины:

Выключить ВМ (корректное выключение через гостевую ОС):

Чтобы выключить ВМ по питанию используется ключ TurnOff:

Подключить ISO файл в виртуальное CD/DVD устройство:

Чтобы перенести все файлы ВМ на лету на другой диск, используйте команду:

Создать чекпоинт (снапшот) указанной ВМ:

Вывести список доступных чекпоинтов:

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Вернуть состояние ВМ из предыдущему чекпоинту:

Экспорт, импорт и клонирование ВМ описаны подробно в статье по ссылке:

Получить IP адреса гостевых ОС виртуальных машин:

Подключиться к консоли определенной виртуальной машины:

vmconnect.exe localhost spb-app01

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershell

Для подключения PowerShell сессией напрямую к гостевым ОС виртуальных машин через шину vmbus можно использовать PowerShell Direct (доступен для гостевых ОС Windows Server 2016, Windows 10 и новее). Можно использовать командлеты Invoke-Command (для запуска скриптов) и Enter-PSSession (для входа в интерактивную PowerShell сессию):

Для копирования файлов с хоста Hyper-V в виртуальную машину через PowerShell Direct используйте:

Вы можете использовать PowerShell для локального или удаленного управления виртуальными машинами на хостах Hyper-V (как на Windows Server в режимах Full GUI или Core, так и на Free Windows Hyper-V Server, или Windows 10) как отдельно, так и в дополнении к графическим средствам управления Hyper-V Manager и Windows Admin Center.

Источник

PowerShell Direct в Hyper-V 2016

Основные требования для использования Powershell Direct:

Ранее администратор мог выполнять команды на виртуальной машине в Hyper-V только по сети с помощью InvokeCommand или EnterPSSession. В качестве параметра для подключения к удаленной ВМ нужно указывать ее сетевое имя (-ComputerName).

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershellВ таком сценарии PS сессию нельзя было установить с ВМ, отключенной от виртуального коммутатора, находящейся в изолированной или защищенной файрволом системе. Все управление осуществляется только через графическую консоль Hyper-V.

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershellДля подключения к такой гостевой ВМ с помощью Powershell Direct используется не сетевое имя гостевой ОС, а имя или GUID ВМ в среде Hyper-V. При подключении через Powershell Direct также можно использовать Enter-PSSession для создания интерактивного сеанса Powershell, либо Invoke-Command для запуска одной команды или скрипта.

Подключение к виртуальной машине powershell. Смотреть фото Подключение к виртуальной машине powershell. Смотреть картинку Подключение к виртуальной машине powershell. Картинка про Подключение к виртуальной машине powershell. Фото Подключение к виртуальной машине powershellДля запуска одной команды или скрипта воспользуемся Invoke-Command:

Например, если вам нужно скопировать некий файл на изолированную ВМ через Powershell Direct, воспользуйтесь таким сценарием.

Скопируем файл на виртуальную машину:

Как вы видите, использовать Powershell Direct довольно просто и удобно. Как и большинство других нововведений в Windows Server 2016, Powershell Direct ориентирован в первую очередь на улучшение функционала системы с точки зрения сервисных / облачных провайдеров, предоставляющих сервис виртуальных машин.

Источник

Virtual Machine automation and management using PowerShell

You can use PowerShell Direct to run arbitrary PowerShell in a Windows 10 or Windows Server 2016 virtual machine from your Hyper-V host regardless of network configuration or remote management settings.

Here are some ways you can run PowerShell Direct:

Requirements

Operating system requirements:

If you’re managing older virtual machines, use Virtual Machine Connection (VMConnect) or configure a virtual network for the virtual machine.

Configuration requirements:

Create and exit an interactive PowerShell session

The easiest way to run PowerShell commands in a virtual machine is to start an interactive session.

When the session starts, the commands that you type run on the virtual machine, just as though you typed them directly into a PowerShell session on the virtual machine itself.

To start an interactive session:

On the Hyper-V host, open PowerShell as Administrator.

Run one of the following commands to create an interactive session using the virtual machine name or GUID:

Provide credentials for the virtual machine when prompted.

You should see the VMName as the prefix for your PowerShell prompt as shown:

Any command run will be running on your virtual machine. To test, you can run ipconfig or hostname to make sure that these commands are running in the virtual machine.

When you’re done, run the following command to close the session:

Note: If your session won’t connect, see the troubleshooting for potential causes.

To learn more about these cmdlets, see Enter-PSSession and Exit-PSSession.

Run a script or command with Invoke-Command

PowerShell Direct with Invoke-Command is perfect for situations where you need to run one command or one script on a virtual machine but do not need to continue interacting with the virtual machine beyond that point.

To run a single command:

On the Hyper-V host, open PowerShell as Administrator.

Run one of the following commands to create a session using the virtual machine name or GUID:

Provide credentials for the virtual machine when prompted.

The command will execute on the virtual machine, if there is output to the console, it’ll be printed to your console. The connection will be closed automatically as soon as the command runs.

To run a script:

On the Hyper-V host, open PowerShell as Administrator.

Run one of the following commands to create a session using the virtual machine name or GUID:

Provide credentials for the virtual machine when prompted.

The script will execute on the virtual machine. The connection will be closed automatically as soon as the command runs.

To learn more about this cmdlet, see Invoke-Command.

Copy files with New-PSSession and Copy-Item

Note: PowerShell Direct only supports persistent sessions in Windows builds 14280 and later

Persistent PowerShell sessions are incredibly useful when writing scripts that coordinate actions across one or more remote machines. Once created, persistent sessions exist in the background until you decide to delete them. This means you can reference the same session over and over again with Invoke-Command or Enter-PSSession without passing credentials.

By the same token, sessions hold state. Since persistent sessions persist, any variables created in a session or passed to a session will be preserved across multiple calls. There are a number of tools available for working with persistent sessions. For this example, we will use New-PSSession and Copy-Item to move data from the host to a virtual machine and from a virtual machine to the host.

To create a session then copy files:

On the Hyper-V host, open PowerShell as Administrator.

Provide credentials for the virtual machine when prompted.

To copy C:\host_path\data.txt to the virtual machine from the host machine, run:

To copy C:\guest_path\data.txt to the host from the virtual machine, run:

Troubleshooting

There are a small set of common error messages surfaced through PowerShell Direct. Here are the most common, some causes, and tools for diagnosing issues.

Potential causes:
The most likely issue is that PowerShell Direct isn’t supported by your host operating system.

You can check your Windows build by running the following command:

If you are running a supported build, it is also possible your version of PowerShell does not run PowerShell Direct. For PowerShell Direct and JEA, the major version must be 5 or later.

You can check your PowerShell version build by running the following command:

Error: A remote session might have ended

Note:
For Enter-PSSession between host builds 10240 and 12400, all errors below reported as «A remote session might have ended».

Error message:

Potential causes:

You can use the Get-VM cmdlet to check to see which VMs are running on the host.

Error message:

Potential causes:

To work around the credential issue, log into the virtual machine using VMConnect, open PowerShell, and restart the vmicvmsession service using the following PowerShell:

Error: Parameter set cannot be resolved

Error message:

Potential causes:

-RunAsAdministrator is not supported when connecting to virtual machines.

Error: The credential is invalid.

Error message:

Potential causes:

Error: The input VMName parameter does not resolve to any virtual machine.

Error message:

Potential causes:

You can use the Get-VM cmdlet to check that the credentials you’re using have the Hyper-V administrator role and to see which VMs are running locally on the host and booted.

Samples and User Guides

PowerShell Direct supports JEA (Just Enough Administration). Check out this user guide to try it.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *