Tips and tricks du moment

Voici quelques commandes que j’ai utilisé cette semaine…Puisque cela m’a aidé, peut être que cela vous aidera aussi !

Besoin: connaître les utilisateurs qui n’utilisent pas le mode mise en cache de outlook.
Solution: Exchange 2007 possède un cmdlet PowerShell qui correspond tout à fait:

Get-LogonStatistics -server MonServeurExchange | where {$_.ClientMode -eq "Classic"} |FL ClientName

Besoin: Collecter les adresses IP assignées aux serveurs.
Solution:

  • Créer un fichier texte contenant un nom de serveur par ligne, par exemple en récupérant tous les objets AD ayant pour OS « Windows Servers » via adfind
  • Utiliser PowerShell + psexec pour récupérer le résultat de ipconfig /all sur chaque serveur

Le « script » powershell est le suivant:

———————————————————————————————-

get-content servers.txt | foreach-object {
$server=$_
$ip=.\psexec \\$server ipconfig /all| where { $_ -match "IP Address"} | %{$_  -replace "IP Address. . . . . . . . . . . . : ","$server;"}
Write-Output $ip >> servers_ipconfig.txt
}
———————————————————————————————-
Cette méthode, bien que très basique a certains avantages:
  • On récupère les informations en « live » sans reposer sur des relevés pouvant être obsolètes
  • Tout es ramassé, IP via NLB, carte réseau privée (heartbeat…), ip d’un tunnel VPN…
  • psexec permet de spécifier un login/pass quand on est hors domaine
  • Elle ne nécessite aucun agent sur les serveurs (SCCM, Altiris…)
Elle a au moins un inconvénient, il faut adapter la chaîne  de caractère « IP Address » à la langue de vos systèmes d’exploitation.
Si vous êtes allergiques à PowerShell, où qu’il n’est pas disponible depuis votre environnement, une variante en MSDOS:
for /f %s in (servers.txt) do echo %s >>ipall.txt && psexec \\%s ipconfig /all | findstr "Address" | findstr "IP" >> ipall.txt

Laisser un commentaire