Question
Récupération infos réseaux
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 5 mois #2865
par michault
Récupération infos réseaux a été créé par michault
Bonjour à tous,
J'aimerai récupérer les infos des cartes réseaux à partir d'une boucle sur une plage d'adresses IP à l'aide de ces bouts de script.
1er: boucle sur plage d'adresse IP
[int]$intPing = 200
[string]$intNetwork = \"xx.xxx.xxx.\"
for ($i=1;$i -le $intPing; $i++)
{
$strQuery = \"select * from win32_pingstatus where address = '\" + $intNetwork + $i + \"'\"
$wmi = get-wmiobject -query $strQuery
\"Pinging $intNetwork$i ... \"
if ($wmi.statuscode -eq 0) {
else
{\"error: \" + $wmi.statuscode + \" occurred\"}
}
2ème script: utilisation de la classe win32_networkadapterconfiguration
$strComputer = \".\"
$colItems = get-wmiobject -class \"Win32_NetworkAdapterConfiguration\" `
-ComputerName $strComputer | Where{$_.IpEnabled -Match \"True\"}
foreach ($objItem in $colItems) {
write-host \"MAC Address : \" $objItem.MACAddress
write-host \"IPAddress : \" $objItem.IPAddress
write-host \"DNS Servers : \" $objItem.DNSServerSearchOrder
Write-host \"DNS suffixes: \" $objItem.DNSDomainSuffixSearchOrder
Write-host \"\"
}
En s'inspirant de ces script j'aimerai dans le cas d'un ping concluant récupérer les infos réseaux.
Suis-je obligé d'utiliser le computername.
Tous les exemples que je trouve se font sur un PC en local. Je n'y trouve pas beaucoup d'intérêt.
Avez_vous une piste?
Si cela est possible, je pourrai, dans un deuxième temps, mettre à jour un paramètre particulier sur tous les PC connectés. Et là c'est beaucoup plus kiffant!!!!
Merci d'avance
Christophe
J'aimerai récupérer les infos des cartes réseaux à partir d'une boucle sur une plage d'adresses IP à l'aide de ces bouts de script.
1er: boucle sur plage d'adresse IP
[int]$intPing = 200
[string]$intNetwork = \"xx.xxx.xxx.\"
for ($i=1;$i -le $intPing; $i++)
{
$strQuery = \"select * from win32_pingstatus where address = '\" + $intNetwork + $i + \"'\"
$wmi = get-wmiobject -query $strQuery
\"Pinging $intNetwork$i ... \"
if ($wmi.statuscode -eq 0) {
else
{\"error: \" + $wmi.statuscode + \" occurred\"}
}
2ème script: utilisation de la classe win32_networkadapterconfiguration
$strComputer = \".\"
$colItems = get-wmiobject -class \"Win32_NetworkAdapterConfiguration\" `
-ComputerName $strComputer | Where{$_.IpEnabled -Match \"True\"}
foreach ($objItem in $colItems) {
write-host \"MAC Address : \" $objItem.MACAddress
write-host \"IPAddress : \" $objItem.IPAddress
write-host \"DNS Servers : \" $objItem.DNSServerSearchOrder
Write-host \"DNS suffixes: \" $objItem.DNSDomainSuffixSearchOrder
Write-host \"\"
}
En s'inspirant de ces script j'aimerai dans le cas d'un ping concluant récupérer les infos réseaux.
Suis-je obligé d'utiliser le computername.
Tous les exemples que je trouve se font sur un PC en local. Je n'y trouve pas beaucoup d'intérêt.
Avez_vous une piste?
Si cela est possible, je pourrai, dans un deuxième temps, mettre à jour un paramètre particulier sur tous les PC connectés. Et là c'est beaucoup plus kiffant!!!!
Merci d'avance
Christophe
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 17 ans 5 mois #2866
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Récupération infos réseaux
Bonjour Christophe,
Une ptite erreur de fermeture de } s'est glissée dans ton 1er script (peut-être mauvais copier/coller).
Pour ce qui est de contacter un pc particulier, il suffit juste de faire varier ta variable $strComputer avec le nom ou l'@ ip de ta machine distante, ce que tu as déjà résolu dans ta boucle.
[code:1][int]$intPing = 200
[string]$intNetwork = \"xx.xxx.xx.\"
for ($i=120;$i -le $intPing; $i++)
{
$strQuery = \"select * from win32_pingstatus where address = '\" + $intNetwork + $i + \"'\"
$wmi = get-wmiobject -query $strQuery
\"Pinging $intNetwork$i ... \"
if ($wmi.statuscode -eq 0) {
#Si machine pingable, on récup l'@ip de ce poste
$strComputer = $intNetwork + $i
$colItems = get-wmiobject -class \"Win32_NetworkAdapterConfiguration\" `
-ComputerName $strComputer | where{$_.IpEnabled -match \"True\"}
foreach ($objItem in $colItems) {
write-host \"MAC Address : \" $objItem.MACAddress
write-host \"IPAddress : \" $objItem.IPAddress
write-host \"DNS Servers : \" $objItem.DNSServerSearchOrder
Write-host \"DNS suffixes: \" $objItem.DNSDomainSuffixSearchOrder
Write-host \"\"
}
}
else
{\"error: \" + $wmi.statuscode + \" occurred\"}
}[/code:1]
Une ptite erreur de fermeture de } s'est glissée dans ton 1er script (peut-être mauvais copier/coller).
Pour ce qui est de contacter un pc particulier, il suffit juste de faire varier ta variable $strComputer avec le nom ou l'@ ip de ta machine distante, ce que tu as déjà résolu dans ta boucle.
[code:1][int]$intPing = 200
[string]$intNetwork = \"xx.xxx.xx.\"
for ($i=120;$i -le $intPing; $i++)
{
$strQuery = \"select * from win32_pingstatus where address = '\" + $intNetwork + $i + \"'\"
$wmi = get-wmiobject -query $strQuery
\"Pinging $intNetwork$i ... \"
if ($wmi.statuscode -eq 0) {
#Si machine pingable, on récup l'@ip de ce poste
$strComputer = $intNetwork + $i
$colItems = get-wmiobject -class \"Win32_NetworkAdapterConfiguration\" `
-ComputerName $strComputer | where{$_.IpEnabled -match \"True\"}
foreach ($objItem in $colItems) {
write-host \"MAC Address : \" $objItem.MACAddress
write-host \"IPAddress : \" $objItem.IPAddress
write-host \"DNS Servers : \" $objItem.DNSServerSearchOrder
Write-host \"DNS suffixes: \" $objItem.DNSDomainSuffixSearchOrder
Write-host \"\"
}
}
else
{\"error: \" + $wmi.statuscode + \" occurred\"}
}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 5 mois #2869
par michault
Réponse de michault sur le sujet Re:Récupération infos réseaux
Salut Gremlinsy
Super ta réponse et quelle rapidité.
J'ai maintenant 2 petits soucis.
A-t-on un moyen d'exclure les machine autre que des PC?
En effet j'ai une erreur :\" service RPC indisponible\" quand il s'agit d'imprimante ou de routeur.
J'aimerai aussi dans le même esprit mettre à jour un paramètre particulier DNSDomainSuffixSearchOrder avec un set mais je me plante.
As-tu une piste?
Merci d'avance
Christophe
Super ta réponse et quelle rapidité.
J'ai maintenant 2 petits soucis.
A-t-on un moyen d'exclure les machine autre que des PC?
En effet j'ai une erreur :\" service RPC indisponible\" quand il s'agit d'imprimante ou de routeur.
J'aimerai aussi dans le même esprit mettre à jour un paramètre particulier DNSDomainSuffixSearchOrder avec un set mais je me plante.
As-tu une piste?
Merci d'avance
Christophe
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 17 ans 5 mois #2870
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Récupération infos réseaux
Bonjour Christophe,
Exclure des postes, je pense que tu ne peux faire cela qu'en amont. via le dns et/ou ldap si tes postes sont dans le domaine !
Sinon, une autre solution sera de pouvoir tester la connexion au port RPC par ex. Tu as des outils pour ça, mais powershell devrait être capable de faire ça, non ?
Pour la mise à jour du paramètre, je sais que j'ai déjà travaillé dessus. Je ne sais plus où j'ai mis les sources; mais il est possible que j'avais traité le problème avec netsh.
Je regarde si j'ai un peu de temps...
Exclure des postes, je pense que tu ne peux faire cela qu'en amont. via le dns et/ou ldap si tes postes sont dans le domaine !
Sinon, une autre solution sera de pouvoir tester la connexion au port RPC par ex. Tu as des outils pour ça, mais powershell devrait être capable de faire ça, non ?
Pour la mise à jour du paramètre, je sais que j'ai déjà travaillé dessus. Je ne sais plus où j'ai mis les sources; mais il est possible que j'avais traité le problème avec netsh.
Je regarde si j'ai un peu de temps...
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 17 ans 5 mois #2872
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Récupération infos réseaux
Pour le test du port, tu dois pouvoir passer par la classe
En faisant une petite recherche sur le net, suis tombé sur un bout de script sur le blog de l'incontournable /\/\o\/\/ .
mow001.blogspot.com/2006/04/simple-port-...ing-using-monad.html
Un ping est en plus effectué dans la fonction. Tu as juste à tester le port RPC (135) s'il est ouvert ! (Si bien sûr, tes postes clients sont exclusivement Microsoft)
Reste à voir pour modifier le param DNSDomainSuffixSearchOrder ...
net.sockets.tcpclient
En faisant une petite recherche sur le net, suis tombé sur un bout de script sur le blog de l'incontournable /\/\o\/\/ .
mow001.blogspot.com/2006/04/simple-port-...ing-using-monad.html
Un ping est en plus effectué dans la fonction. Tu as juste à tester le port RPC (135) s'il est ouvert ! (Si bien sûr, tes postes clients sont exclusivement Microsoft)
scan-ports Nom_ou_Ip_Poste 135
Reste à voir pour modifier le param DNSDomainSuffixSearchOrder ...
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 17 ans 5 mois #2876
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Récupération infos réseaux
Le paramètre DNSDomainSuffixSearchOrder est static, commun à toutes les cartes, on ne peut pas le modifier directement par $objItem.DNSDomainSuffixSearchOrder
Par contre, il y a une méthode directement liée à la classe Win32_NetworkAdapterConfiguration qui se nomme SetDNSSuffixSearchOrder
Pas eu trop le tps de tester, mais plusieurs liens qui peuvent peut-être t'aider:
Changing the DNS Domain Suffix Search Order: www.microsoft.com/technet/scriptcenter/t..._atnc_dns.mspx#EMGAE
www.eggheadcafe.com/software/aspnet/3212...orkingadapterco.aspx
Par contre, il y a une méthode directement liée à la classe Win32_NetworkAdapterConfiguration qui se nomme SetDNSSuffixSearchOrder
Pas eu trop le tps de tester, mais plusieurs liens qui peuvent peut-être t'aider:
Changing the DNS Domain Suffix Search Order: www.microsoft.com/technet/scriptcenter/t..._atnc_dns.mspx#EMGAE
www.eggheadcafe.com/software/aspnet/3212...orkingadapterco.aspx
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.103 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Récupération infos réseaux