Question
erreur sur else
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
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\"
}
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
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??
$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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 10 mois #12147
par Matthew BETTON
Tu ne te sers pas de l'objet $ping dans ton code : cette ligne ne sert à rien.
A la lecture de ce code :
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]
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- erreur sur else