• [^] # Re: hop hop

    Posté par . En réponse au journal Lister les programmes installés sur un (ou plusieurs) poste(s) sous Windows (XP ou 7). Évalué à 2.

    assez d accord avec toi.

    et puis le libre c est bien l ouverture et donc etre ouvert implique de voir ce qui se fait de bien ailleur.

    avec powershell Microsoft a fait un net progrès pour le travail des admins, reste juste a le rendre compatible ssh et cela serais top.

    sinon au lieur d ecrire ou de sortir du dns ou d un csv la liste de machine on peut aussi demander a l AD de nous la donner si on est dans un domaine.

    $strFilter = "computer" 
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.SearchScope = "Subtree" 
    $objSearcher.PageSize = 1000 
    $objSearcher.Filter = "(objectCategory=$strFilter)"
    $colResults = $objSearcher.FindAll()
    foreach ($i in $colResults) {
     $objComputer = $i.GetDirectoryEntry()
     $strComputer = $objComputer.name
     if (test-connection -computername $strComputer -quiet -count 1) {
     $h = [string] $objComputer.dnsHostname
     Write-Host $h.ToLower()
     }
    }
    

    ou bien si tu veux le mettre dans un txt

    $strFilter = "computer" 
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.SearchScope = "Subtree" 
    $objSearcher.PageSize = 1000 
    $objSearcher.Filter = "(objectCategory=$strFilter)"
    $colResults = $objSearcher.FindAll()
    foreach ($i in $colResults) {
     $objComputer = $i.GetDirectoryEntry()
     $strComputer = $objComputer.name
     if (test-connection -computername $strComputer -quiet -count 1) {
     $h = [string] $objComputer.dnsHostname
     out-file -filepath servers.txt -inputobject $h.ToLower() -append
     }
    }