Powershell - vérifiez que l'objet existe dans AD
j'ai un fichier texte contenant près de 100 serveurs, comment puis-je pousser dans un script et de tester si elles existent dans la PUBLICITÉ? J'ai un simple script ci-dessous:
$serverlist = get-content ServerList.txt
foreach ($server in $serverlist) {
if (Get-ADComputer $serverlist ) {
Write-Host "#########################"
Write-Host "Computer object exists"
Write-Host "#########################"
}
else {
Write-Host "#########################"
Write-Host "Computer object NOT FOUND"
Write-Host "#########################"
}
}
le ci-dessus ne fonctionne pas retourner une erreur:
Get-ADComputer : Impossible de convertir de 'Système.Object[]' type 'de Microsoft.ActiveDirectory.De la gestion.ADComputer " requis par le paramètre 'Identité'. Méthode spécifiée n'est pas prise en charge.
Quelqu'un peut-il expliquer le get-adcomputer seulement permettent à un seul objet? Aussi, si j'ai supprimer le fichier txt et ajouter un serveur indiqué ci-dessous:
if (Get-ADComputer "server name" )
Le ci-dessus ne fournit que des résultats si le serveur existe au sein de l'AD, si le serveur ne prend pas l'erreur est indiqué ci-dessous:
Get-ADComputer : Cannot find an object with identity: 'iuiub' under: 'DC=####,DC=#####,DC=#####'
Merci pour tout insight /aider!
Phil
- vous pouvez tester le résultat de tout cela :
if ( (Get-ADComputer "server1") -eq $null){"not found"} else {"alive"}
- merci pour le commentaire kayasax, bien que j'ai essayé et cela ne fonctionne pas pour un objet ordinateur qui n'existe pas, il signale une erreur et écrit "vivant", même si elle n'existent pas - je vous remercie pour la réponse 🙂
- Vous devez utiliser le
ErrorAction
paramètre pourGet-ADComputer
. Vous avez besoin de le faire savoir ce que vous voulez faire si il y a une erreur.
Vous devez vous connecter pour publier un commentaire.
Créer un tableau -
@()
. Si le tableau a 1 ou plusieurs objets dans ce qui est$true
- alors vous savez que l'ordinateur existe. Si la matrice a 0 objets - qui est$false
- alors vous savez que l'ordinateur n'existe pas. Je sais que certaines personnes n'aiment pas l'ErrorAction
être mis àSilentlyContinue
mais vous êtes "La sortie d'une Erreur" si une erreur se produit.Une autre chose que vous pouvez essayer sont
try catch
blocs. Sorta comme ceci:Ligne 3, variation $liste des serveurs de $serveur
En ce qui concerne la manipulation d'un pas trouvé de résultat. Je voudrais essayer le retournement de la logique :