Разрешения, необходимые для удаленного использования Move-VM в Hyper-v 2016 - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь выполнить команду PowerShell "move-vm" удаленно, но я получаю ошибки прав доступа, которые, похоже, не могут пройти мимо.

Моя команда move-vm выглядит так:

move-vm -ComputerName SorceHost -Name $vm.name -DestinationHost $DestHost -IncludeStorage -DestinationStoragePath d:\vms -DestinationCredential $cred -Credential $cred

и я определяю учетные данные следующим образом

$username = ".\PSAPIUser"
$password = Get-Content 'C:\key\PSAPIAUTH.txt' | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
     -argumentlist $username, $password

И источник, и адресат находятся в одном домене AD, и я специально создал эту учетную запись администратора домена. Я добавил группу администраторов домена в локальные группы «Администраторы Hyper-V», «Администраторы» на хостах источника и назначения. Когда я выдаю команду, я получаю:

move-vm : You do not have the required permission to complete this task. Contact the administrator of the authorization policy for the computer 'SourceHost'.

Существуют различные статьи о том, как это сделать в 2012 году, однако, насколько я понимаю, этот процесс значительно изменился в 2016 году из-за износа того, что называется диспетчером авторизации.

Кто-нибудь знает, как настроить разрешения, чтобы разрешить удаленное управление Hyper-V с помощью PowerShell, особенно в 2016 году?

Заранее спасибо.

Edit:

$cred = Get-Credential

$cred

UserName                                     Password
--------                                     --------
PSAPIuser@domain.net System.Security.SecureString

move-vm : You do not have the required permission to complete this task. Contact the administrator of the authorization policy for the computer

1 Ответ

0 голосов
/ 04 сентября 2018

Управление Hyper-V удаленно использует то, что называется ограниченным делегированием. Представьте себе сценарий.

Вы находитесь на хосте Man1 и запускаете команду Hyp-001 для перемещения виртуальной машины в Hyp-002. Таким образом, у вас есть Man1, выдающий команды на Hyp-001, и это нормально, поскольку он может использовать ваши учетные данные, но когда Hyp-001 передает команды на Hyp-002, у него нет учетных данных для передачи, поэтому вы получаете ошибку

move-vm : Virtual machine migration operation failed at migration source.
Failed to establish a connection with host 'ng2-vps-011.hyperslice.net': No credentials are available in the security package

Чтобы обойти это, вам нужно предоставить определенные разрешения, которые позволят хостам запускать определенные службы друг на друге в рамках делегирования AD.

Из PowerShell это будет выглядеть так:

Set-ADObject -Identity $HostDeetsArra.Disname -ADD @{"msDS-AllowedToDelegateTo"="$service1/$Disname","$Service1/$HostName"} 
#$disnam = distignushed name, $Service1 is the service 'cifs' $hostanme is the FQDN

В 2016 году вам также нужно это:

Set-ADAccountControl -Identity $HostDeetsArra.Disname -TrustedToAuthForDelegation $true

Мой источник этой информации ниже

https://www.altaro.com/hyper-v/free-powershell-script-configure-constrained-delegation-hyper-v/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...