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 :

Erreur de liaison sur objet


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Erreur de liaison sur objet
    Bonjour j'ai essayé de combiner 2 script, une bonne partie fonctionne mais l'essentiel ne fait pas ce qui devrait être

    J'ai mis en rouge les éléments du scrip qui causent problème...

    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
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #Importation du module AD pour powershell
    Import-Module ActiveDirectory
    #Get Date
    $date = Get-Date
    #Get Computers in a specific OU from AD
    $systems = Get-ADComputer -SearchBase 'OU=ordinateurs,OU=001,OU=etablissements,dc=XXX,dc=XXXXX,dc=XX,dc=XX'-Server 'XXX.XXXXX.XX.XX' -filter * -Properties LastLogonDate,Name,Description,Created|
    #Filter such as last login and 180 days
    Where-Object {$_.LastLogonDate -lt $date.AddDays(-180)}|
    #Where-Object {$_.Created -lt $date.AddDays(-180)}| 
    #Display in a grid View for selection
    Select LastLogonDate,Name,Created,Description,DNSHostName,Enabled| out-gridview -PassThru -Title "Recherche des PC"
     
        # If PC have not been selected write warning in host
        if (!$systems)
        {
            Write-Warning "Aucun PC en liste."
        }
        Else
        {
            # Display PC names
    		
            Write-Warning "Choix en cours:"
     
            $systems | ft -wrap -auto
     
            # Confirm if you want to proceed
            Write-Host -nonewline "Effectuer les modifications? (O/N): "
            $Response = Read-Host
            Write-Host " "
     
                # If response was different that Y script will end
                If ( $Response -ne "O" )
                { 
    				
                    Write-Warning "Fin du Script."      
                }
                Else
                {
    			$results = @() 
    			
          foreach($computer in $systems)
          {
             $results += $computer | select-object Name, OperatingSystem, DistinguishedName, LastLogonTimeStamp
             $computer | disable-ADaccount
             #$computer | Set-ADComputer -Description "Desactiver le $date. Peut-être supprimé après $expiryDate"
             #$computer | move-ADobject -targetpath  "OU=Anciens PC, DC=XXX, DC=XXXXX,DC=XX, DC=XX"
             Write-Host "$computer"
    		 Write-Warning "...est rendu dans le OU correspondant."
          }
    
          $dateForFilename = $date.ToShortDateString() | foreach {$_ -replace "/", ""}
          $results | export-csv "C:\users\XXXXX\desktop\$dateForFilename - Inactive Computers Check.csv" -NoTypeInformation
    
       }
     }
    J'arrive avec l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Effectuer les modifications? (O/N): o
     
    disable-ADaccount : L'objet d'entrée ne peut être lié à aucun paramètre de la commande, soit parce que cette commande n'accepte pas 
    l'entrée de pipeline, soit parce que l'entrée et ses propriétés ne correspondent à aucun des paramètres qui acceptent l'entrée de 
    pipeline.
    Au caractère C:\Users\XXX\Desktop\script\working12.ps1:44 : 22
    +          $computer | disable-ADaccount
    +                      ~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument : (@{LastLogonDate...; Enabled=True}:PSObject) [Disable-ADAccount], ParameterBindingEx 
       ception
        + FullyQualifiedErrorId : InputObjectNotBound,Microsoft.ActiveDirectory.Management.Commands.DisableADAccount
     
    @{LastLogonDate=02/06/2015 13:10:08; Name=XXX-2UA7451413; Created=08/27/2014 15:40:03; Description=; DNSHostName=XXX-2UA7451413.domain.com; Enabled=True}
    AVERTISSEMENT*: ...est rendu dans le OU correspondant.
    J'ai commenté $computer | Set-ADComputer et #$computer | move-ADobject -targetpath "OU=Anciens PC, DC=XXX, DC=XXXXX,DC=XX, DC=XX" parce que juste le disable-ADaccount ne fonctionne pas.

    L'erreur est la liaison sur l'objet $computer?

    Une petite info vers ou orienter mon dépannage m'aiderais

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bon il semble qu'à la ligne 11 je ne peux faire un affichage avec des critères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select LastLogonDate,Name,Created,Description,DNSHostName,Enabled| out-gridview -PassThru -Title "Recherche des PC"
    Je n'ai fais qu'enlever LastLogonDate,Name,Created,Description,DNSHostName,Enabled
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select | out-gridview -PassThru -Title "Recherche des PC"
    Et l'ensemble du script fonctionne...

    J'aurais aimé avec le LastLogonDate en primier dans la grille

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut
    Bonjour,

    Première question as-tu compris le message d'erreur et as-tu compris ce que faisait a commande "$computer | Disable-ADAccount" ?

    Pour t'aider, consulte la page de documentation sur Disable-ADAccount.

    En fait, si j'ai compris ta problématique, tu désire parcourir l'ensemble des comptes ordinateurs trouvé dans ton AD correspondant a tes critères et de désactiver ces comptes.

    Il te suffit pour cela d'utiliser la commande Disable-ADAccount et de renseigner son paramètre obligatoire -Identity avec une valeur permettant d'identifier ton objet.

    Une des propriétés que tu peux utiliser est DistinguishedName qui te permet d'identifier de manière unique un objet dans l'AD.

    Tu peux utiliser la commande Get-Member pour connaître les propriétés d'un objet PowerShell.

    Par contre, je note que lors de l'initialisation de ta variable $systems, tu filtres les propriétés que tu désires conserver. Il faudrait que tu ajoutes la propriété DistinguishedName à ton Select.

    Et ainsi, tu pourrais écrire ta ligne 44 de la manière suivante:
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Disable-ADAccount -Identity $computer.DistinguishedName

    Tu pourras aussi modifier les lignes suivantes que tu as commentées en utilisant cette écriture.

    Salutations.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut
    Bonjour,

    Navré, je n'avais pas fait attention à ton deuxième message.

    Au lieu d'ajouter la propriété DistinguishedName dans ton Select qui perturbera l'affichage de Out-GridView.
    Tu peux essayer d'appeler la commande Disable-ADAccount avec la propriété Name de ta variable $computer, je crois que cette valeur doit aussi être unique dans l'AD (à vérifier).
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Disable-ADAccount -Identity $computer.Name

    Salutations.

Discussions similaires

  1. [WD15] erreur d'intégrité sur table de liaison
    Par heiti dans le forum WinDev
    Réponses: 2
    Dernier message: 05/06/2010, 15h35
  2. [AJAX] Erreur en ajax sur un objet
    Par optixpro dans le forum AJAX
    Réponses: 1
    Dernier message: 25/03/2010, 12h52
  3. Réponses: 3
    Dernier message: 04/06/2008, 17h39
  4. Réponses: 2
    Dernier message: 04/06/2008, 13h21
  5. Erreur 360 sur objet déjà chargé
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/10/2007, 12h12

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