la présence de certains lecteurs peut être cruciale pour le bon fonctionnement de l’infrastructure informatique. Cet article explique comment vérifier à distance une connexion de lecteur à l’aide de Windows powershell.Dans un cas concret, un lecteur connecté via un serveur USB a été déconnecté suite à une erreur humaine, entraînant divers messages d’erreur et interruptions dans un logiciel.
Pour résoudre ce problème, un script a été installé pour vérifier à distance la connexion via PowerShell et envoyer un e-mail à l’administrateur responsable si la connexion du lecteur est absente. Si le lecteur est correctement connecté, aucun e-mail n’est envoyé.
Ce script est exécuté régulièrement via le planificateur de tâches, permettant d’être notifié automatiquement dès que le lecteur est de nouveau indisponible.
## Vérification d’une connexion de lecteur existante via un script
La première partie du script consiste à entrer le nom du serveur distant,ainsi que la lettre du lecteur à vérifier. La partie inférieure doit contenir le serveur de messagerie,ainsi que l’expéditeur et le destinataire de l’e-mail.
“`powershell
# Définir le serveur cible et la lettre du lecteur
$remoteServer = “NomServeurCible”
$driveLetter = “X:”
# Script exécuté sur le serveur distant
$scriptBlock = {
param($driveLetter)
Get-PSDrive -Name $driveLetter.TrimEnd(‘:’)
}
# Vérifier si le lecteur est présent sur le serveur distant
if (-not (Invoke-Command -ComputerName $remoteServer -ScriptBlock $scriptBlock -ArgumentList $driveLetter))
{
# Paramètres de l’e-mail
$smtpServer = “VotreServeurExchange” # Adresse du serveur Exchange
$from = “[email protected]” # adresse de l’expéditeur
$to = “[email protected]” # Adresse du destinataire
$subject = “Lecteur $driveLetter non trouvé sur $remoteServer”
$body = “Le lecteur $driveLetter n’a pas été trouvé sur le serveur $remoteServer.”
# Envoyer l’e-mail
send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body
}
“`
## Vérification de la connexion du lecteur sur le serveur local
Dans le cas où la vérification doit être effectuée localement, le script est plus court, car la commande peut être exécutée directement sur le serveur concerné.
“`powershell
# Définir la lettre du lecteur à vérifier
$driveLetter = “X:”
# Vérifier si le lecteur est présent
if (!(Get-PSDrive | where-Object { $_.Name -eq $driveLetter.TrimEnd(‘:’) }))
{
# Paramètres de l’e-mail
$smtpServer = “VotreServeurExchange” # Adresse du serveur Exchange
$from = “[email protected]” # Adresse de l’expéditeur
$to = “[email protected]” # Adresse du destinataire
$subject = “Lecteur $driveLetter non trouvé”
$body = “Le lecteur $driveLetter n’a pas été trouvé sur le serveur.”
# Envoyer l’e-mail
Send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body
}
“`
powershell Remoting est une fonctionnalité puissante qui permet aux professionnels de l’informatique de contrôler et d’automatiser l’administration des machines Windows à distance [[1]]. Avec le protocole WS-Management, Windows PowerShell remoting permet d’exécuter n’importe quelle commande Windows PowerShell sur un ou plusieurs ordinateurs distants [[2]].Pour utiliser Windows PowerShell Remoting, l’ordinateur distant doit être configuré pour la gestion à distance [[2]].
Pour exécuter des commandes PowerShell sur des ordinateurs distants sous Windows 10, appuyez sur Windows+X, puis choisissez PowerShell (admin) dans le menu Utilisateur expérimenté [[3]]. Sous Windows 7 ou 8, cliquez sur Démarrer, puis tapez “powershell” [[3]]. Faites un clic droit sur le résultat et choisissez “Exécuter en tant qu’administrateur” [[3]]. Dans la fenêtre PowerShell, tapez le cmdlet suivant (le nom de PowerShell pour une commande), puis appuyez sur Entrée [[3]].
Surveillance de la connexion d’un lecteur distant via PowerShell
Table of Contents
La présence d’un lecteur réseau est cruciale pour le bon fonctionnement de nombreux systèmes. Une déconnexion inattendue, souvent due à une erreur humaine, peut engendrer des dysfonctionnements importants. Ce guide détaille la création d’un script PowerShell pour surveiller à distance la connexion d’un lecteur et alerter l’administrateur en cas de problème.
Script de surveillance à distance
Ce script vérifie la connexion d’un lecteur sur un serveur distant et envoie un e-mail en cas de déconnexion.
powershell
Définir le serveur cible et la lettre du lecteur
$remoteServer = "NomServeurCible"
$driveLetter = "X:"
Script exécuté sur le serveur distant
$scriptBlock = {
param($driveLetter)
Get-PSDrive -Name $driveLetter.TrimEnd(':')
}
Vérifier si le lecteur est présent sur le serveur distant
if (-not (Invoke-Command -ComputerName $remoteServer -ScriptBlock $scriptBlock -ArgumentList $driveLetter))
{
# Paramètres de l'e-mail
$smtpServer = "VotreServeurExchange" # Adresse du serveur Exchange
$from = "[email protected]" # adresse de l'expéditeur
$to = "[email protected]" # Adresse du destinataire
$subject = "Lecteur $driveLetter non trouvé sur $remoteServer"
$body = "Le lecteur $driveLetter n'a pas été trouvé sur le serveur $remoteServer."
# Envoyer l'e-mail
send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body
}
Remplacez les valeurs suivantes par vos propres informations :
NomServeurCible
: Nom du serveur distant.
X:
: Lettre du lecteur à surveiller.
VotreServeurExchange
: Adresse de votre serveur Exchange.
[email protected]
: Adresse e-mail de l’expéditeur.
* [email protected]
: Adresse e-mail du destinataire.
Script de surveillance local
Pour une surveillance locale,le script est simplifié :
powershell
Définir la lettre du lecteur à vérifier
$driveLetter = "X:"
Vérifier si le lecteur est présent
if (!(Get-PSDrive | where-Object { $_.Name -eq $driveLetter.TrimEnd(':') }))
{
# Paramètres de l'e-mail
$smtpServer = "VotreServeurExchange" # adresse du serveur Exchange
$from = "[email protected]" # Adresse de l'expéditeur
$to = "[email protected]" # Adresse du destinataire
$subject = "Lecteur $driveLetter non trouvé"
$body = "Le lecteur $driveLetter n'a pas été trouvé sur le serveur."
# Envoyer l'e-mail
Send-mailmessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body
}
configuration et exécution
Ces scripts doivent être exécutés régulièrement via le Planificateur de tâches de Windows. Pour utiliser PowerShell Remoting, assurez-vous que le serveur distant est correctement configuré pour la gestion à distance. [[2]]
FAQ
| Question | Réponse |
|——————————————-|———————————————————————————————————–|
| que faire si le script ne fonctionne pas ? | Vérifiez la configuration du serveur Exchange, les autorisations et la configuration de PowerShell Remoting. |
| Comment tester le script ? | Exécutez-le manuellement depuis PowerShell en modifiant les paramètres appropriés. |
| Puis-je surveiller plusieurs lecteurs ? | Oui, modifiez le script pour inclure une boucle et plusieurs variables $driveLetter
. |