我正在尝试远程运行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年发生了重大变化。
有人在如何配置权限以允许在2016年专门使用PowerShell进行远程Hyper-V管理方面有任何经验吗?
谢谢。
编辑:
$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
答案 0 :(得分:-1)
远程管理Hyper-V使用的是“约束委派”。想象一下场景。
您在主机Man1上,并且您正在向Hyp-001发出命令以将VM移至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/