Avec l’arrivée de Windows Server 2016 et de Windows 10, Microsoft a introduit une nouvelle fonctionnalité séduisante, très intéressante pour quiconque souhaite effectuer des tâches à distance avec des machines virtuelles. PowerShell Direct permet aux administrateurs informatiques d’exécuter des sessions PowerShell au sein d’une VM Hyper-V en mode direct, sans nécessiter de configuration ni d’autorisations réseau. Cela signifie qu’un script peut être appelé même si le réseau n’est pas disponible ou si les hôtes sont séparés par serveur/client ou s’il n’existe aucun moyen d’ouvrir une session PowerShell distante en raison des stratégies de sécurité. Pour cette raison, PowerShell Direct est une nouveauté importante à connaître.
Configuration requise
Pour utiliser PowerShell Direct, vous devez répondre aux exigences suivantes :
- La machine virtuelle doit exécuter Windows 10 ou Windows Server 2016
- La machine virtuelle doit fonctionner sur le même hôte que celui que vous souhaitez utiliser pour ouvrir la session
- La machine virtuelle doit avoir au moins un profil utilisateur valide configuré
- La session doit être ouverte en tant qu’administrateur local de l’hôte Hyper-V
- Vous devez entrer des informations d’identification valides pour la machine virtuelle
Créer une session à distance
Pour ouvrir une nouvelle session à distance, utilisez la commande
Enter-PSSession -VMName "yourvm"
comme illustré ci-dessous
Figure 1 – Nouvelle session Powershell
Une fois dans la session, vous pouvez travailler sur la machine virtuelle et exécuter les applets de commande PowerShell de la même manière que localement, ce qui signifie que vous pouvez utiliser les modules Powershell installés. Comme le montre la figure 2, nous pouvons utiliser les commandes docker sans problème, bien que le rôle ne soit pas présent dans l’hôte Hyper-V.
Figure 2 – Commandes à distance
Remarque : N’oubliez pas que toutes les connexions basées sur Enter-PSSession sont temporaires, ce qui signifie que si vous fermez la fenêtre, vous devrez ressaisir les informations d’identification.
Exécuter des commandes complexes
La connexion classique peut être utilisée pour effectuer des tâches simples. Si vous devez exécuter des scripts avancés, vous pouvez utiliser la commande Invoke. Cette applet de commande est idéale pour exécuter un script complexe stocké dans un référentiel (localement ou à distance). Vous pouvez utiliser deux types de modes :
- Commande :
Invoke-Command -VMName nomevm -ScriptBlock { Get-Service }
- Script :
Invoke-Command -VMName nomevm -FilePath “C:\hyperv-folder\script.ps1”
Figure 3 – Commande Invoke
Copie des fichiers
Non seulement des commandes ou des scripts, mais aussi un moyen de transférer des fichiers de l’hôte vers la machine virtuelle. Cela peut être réalisé avec la cmdlet “Copy-Item”, mais vous devez ouvrir une session persistante pour éviter les interruptions si vous fermez la fenêtre. l’objectif est d’utiliser la même session à chaque fois sans ressaisir les informations d’identification. Ceci est un exemple :
$VM = New-PSSession -VMName nomevm -Credential (Get-Credential) Copy-Item -ToSession $VM -Path C:\hyperv-folder\app.exe -Destination C:\guest-vm\
Figure 4 –Copie des fichiers
Les performances de cette action sont très intéressantes car, grâce à VMBus, nous pouvons ignorer tous les pilotes et couches pour permettre la communication. Le résultat est un processus de copie à grande vitesse, mais n’oubliez pas de prendre en compte le type de fichier que vous souhaitez transférer et les performances de la VM (un fichier .vhdx situé sur un SSD est beaucoup plus rapide qu’un fichier situé sur un disque mécanique).
Conclusion
PowerShell Direct permet aux administrateurs S.I. d’exécuter et d’automatiser des tâches de gestion sans avoir à interagir avec le système d’exploitation hébergé et son interface graphique.
(Anglais, Italien, Allemand, Espagnol, Portugais - du Brésil)
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
**********************************************************************************
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
*****************************************