try,catch sur boucle foreach contenant net view --> Erreur 53
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:
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
try,catch sur boucle foreach contenant net view --> Erreur 53
Bonjour ericlm128,
Je te remercie de ton intervention,
Je m'arrachais les cheveux à tenter de rendre l'erreur système 53 où l'erreur 5 bloquante avec (-ErrorAction Stop) pour pouvoir l'intercepter et la traiter dan le catch.
Je ne comprends pas la syntaxe de ta ligne
Code:
$result = & "Net" "view" "pc123" 2>&1
"pc123"
2>&1
Merci