Hyper-V遠端管理與指派使用者權限

Hyper-V遠端管理與指派使用者權限

Hyper-V的遠端管理與指派權限從Windows Server 2008的版本就已經有提供了

就算到Windows Server 2012 Beta的版本還是沒有改變

到了Windows Server 2012 Beta還是沒辦法指定到某些User或Group只能看到被指派的VM

要是多了一個指派VM的功能,我想應該對部分使用者在權限控管上會有不小的幫助

 

Hyper-V的使用者權限管理其實是在%system drive%\Program Data\Microsoft\Windows\Hyper-V\InitialStore.xml這個XML裡

2012-05-13_170510

要指派使用者權限,需要用到【授權管理員】這個MMC工具(azman.msc),可以從執行那裏輸入【azman.msc】

2012-05-13_170440

然後透過【授權管理員】去開啟%system drive%\Program Data\Microsoft\Windows\Hyper-V\InitialStore.xml

2012-05-13_170720

2012-05-13_170822

接著就可以看到如下圖的畫面(下圖是Windows Server 2012 Beta預設權限的狀況,比之前版本多了一個Hyper-V Admin)

2012-05-13_170943

至於指派使用者權限能做到甚麼樣的程度,首先先來看一下預設的工作清單,總共34種

工作項目

Allow Input to Virtual Machine

Modify Switch Port Settings

Allow Output from Virtual Machine

Modify Switch Settings

Allow Virtual Machine Snapshot

Pause and Restart Virtual Machine

Bind External Ethernet Port

Read Service Configuration

Change Virtual Machine Authorization Scope

Reconfigure Service

Change VLAN Configuration on Port

Reconfigure Virtual Machine

Connect Virtual Switch Port

Start Virtual Machine

Create Internal Ethernet Port

Stop Virtual Machine

Create Virtual Machine

Unbind External Ethernet Port

Create Virtual Switch

View External Ethernet Ports

Create Virtual Switch Port

View Internal Ethernet Ports

Delete Internal Ethernet Port

View LAN Endpoints

Delete Virtual Machine

View Switch Ports

Delete Virtual Switch

View Switches

Delete Virtual Switch Port

View Virtual Machine Configuration

Disconnect Virtual Switch Port

View Virtual Switch Management Service

Modify Internal Ethernet Port

View VLAN Settings

紅字的部分,是在指派權限時,一定要指派進去的兩個權限

Read Service Configuration指派後才能讀取VMMS服務裡面的設定

Allow Output from Virtual Machine指派後才能將VM讀出來

所以這兩項是基本要指派的,缺一不可

 

接著我假設一個需求,假設我的環境並不允許遠端桌面,也不允許User對我的VM做任何事情

只允許他透過VMconnect(Hyper-V的連線管理員)去操作

我們可以指派這個角色只有Read Service Configuration、Allow Output from Virtual Machine、Allow Input to Virtual Machine(對VM輸入)

這樣就可以取代掉遠端桌面的事情(但是沒辦法透過遠端掛載USB裝置到VM中)

 

接著建立一個新角色,並指定可使用的工作項目

2012-05-14_000159

輸入一個名稱,然後按下新增

2012-05-14_000350

選Operations,去勾選要指派給這個角色的工作項目(下面兩張圖是以假設環境去勾選)

2012-05-14_000509

2012-05-14_003839

接著是建立角色指派

2012-05-14_004025

勾選剛剛建立的角色

2012-05-14_004050

接著就是指派這個角色裡面,它的使用者或者是群組

2012-05-14_004219

這是我在AD裡面建立的User,只有Domain Users的權限,在這部機器上,它只存在Users群組中

2012-05-14_004348

這樣在權限指派上就已經算完成了

2012-05-14_004535

在這部主機上,使用User1這個帳號是沒辦法對VM做其他事情(如Power off、Start VM),會出現沒有權限

但是你還是能透過VMconnect去對VM做些維護上的工作(當然你要從VM裡關機或重開還是可以)

2012-05-14_004949

※如果是Server Core版本,請透過其他台的授權管理員,去進行指派權限的動作

連線時的XML路徑是\\<remote_computer>\c$\ProgramData\Microsoft\Windows\Hyper-V\initalstore.xml

※以上這些步驟都不需要重新啟動Server,但是以下的會需要

 

做到這邊算是完成了權限指派,但是還沒辦法透過遠端來控制(還無法透過其他台的Hyper-V管理員控制)

接下來要啟用遠端管理,會需要對Windows防火牆針對WMI進行開Port(如果防火牆有開的話)

可以輸入【netsh advfirewall firewall set rule group=“Windows Management Instrumentation (WMI)” new enable=yes】,就可以開啟WMI的Port

 

然後要將可以遠端控制的User加入到本機Distributed COM Users群組裡面

如果是GUI介面,則是透過【電腦管理】→【本機群組與使用者】→【群組】,在裡面可以看到

(找不到的話,可以用compmgmt.msc把電腦管理叫出來)

2012-05-14_010704

Server Core版本則是使用Command,【net localgroup “Distributed COM Users” /add <domain_name>\<user_name>】

 

接著一樣在電腦管理的畫面中,去設定【WMI控制】,選擇【內容】

(接下來的步驟,Server Core需要以其他台的電腦管理GUI介面連過去設定,設定方式皆相同)

2012-05-14_010936

接著切換到【安全性】的頁籤,需要修改【CIMV2】跟【Virtualzation】,兩個設定方式都一樣,我以【CIMV2】示範

2012-05-14_011442

接著新增我們要遠端控制的群組或使用者

2012-05-14_011721

我這邊一樣以User1舉例

2012-05-14_011743

建完之後,Enable Account(啟用帳號)會是允許的,可以不勾選

我們要手動勾選Remote Enable(啟用遠端),然後按下Advanced

2012-05-14_011801

接著點我們剛剛新增的使用者,按下編輯

2012-05-14_011813

選擇This namespace and subnamespaces(套用到這個命名空間和子命名空間)

並且勾選Only apply these permissions to object and /or containers within this container(僅套用這些權限到此容器中的物件及容器)

2012-05-14_011838

接著再對【Virtualzation】做一樣的設定,接著重新啟動伺服器,就完成了遠端設定

如果Client或者Server任何一端有非網域的情況下,在Client會需要用到CmdKey這個指令

透過Cmdkey去指定要連到Hyper-V Host時所用的帳號密碼。