Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 25/12 : 1 commande de contenus en ligne
= 1 chance de gagner un cadeau*. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Windows PowerShell
  3. Cas pratiques et autres fonctionnalités
Extrait - Windows PowerShell Administration de postes clients Windows (4e édition)
Extraits du livre
Windows PowerShell Administration de postes clients Windows (4e édition)
1 avis
Revenir à la page d'achat du livre

Cas pratiques et autres fonctionnalités

Connecter un lecteur réseau

Voici un exemple de script à déployer par GPO, et qui doit s’exécuter lors de l’ouverture de sessions utilisateurs. En plus de connecter un lecteur réseau personnel, ce script a la particularité de connecter des lecteurs réseau en fonction des groupes Active Directory dont l’utilisateur est membre.

Il convient donc d’avoir un réseau d’entreprise avec un domaine Active Directory et des postes de travail rattachés à ce domaine.

Les prérequis

Pour la connexion au lecteur réseau personnel, il faut créer un partage sur le serveur, que vous appellerez users. Ce dossier partagé doit contenir des sous-dossiers ayant pour nom le login des utilisateurs. N’oubliez pas de donner les droits adéquats en fonction des dossiers. Assurez-vous que l’utilisateur possède bien les droits de lecture/écriture dans son dossier personnel, mais qu’il ne peut pas accéder aux dossiers de ses collègues.

En ce qui concerne les partages en fonction des groupes AD dont l’utilisateur est membre, libre à vous de créer les noms de partages que vous souhaitez. Il va de soi qu’il faut aussi vérifier si les accès sont bien définis. Dans le script, il faut alors déclarer le nom du groupe, auquel est associé le nom du partage, ainsi que la lettre de lecteur réseau qui sera utilisée sur le poste client pour accéder au partage.

Cette déclaration doit être sous la forme suivante :

"nom_du_groupe"=@("nom_du_partage","lettre_de_lecteur")...

Envoi d’e-mails

Autre fonctionnalité intéressante à mettre en place selon les objectifs de vos scripts : la possibilité d’envoyer des e-mails. Ainsi, par exemple un script exécuté régulièrement via une tâche planifiée peut vous faire parvenir un message dans votre boîte aux lettres pour vous retourner des informations en fonction du problème décelé.

Le script suivant a pour fonction de vérifier, parmi une liste de serveurs, si le service Serveur des services de déploiement Windows (WDSServer) est bien démarré. Dans la négative, ou si un autre problème est détecté, un e-mail est alors envoyé.

Prérequis

Une liste de serveurs Windows ayant le rôle Services de déploiement Windows installé. Le nom de ces serveurs doit être renseigné dans la variable $tabServeurs.

Les variables $login, $pwd et $emailFrom contiennent les informations identifications et l’adresse e-mail du compte avec lequel le message électronique sera envoyé. S’il s’agit d’un compte générique, n’oubliez pas que celui-ci doit posséder une boîte mail.

La variable $emailTo contient la ou les adresses e-mail des destinataires à qui sera envoyé le message. Et enfin, la variable $smtpServer doit contenir l’adresse du serveur SMTP.

Le script

# Vérifie si le serveur est en ligne, et l'état du service WDS 
# Un e-mail est alors envoyé avec une explication du problème détecté 
# Script à mettre dans une tâche planifiée 
 
#----------------------------------------------------# 
# Fonctions 
#----------------------------------------------------# 
# FunctioneMail (envoi d'e-mails) 
Function eMail ([string]$serverFQDN, [string]$reason) { 
    $servername = $serverFQDN.Split(('.')) ...

Mettre en place des dossiers partagés

Cette section vous permet de voir comment mettre en place des dossiers partagés et comment gérer les droits du partage, mais aborde aussi la sécurité NTFS.

Prérequis

Pas de prérequis particuliers pour ce script. Il faut cependant bien penser à lancer celui-ci en mode administrateur.

Vous devez définir le chemin d’accès au dossier qui sera partagé (variable $folderPath), puis le nom du partage (variable $shareName), à l’aide des deux lignes de code suivantes :

$folderPath = $env:SystemDrive + "\Public" 
$shareName = "Public" 

Enfin, vous devez définir les autorisations du partage, et les droits NTFS. Pour cela, vous devez notifier les comptes AD et le niveau de droits qui leur sera associé. 

Les droits NTFS qui seront appliqués sur le dossier se définissent sur la ligne de code suivante, dans le tableau associatif qui est en second paramètre à l’appel de la fonction Security :

# Ajoute les droits NTFS (onglet Sécurité) 
Security $folderPath @{"CONTOSO\Julien"="FullControl";"CONTOSO\ 
Benjamin"="ReadAndExecute"} 

Pour les autorisations du partage, il faut également remplir le tableau associatif présent sur la ligne de code suivante, lors de l’appel de la fonction Sharing :

# Partage le dossier 
Sharing $folderPath $shareName @{"CONTOSO\Julien"="Full";
"CONTOSO\Benjamin"="Read"} 

Le script

# Active le partage d'un dossier 
# Configure les autorisations du partage et droits NTFS 
 
#----------------------------------------------------# ...