Question erreur sur else

Plus d'informations
il y a 13 ans 10 mois #12144 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
en faite ce que je cherche c'est pouvoir remplir ma variable $computer avec les deux dns qui sont paramétrer sur mon ordinateur

donc ip ou nom afin de lancer un ping plus mes commandes (qui m’afficheront des services avec leurs états )si les dns réponde

$computer
If (Test-Connection -computer $Computer -Count 1 -quiet){

mes commandes

}

else{

Write-Output \"Le controleur de domain n'est pas joignable\"

}

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12145 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
je peux peut étre me servir du fichier host de mes postes ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12146 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
j'ai fait ça aprés qulques recherches sur le net

$ping = new-object System.Net.Networkinformation.Ping
$objDomain=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$dc=$objDomain.FindAllDomainControllers() | Select-Object Name,IpAddress |sort name

If (Test-Connection -computer $dc -Count 1 -quiet){

Write-Output \"Le controleur de domain est joignable\">>toto.txt

}

else{

Write-Output \"Le controleur de domain n'est pas joignable\">>toto.txt

}



par contre je ne peux pas le tester donc je ne sais pas si ça marche??

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12147 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:erreur sur else

[code:1]$ping = new-object System.Net.Networkinformation.Ping
[/code:1]


Tu ne te sers pas de l'objet $ping dans ton code : cette ligne ne sert à rien.

A la lecture de ce code :

[code:1]If (Test-Connection -computer $dc -Count 1 -quiet){[/code:1]


le ping est réalisé via le paramétre computer. Comme tu spécifie la valeur $dc, il s'agit de la liste de tous les DC. La commande Test-Connection va donc transmettre 1 ping vers tous les DC avant que la condition ne soit remplie...

Utilises donc une boucle foreach pour effectuer un traitement sur chacun des DC :

[code:1]$objDomain=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

$dclist = $objDomain.FindAllDomainControllers() | Select-Object Name,IpAddress |sort name

Foreach($dc in $dclist){
If (Test-Connection -computer $dc.ipaddress -Count 1 -quiet){
Write-Output \"Le controleur de domaine $($dc.name) est joignable\">>toto.txt
}
else{
Write-Output \"Le controleur de domaine $($dc.name) n'est pas joignable\">>toto.txt
}
}[/code:1]

Enfin, pour répondre aux questions concernant la résolution de nom via le DNS, une solution consiste à passer par la classe .Net 'System.Net.DNS'.

Exemples :


[code:1]# Résolution par l'adresse IP
$DNSResult = [System.Net.Dns]::GetHostByAddress(\"192.168.1.10\"«»)
$DNSResult.HostName

# Résolution par le nom
$DNSResult = [System.Net.Dns]::GetHostByName(\"MonServeur\"«»)
$DNSResult.AddressList[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12148 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
petit question si je fait un foreach ça me traite tous les CD ?? ou je dois faire un Foreach pour chaque CD

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12149 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
j'ai ma réponse merci ça fonctionne nickel par contre quand je l'exécute depuis mon fichier ps1 ça me fait tous bien ça m'ouvre mes fenêtre et puis ça me les ferme à la fin du scripte ses normale?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.041 secondes
Propulsé par Kunena