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 :

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
}
J’ai une boucle foreach pour rechercher (net view /all) les partages des machines contenu dans le fichiers textes 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