Bonjour à tout le monde,
En avançant sur mon script je me trouve face à la situation que j’ai du mal à gérer
J’ai le code suivant :
J’ai une boucle foreach pour rechercher (net view /all) les partages des machines contenu dans le fichiers textes MachinesList.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 try { # Utilisation de la commande Net view sur les élèmeents de '$MachinesList' pour afficher les partages des machines préselectionnés | Formatage de la sortie de net view foreach ($Machines in Get-Content $MachinesList ) { (Net View $Machines /ALL | Where-Object { ($_ -match '\sDisque\s') -or ($_ -match '\sIPC\s') }) -replace '\s\s+', ',' | ForEach-Object { ($_ -split ',')[0] } | Select-String -pattern ("Nom du partage", "La", "Ressources partagées de ") -notmatch | Out-File -FilePath $PartagesMachinesList -Append -ErrorAction Stop } } catch # [] L’erreur système 53 s’est produite. Erreur [5] Accès refusé. { Get-Content $MachinesList | ForEach-Object { $_ } # Supprimer la $Machines pour Maj de $MachinesList }
Lors de cette boucle certaines sortie génère l’erreur suivante : Erreur 53 | erreur 5 Accès refusé
J’ai donc imaginé comme solution l’utilisation de try, catch pour capturer l’erreur et dans la partie catch mettre à jour en supprimant le nom de la machine dans le fichier texte MachinesList ayant généré l’erreur.
Est-ce la bonne méthode ?
Merci à vous pour votre aide
Partager