Search This Blog

samedi 30 mars 2013

PowerShell Web Access



1-Présentation de Power Shell Web Access


PowerShell Web Access est une nouvelle fonctionnalité dans Windows server 2012, qui va vous permettre d’accéder à vos serveurs via une interface de commande PowerShell depuis un navigateur Web quel que soit l’endroit où vous êtes. «Dans l’entreprise, chez vous depuis votre ordinateur personnel, tablette ».

2-Comment ça marche ?


Comment fonctionne PowerShell web Access ? C’est une fonctionnalité qui sera installée sur un serveur web IIS qui va ensuite faire office de passerelle afin de vous permettre l’accès à vos serveurs.

C’est l’une des améliorations de PowerShell V 3.0

3-Architecture


4-Pré-requis

 Afin de réaliser une passerelle PowerShell vous devez avoir ces pré-requis :
  •      Un serveur sous Windows server 2012
  •       Le Rôle IIS d’installé
  •        NET Framework 4.5
  •      Windows Power Shell 3.0
  •       Fonctionnalité Windows Power shell Web access
  •      Certificat SSL


Nous allons voir comment installer une passerelle PowerShell, pour commencer, il faut installer la fonctionnalité « Windows PowerShell Web Access » :

Deux Méthode s’offrent à vous :


Soit vous allez dans le gestionnaire de Serveur, et vous ajoutez la fonctionnalité en question :



Une fois la case cochée, vous faites suivant et laissez le serveur installer la fonctionnalité.

Ou alors en PowerShell, il faut ouvrir une console PowerShell en tant qu’administrateur et saisir la commande suivante:



Install-WindowsFeature –Name WindowsPowerShellWebAccess -IncludeManagementTools –Restart


NB : Ici, je suis sur le serveur qui va servir de passerelle PowerShell, si vous voulez installer cette fonctionnalité sur un serveur distant il faudra ajouter le paramètre suivant :

-ComputerName <le nom du serveur distant>
La fonctionnalité désormais  installée, il faut maintenant procéder à l’installation de l’application Web dans IIS .

Dans votre console PowerShell exécutez la commande suivante :




On peut voir ici le message en rouge  sur ma capture d’écran


Le paramètre  – UseTestCertificate va vous permettre de créer un certificat SSL de test afin quevous puissiez vous connecter via un navigateur Web en HTTPS.

Cependant, cette pratique n’est pas recommandée en production, d’où le nom du paramètre « UseTestCertificate », c’est juste un certificat de test, il n’est pas valable et surtout pas sécurisé. Donc Attention, pour les bonnes pratiques, il faut avoir un certificat valide généré par votre environnement Active directory et PKI.



Donc, comme je disai plus haut, il me dit qu’il existe déjà un certificat « SSL »  donc j’exécute la commande sans le paramètre « UseTestCertificate » :


Install-PswaWebApplication 


Une fois l’application installée, il faut se rendre dans le gestionnaire IIS et aller dans site par défaut :




On voit ici l’application « PSWA » qui a été crée

Il faut maintenant aller dans « Default Web Site »  et allez dans : Liaisons






Vous sélectionnez votre certificat SSL :


Une fois sélectionné, il faut procéder aux règles d’autorisation et la gestion de la sécurité de la passerelle web.

On peut désormais se connecter à notre console Web PowerShell en tapant :

https://< nom_serveur_passerelle>/pswa.

Dans mon cas : https://SRV-VDI./Pswa

Voici le résultat :





On obtient la page d’authentification.

Si j’essaie de me connecter directement, j’ai le message d’erreur suivant :


Il me dit que l’accès est refusé, il faut mettre en place des règles qui vont me permettre d’accéder à mes serveurs en PowerShell via cette page Web.

5-2 Règles d’accès


Comme vu précédemment, par défaut aucun utilisateur n’est autorisé à se connecter sur les serveurs à distance en PowerShell, il faut donc créer des règles afin d’autoriser les utilisateurs.

La création de règle d’accès se fait avec des commandes PowerShell, on peut même autoriser un utilisateur a se connecter et a utiliser que certaines commandes PowerShell et rien d’autre, ça permet donc d’avoir plusieurs utilisateurs et groupes avec des droits spécifiques à leur fonction dans l’entreprise.

Voici une présentation des commandes PowerShell pour les règles d’accès :

Commande :


Add-PswaAuthorizationRule

Description :

Permet d’ajouter une règle d’autorisation 

Voici les différents paramètres de cette commande :

• ComputerGroupName
• ComputerName
 •ConfigurationName
• RuleName
• UserGroupName
• UserName

Commande :

Remove-PswaAuthorizationRule
Description :

Elle permet supprimer une règle d’autorisation 

Voici les différents paramètres de cette commande :

• Id
• RuleName


Commande :

Get-PswaAuthorizationRule
Description :

Elle renvoi les règles passées avec la commande Add-PswaAuthorizationRule

Voici les différents paramètres de cette commande :

• Id
• RuleName

Commande :

Test-PswaAuthorizationRule

Description :

Elle permet de tester et d’évaluer les règles d’accès.

Voici les différents paramètres de cette commande :

• ComputerName

• ConfigurationName

• RuleName

• UserName




Voici la règle que j’ai saisie pour ma part :




Voici la commande :



Add-PswaAuthorizationRule -ComputerName DC01.domaine.fr –Username “domaine\Seyf” –ConfigurationName Microsoft.powerShell




J’autorise l’utilisateur Seyf à se connecter sur le serveur via PowerShell web access "DC01" qui est mon contrôleur de domaine.


Vous pouvez également autoriser tous les utilisateurs qui sont sur le serveur en question, ou d’un groupe en particulier.

Règle spécial qui autorise tous les utilisateurs du serveur à se connecter :

Add-PswaAuthorizationRule * * *

Une commande qui va vous permettre de visualiser toute les règles que vous avez saisie:

Test-PswaAuthorizationRule


On voit ici mes deux règles crées au cours de ce How To.




Une fois qu’on a autorisé les utilisateurs à se connecter sur le serveur via le navigateur web en PowerShell, on établit un test de fonctionnement.

Etape1 : « connexion sur la passerelle PowerShell » :

Vous ouvrez un navigateur et vous tapez l’adresse ou le nom de votre serveur suivi de \pswa :
Pour ma part :






Je remplis les champs suivants:

  • Utilisateur: Seyf ou administrateur

  • mdp: le mots de passe associé

  • le nom de l'ordinateur: DC01 "car j'ai spécifié, que je voulais prendre le contrôle de mon contrôleur de domaine dans la réglé plus haut".


Voici le résultat final:


Voila, je suis connecté sur mon serveur DC01 depuis chez moi, et je peux exécuter des commandes et script powershell.


Seyfallah.



< >