Jean-Sébastien DUCHENE Blog's

Actualité, Tips, Articles sur l'ensemble des Technologies Microsoft (Microsoft Intune, ConfigMgr, Microsoft Defender, Microsoft Purview, Microsoft Azure, Windows...)

 

Aujourd’hui, je travaille sur l’élaboration d’un article sur la technologie Virtual Desktop Infrastructure (VDI) de Microsoft. J’essaye d’aborder les différentes notions au travers de cas concrets.  La technologie VDI est souvent mise en avant comme une méthode permettant la résolution des problèmes de compatibilités applicatives résultant de la migration vers un nouveau système d’exploitation. Une entreprise souhaitant par exemple migrer vers Windows 7 et disposant d’une application métier non compatible sur la nouvelle mouture de Microsoft, peut utiliser cette technologie pour accélérer la migration.  Ainsi, l’entreprise peut rendre disponible l’application sur des machines virtuelles Windows XP au travers de la technologie VDI et migrer l’ensemble des postes de travail sur Windows 7. Dans le détail, Microsoft met en avant sa technologie VDI pour être utilisé avec Windows 7. Le prochain Service Pack du nouveau système d’exploitation apporte d’ailleurs des améliorations dédiées aux VDI. Alors quand on cherche des informations sur la mise en place de Microsoft VDI avec Windows XP, on ne trouve pas grand-chose. On suit bêtement la documentation dédiée à VDI et Windows 7 et on se heurte à des problèmes. En effet l’une des étapes importantes consiste à préparer les machines virtuelles en activant le bureau à distance, en ajoutant les groupes utilisateurs autorisés à se connecter ou en ajoutant les permissions sur le protocole RDP pour le serveur Remote Desktop Virtualization Host. Vous devez ajouter les permissions WINSTATION_QUERY, WINSTATION_LOGOFF, et WINSTATION_DISCONNECT sur chaque machine virtuelle.

Pour cela, on vous propose d’utiliser les 4 commandes vmic suivantes :

wmic /node:localhost RDPERMISSIONS where TerminalName="RDP-Tcp" CALL AddAccount "contoso\rdvh-srv$",1

wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='contoso\\rdvh-srv$'" CALL ModifyPermissions 0,1

wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='contoso\\rdvh-srv$'" CALL ModifyPermissions 2,1

wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='contoso\\rdvh-srv$'" CALL ModifyPermissions 9,1

 

Lorsqu’on tente d’utiliser ces commandes sur Windows XP, wmic s’installe et on retrouve des erreurs RDPPERMISSIONS – Alias not found et RDACCOUNT – Alias not found :

 

 

 

En cherchant une solution, je suis tombé sur un script vbs qui fonctionne assez bien et effectue la même chose que ces lignes de commande :

set objWMI = GetObject("winmgmts:\\.\root\cimv2")

set colItems = objWMI.ExecQuery("Select * from Win32_TSPermissionsSetting")

for each objItem in colItems

   intRC = objItem.AddAccount("%DOMAIN%\%ACCOUNT%", 1)

   if intRC then

      WScript.Echo "Error adding " & strAccount & " to " & _

                   objItem.TerminalName

   else

      WScript.Echo "Successfully added " & strAccount & " to " & _

                   objItem.TerminalName

   end if

next

 

set objWMI = GetObject("winmgmts:\\.\root\cimv2")

set colItems = objWMI.ExecQuery ("Select * from Win32_TSAccount Where AccountName='%DOMAIN%\\%ACCOUNT%'")

for each objItem in colItems

    intRC = objItem.ModifyPermissions(0,True)

    intRC = objItem.ModifyPermissions(2,True)

    intRC = objItem.ModifyPermissions(9,True)

    if intRC then

       WScript.Echo "Error setting permissions for " & strAccount

    else

       WScript.Echo "Set permissions for " & strAccount

    end if

next

 

Il suffit ainsi de remplacer %DOMAIN% par votre nom de domaine et %ACCOUNT% par le nom de la machine qui héberge le service Remote Desktop Virtualization Host.

 

Source du script : http://systemcenterideas.com/2009/09/configuring-windows-xp-in-microsoft-vdi/

 

Facebook Like