Question Récupérer les contacts de l'AD

Plus d'informations
il y a 12 ans 4 mois #16197 par Matthew BETTON
Pour information, la commande 'echo' est un alias de Write-Output :

[code:1]PS>get-alias echo

CommandType Name Definition
----
Alias echo Write-Output
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 4 mois #16203 par Philippe
Bonjour daphmo


pour repondre a ta qustion

Le code me renvoie d'abord tous les contacts, puis tous les champs comment, même les vides

dans ton code ci-dessous :
[code:1]Import-Module ActiveDirectory

#$date = Get-Date # met la date dans la variable date
#$exp = $date.AddMonths(1) # Ajoute un mois à la date pour prendre tout ce qui est entre aujourd'
hui et un mois de plus


$test = Get-ADObject -Filter 'ObjectClass -eq \"contact\" ' -Properties comment, whencreated
echo $test

$toto1 = $test|Select-object -property \"comment\"

echo toto $toto1

write-host TOTO[/code:1]tu faire un premier echo $test qui t'affiche le liste des contact (dans $test)
puis un deuxieme echo qui affiche liste des comment (dans $toto1)
tu n'a fait aucun filtre pour les champs vide !!


pour revenir ta demande initiale, il te faut convertir le champs comment en date puis la comparer a la date du jour
un debut de code non tester, desoler j'ai peu de temps aujoudhui
[code:1]$datedujour = get-date
Get-ADObject -Filter 'ObjectClass -eq \"contact\" ' -Properties comment |
where { ([datetime]::«»ParseExact($_.comment, \"dd/MM/yyyy\", $null)) -gt $datedujour} | select name, comment
[/code:1]

test et tiens nous au courant<br><br>Message édité par: 6ratgus, à: 28/10/13 17:14

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 4 mois #16204 par daphmo
Réponse de daphmo sur le sujet Re:Récupérer les contacts de l'AD
Merci pour ta réponse !

Je suis en train de travailler sur la conversion des attributs comment en date et de les comparer avec la date du jour (petit bidouillage)
[code:1]$a = \&quot;26/11/2013\&quot;
$str = [regex]::Replace($a, \&quot;(\w)(\w)(/)(\w)(\w)(/)(\w)(\w)(\w)(\w)\&quot;, '$3$4$1$2/$7$8$9$10')
#$a2 = \&quot;11/26/2013\&quot;
#$Date = 25/01/2011
echo str $str
$b = [datetime]$str
$c = [string]$b

$mois = $c -le $exp #date sélectionnée plus petite que date dans un mois
echo $mois

$mois2 = $c -ge $date # date sélectionnée plus grande que la date du jour
echo $mois2

if($c -le $exp -eq $true -and $c -ge $date -eq $true) {
echo \&quot;date : $a\&quot;
}
[/code:1]

Mais je me rends qu'avec cette solution je n'arrive plus à récupérer le contact à qui appartient la date d'expiration...

Je pense qu'il faudrait que je convertisse d'abord les dates puis que je compare la date convertie au lieu de d'abord récupérer et après convertir. Au final, j'aimerai pouvoir récupérer tous les contacts qui expirent dans le mois à venir.

Je vais travailler là-dessus et regarder ton bout de code. Merci encore !:)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 4 mois #16205 par Philippe
j'ai regarder ici pour la conversion de la date
c'est plus simple que la conversion que tu a choisi mais qui est tout a fait possible

j'ai fait un rapide test
mon code fonctionne et est utilisable
tu n'a que la redirection vers un fichier ou autre a faire

petite explication :

[code:1]$datedujour = get-date[/code:1]
ici je recupere la date du jour

[code:1]Get-ADObject -Filter 'ObjectClass -eq \&quot;contact\&quot; ' -Properties comment [/code:1]
déjà vu : recup tous les contacts

[code:1] | where {[/code:1]
tu connais : via le pipe envoie les contact au where

[code:1]([datetime]::«»ParseExact($_.comment, \&quot;dd/MM/yyyy\&quot;, $null))[/code:1]
ici parseexact converti le string au format date

[code:1] -gt $datedujour}[/code:1]
le where compare a la date du jour et garde (laisse passer) celle supérieur ou egal

[code:1] | select name, comment[/code:1]
demande de n'afficher que le champs name et comment

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 4 mois #16206 par daphmo
Réponse de daphmo sur le sujet Re:Récupérer les contacts de l'AD
Merci beaucoup pour ton message, ça m'a beaucoup aidé !

J'ai apporté une modification pour que la date soit comprise entre la date du jour et la date du jour + un mois :

[code:1]([datetime]:: ParseExact($_.comment, \&quot;dd/MM/yyyy\&quot;, $null)) -gt $datedujour -and ([datetime]::«»ParseExact($_.comment, \&quot;dd/MM/yyyy\&quot;, $null)) -le $exp} | select name, comment[/code:1]

Bon, en retour, j'ai bien les dates et le nom des contacts, mais aussi quelques erreurs, je vais essayer de voir d'où ça vient

[code:1]Exception lors de l'appel de « ParseExact » avec « 3 » argument(s) : « La chaîne n'a pas été reconnue en tant que DateTime valide. »
Au caractère C:\Users\dmoebs\Desktop\test2.ps1:7 : 1
+ ([datetime]:: ParseExact($_.comment, \&quot;dd/MM/yyyy\&quot;, $null)) -gt $datedujour -and ( ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException

Wayne Shih-Wei HUANG 01/11/2013
An Jen LIN 01/11/2013
Exception lors de l'appel de « ParseExact » avec « 3 » argument(s) : « La chaîne n'a pas été reconnue en tant que DateTime valide. »
Au caractère C:\Users\dmoebs\Desktop\test2.ps1:7 : 1
+ ([datetime]:: ParseExact($_.comment, \&quot;dd/MM/yyyy\&quot;, $null)) -gt $datedujour -and ( ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException[/code:1]<br><br>Message édité par: daphmo, à: 29/10/13 09:57

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 4 mois #16207 par Philippe
salut daphmo

j'ai pas le meme message d'erreur mais ton erreur semble venir de l'espace entre \&quot;::\&quot; et \&quot;ParseExact\&quot;

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.053 secondes
Propulsé par Kunena