Question
Récupérer les contacts de l'AD
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 12 ans 4 mois #16197
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Récupérer les contacts de l'AD
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]
[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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 4 mois #16203
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer les contacts de l'AD
Bonjour daphmo
pour repondre a ta qustion
[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
pour repondre a ta qustion
dans ton code ci-dessous :Le code me renvoie d'abord tous les contacts, puis tous les champs comment, même les vides
[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.
- daphmo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
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 = \"26/11/2013\"
$str = [regex]::Replace($a, \"(\w)(\w)(/)(\w)(\w)(/)(\w)(\w)(\w)(\w)\", '$3$4$1$2/$7$8$9$10')
#$a2 = \"11/26/2013\"
#$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 \"date : $a\"
}
[/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 !
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 = \"26/11/2013\"
$str = [regex]::Replace($a, \"(\w)(\w)(/)(\w)(\w)(/)(\w)(\w)(\w)(\w)\", '$3$4$1$2/$7$8$9$10')
#$a2 = \"11/26/2013\"
#$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 \"date : $a\"
}
[/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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 4 mois #16205
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer les contacts de l'AD
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 \"contact\" ' -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, \"dd/MM/yyyy\", $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
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 \"contact\" ' -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, \"dd/MM/yyyy\", $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.
- daphmo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
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, \"dd/MM/yyyy\", $null)) -gt $datedujour -and ([datetime]::«»ParseExact($_.comment, \"dd/MM/yyyy\", $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, \"dd/MM/yyyy\", $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, \"dd/MM/yyyy\", $null)) -gt $datedujour -and ( ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException[/code:1]<br><br>Message édité par: daphmo, à: 29/10/13 09:57
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, \"dd/MM/yyyy\", $null)) -gt $datedujour -and ([datetime]::«»ParseExact($_.comment, \"dd/MM/yyyy\", $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, \"dd/MM/yyyy\", $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, \"dd/MM/yyyy\", $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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 4 mois #16207
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer les contacts de l'AD
salut daphmo
j'ai pas le meme message d'erreur mais ton erreur semble venir de l'espace entre \"::\" et \"ParseExact\"
j'ai pas le meme message d'erreur mais ton erreur semble venir de l'espace entre \"::\" et \"ParseExact\"
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Récupérer les contacts de l'AD