Sommaire
Introduction
Dans ce tutoriel, nous allons voir comment administrer à distance un serveur Windows en PowerShell (Powershell remoting) avec PSSession.
PSSession est le préfixe de plusieurs commande Powershell qui permet la connexion et la gestion de celle-ci.
L’ensemble des commandes de ce tutoriel sont à faire avec une invite de commande PowerShell
Prérequis
Sur le serveur où l’on souhaite se connecter, la gestion à distances doit être activée.

Par défaut, la gestion à distance est activée par défaut depuis Windows 2012.
Se connecter à un serveur
Avec l’utilisateur en cours :
Enter-PSSession -ComputerName LAB-FIC
En spécifiant l’utilisateur :
Enter-PSSession -ComputerName LAB-FIC -Credential LABAdministrateur
Une fenêtre d’identification s’ouvre où il faut indiquer le mot de passe du compte passé en paramètre.
Une fois connecté dans la console s’affiche en premier le nom du serveur entre crochets.
[LAB-FIC]: PS C:Usersadministrateur.LABDocuments>
Maintenant l’ensemble des commandes DOS et PowerShell seront exécutées sur le serveur distant.
Exemple : afficher les rôles et fonctionnalités installés.
[LAB-FIC]: PS C:Usersadministrateur.LABDocuments> Get-WindowsFeature | Where Installed
Display Name Name Install State
------------ ---- -------------
[X] Services de fichiers et de stockage FileAndStorage-Services Installed
[X] Services de fichiers et iSCSI File-Services Installed
[X] Serveur de fichiers FS-FileServer Installed
[X] Services de stockage Storage-Services Installed
[X] Fonctionnalités de .NET Framework 4.6 NET-Framework-45-Fea... Installed
[X] .NET Framework 4.6 NET-Framework-45-Core Installed
[X] Services WCF NET-WCF-Services45 Installed
[X] Partage de port TCP NET-WCF-TCP-PortShar... Installed
[X] Fonctionnalités de Windows Defender Windows-Defender-Fea... Installed
[X] Windows Defender Windows-Defender Installed
[X] Interface utilisateur graphique de Windows D... Windows-Defender-Gui Installed
[X] Prise en charge WoW64 WoW64-Support Installed
[X] Support de partage de fichiers SMB 1.0/CIFS FS-SMB1 Installed
[X] Windows PowerShell PowerShellRoot Installed
[X] Windows PowerShell 5.1 PowerShell Installed
[X] Windows PowerShell ISE PowerShell-ISE InstalledDéconnexion
Pour se déconnecter du serveur, entrer la commande suivante :
Exit-PSSession
Listes des commandes *-PSSession
Depuis une invite de commande entrer :
Get-Command -Noun PSSession CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Connect-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Disconnect-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Enter-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Exit-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Export-PSSession 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Get-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Import-PSSession 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet New-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Receive-PSSession 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Remove-PSSession 3.0.0.0 Microsoft.PowerShell.Core
Afficher l’aide :
Get-Help *-PSSession ame Category Module Synopsis ---- -------- ------ -------- Connect-PSSession Cmdlet Microsoft.PowerShell.Core Reconnects to disconnected sessions. Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Disconnects from a session. Enter-PSSession Cmdlet Microsoft.PowerShell.Core Starts an interactive session with a remote co... Exit-PSSession Cmdlet Microsoft.PowerShell.Core Ends an interactive session with a remote comp... Get-PSSession Cmdlet Microsoft.PowerShell.Core Gets the Windows PowerShell sessions on local ... New-PSSession Cmdlet Microsoft.PowerShell.Core Creates a persistent connection to a local or ... Receive-PSSession Cmdlet Microsoft.PowerShell.Core Gets results of commands in disconnected sessi... Remove-PSSession Cmdlet Microsoft.PowerShell.Core Closes one or more Windows PowerShell sessions... Export-PSSession Cmdlet Microsoft.PowerShell.U... Imports commands from another session and save... Import-PSSession Cmdlet Microsoft.PowerShell.U... Imports commands from another session into the...
Dépannage
Vérifier le service WinRM
Get-Service WinRM Status Name DisplayName ------ ---- ----------- Running WinRM Gestion à distance de Windows (Gest...
Activer la gestion à distance en PowerShell
Enable-PSRemoting
Afficher la configuration WinRM
winrm get winrm/config
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 60000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts = *
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = false
Auth
Basic = false
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 2147483647
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 2147483647
MaxMemoryPerShellMB = 1024
MaxShellsPerUser = 2147483647Autoriser l’administration depuis n’importe quel hôte distant
Set-Item WSMan:localhostClientTrustedHosts *
Cette commande est utile pour les hôtes hors domaine, car même si la gestion à distance est activée, aucun hôte n’est autorisé à se connecter.
