IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Compteur listing PC


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut Compteur listing PC
    Bonjour à tous,

    En powershell je liste la liste de nos PC dans notre AD par ordre (sous cette forme GA-PCXXXX-... > ou XXXX est le numero du pc)

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name,OperatingSystem,IPv4Address,lastLogonDate | Select-Object Name,OperatingSystem,IPv4Address,lastLogonDate | Sort-Object Name

    Maintenant je cherche à réaliser en powerhsell dans ce script, a lister les trous dans ma liste de pc et le dernier numero de pc utilisé.

    Comment je devrais mi prendre pour réaliser ceci?

    Merci d'avance pour vos conseils

    guigui69

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Dernier numéro de pc utilisé
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name,OperatingSystem,IPv4Address,lastLogonDate | Select-Object Name,OperatingSystem,IPv4Address,lastLogonDate | Sort-Object lastLogonDate -Descending | Select-Object -ExpandProperty Name -First 1

    Lister les trous dans ma liste
    Il y a des trous ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour

    j'ai rectifier ton code en me basant sur le nom
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name,OperatingSystem,IPv4Address,lastLogonDate | Select-Object Name,OperatingSystem,IPv4Address,lastLogonDate | Sort-Object Name -Descending | Select-Object -ExpandProperty Name -First 1

    et oui c'est possible qu'il y a des trous. Est-ce qu'avec une boucle c'est possible d'indiquer ceux manquant?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Ah je pensais que "le dernier numero de pc utilisé" faisait référence à sa date de dernière connexion.


    et oui c'est possible qu'il y a des trous. Est-ce qu'avec une boucle c'est possible d'indiquer ceux manquant?
    Donne un exemple de liste sans trou et avec un trou que je comprenne.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    ....
    GA-PC0020-W10
    GA-PC0021-W10
    GA-PC0022-W10
    GA-PC0023-W10
    GA-PC0024-W10
    GA-PC0026-W10
    ...
    GA-PC0037-W10
    GA-PC0038-W10
    GA-PC0040-W10
    GA-PC0041-W10
    GA-PC0042-W10
    ....
    GA-PC0128-W10
    GA-PC0129-W10
    GA-PC0131-W10
    GA-PC0132-W10
    GA-PC0134-W10
    GA-PC0135-W10
    GA-PC0138-W10
    il manque 0025/0039/0130/0133/0136/0137 par exemple

    Autre demande dans mon filter 'Name -like "GA-PC*"' comment je peux dire que je veux uniquement sous cette forme "GA-PCXXXX-WXX" ( ou x sont uniquement des chiffres)

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Autre demande dans mon filter 'Name -like "GA-PC*"' comment je peux dire que je veux uniquement sous cette forme "GA-PCXXXX-WXX" ( ou x sont uniquement des chiffres)
    Tu ne peut pas gérer cela de façon fine dans le "filter". Il faut ajoute un clause de filtrage "Where-Object" avec une petite regexp (insensible à la casse dans le code ci-dessous)
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name,OperatingSystem,IPv4Address,lastLogonDate | Where-Object {$_.Name -match "^GA-PC\d\d\d\d-W\d\d$"} | Select-Object Name,OperatingSystem,IPv4Address,lastLogonDate ....



    il manque 0025/0039/0130/0133/0136/0137 par exemple
    Manque t'il aussi 0000 et 9999 par exemple ?
    Sinon il faut trouver le plus petit et le plus grand et voir ce qui est manquant. Mais rien ne garantie qu'au dessus du plus grand il n'en manque pas aussi (que GA-PC0138-W10 sois réellement le dernier)

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Voici un code à tester
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    # Récupère le nom des machines
    $device_names = Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name | Where-Object {$_.Name -match "^GA-PC\d\d\d\d-W\d\d$"} | Select-Object -ExpandProperty Name
     
    # Initialise une table des chiffres
    $hashInt = [System.Collections.Generic.HashSet[int]]@()
    # Complète la table de chiffre
    $device_names | ForEach-Object {[void]$hashInt.Add($_.Substring(5, 4))}
     
    # Trie les chiffres
    $tmp = $hashInt | Sort-Object
     
    # Du plus petit au plus grand chiffre possible | si le chiffre n'existe pas dans notre liste | met en forme le nom
    $manquant = $tmp[0]..$tmp[-1] | Where-Object {!$hashInt.Contains($_)} | ForEach-Object {"GA-PC$(([string]$_).PadLeft(4, "0"))-W10"}
     
    # Si il y a des postes manquants
    if ($manquant)
    {
        Write-Host "Poste(s) manquant(s) :"
        $manquant
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    je vais tester.

    Aujourd'hui le plus petit est 0001 est le dernier 0704 mais dans 1 mois le nombre aura augmenter.

  9. #9
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Hello,

    Tu as testé ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    voici le script que j'ai réalisé en recupérant vos conseils:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     Add-Type -AssemblyName PresentationCore,PresentationFramework
    $numeroinitial= Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name | Select-Object Name | Sort-Object Name  | Select-Object -ExpandProperty Name -First 1
    $numerodernier=Get-ADComputer -Filter 'Name -like "GA-PC*"' -Properties Name,OperatingSystem,IPv4Address,lastLogonDate | Select-Object Name,OperatingSystem,IPv4Address,lastLogonDate | Sort-Object Name -Descending | Select-Object -ExpandProperty Name -First 1
    ">>>>>>>$($numeroinitial.Length)"
    $premier= [int]$($numeroinitial.Substring(5,4))
    $dernier=[int]$($numerodernier.Substring(5,4))
    $nbcaractere=([int]$($numeroinitial.Substring(5,4))+1).length
    $concatString="numero_pc_manquant `n"
     
    For($i=$premier;$i -le $dernier;$i++) 
    { 
    $numero=([string]$($i))
    #$numero.Length
    if ($numero.length -eq 1)
    {
    $numero="000$($i)"
    }
    elseif ($numero.length -eq 2)
    {
    $numero="00$($i)"
    }
    elseif ($numero.length -eq 3)
    {
    $numero="0$($i)"
    }
    else
    {
    $numero="$($i)"
    } 
      # Write-Output "La valeur est $($i) >>> GA-PC$numero* >>>>>>>>>>>>>>>> 'Name -like 'GA-PC$($numero)*'"
     
     
         if (Get-ADComputer -Filter "Name -like 'GA-PC$($numero)*'") 
         {
          #   Write-Output "Server object GA-PC$numero* exists in AD" 
         }
         else {
          #   Write-Output "Server object GA-PC$numero* does not exist in AD"
             $concatString = $concatString + "GA-PC$($numero)*`n "
         }
     
     
    } 
    $concatString
    $body ="$concatString`n et le dernier numero utilisé est le $numerodernier "
    [System.Windows.MessageBox]::Show($body)

Discussions similaires

  1. [XL-2013] Compteur de fichiers existants suivant une liste
    Par Walt51 dans le forum Excel
    Réponses: 2
    Dernier message: 20/02/2017, 15h02
  2. [Sharepoint 2010] Compteur de clicks sur les éléments d'une liste
    Par rohstev dans le forum Développement Sharepoint
    Réponses: 5
    Dernier message: 31/07/2015, 16h48
  3. [MySQL] Compteur sur liste avec fusion
    Par DevLqncer dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 02/08/2013, 13h37
  4. Liste avec compteur de 0
    Par azsdcv dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 17/11/2010, 18h09
  5. Liste de listes avec compteur
    Par lilly74 dans le forum Général Python
    Réponses: 3
    Dernier message: 09/03/2010, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo