Question
Tableau 2 dimensions
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 3 mois #3520
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
Salut,
la ligne suivante n'est tout compte fait pas nécessaire :
[code:1]
$Type=$CompList[0].GetType()
[/code:1]
La syntaxe nécessite bien le signe dollar, c'est une erreur de ma part :
[code:1]
$Tab[$Index]=@{ ...
[/code:1]
Bien qu'ici l'unicité soit respecté, l'opérateur like peut renvoyer plusieurs objets.
Pour accélérer la recherche tu peux peut-être utiliser la méthode IndexOf ou Contains de la classe SearchResultCollection.
En suivant les conseils de MSDN, en fin de traitement, il faut libérer manuellement les ressources de la collection :
msdn.microsoft.com/fr-fr/library/system.....findall(VS.80).aspx
[code:1]
$complistgoudurix.Dispose()
$complistkeskonrix.Dispose()
$complistramollix.Dispose()
[/code:1]
Pour info le regroupement des données peut peut-être se faire avec le cmdlet Group, enfin à vérifier.<br><br>Message édité par: Laurent Dardenne, à: 19/12/08 15:52
la ligne suivante n'est tout compte fait pas nécessaire :
[code:1]
$Type=$CompList[0].GetType()
[/code:1]
La syntaxe nécessite bien le signe dollar, c'est une erreur de ma part :
[code:1]
$Tab[$Index]=@{ ...
[/code:1]
Bien qu'ici l'unicité soit respecté, l'opérateur like peut renvoyer plusieurs objets.
Pour accélérer la recherche tu peux peut-être utiliser la méthode IndexOf ou Contains de la classe SearchResultCollection.
En suivant les conseils de MSDN, en fin de traitement, il faut libérer manuellement les ressources de la collection :
msdn.microsoft.com/fr-fr/library/system.....findall(VS.80).aspx
[code:1]
$complistgoudurix.Dispose()
$complistkeskonrix.Dispose()
$complistramollix.Dispose()
[/code:1]
Pour info le regroupement des données peut peut-être se faire avec le cmdlet Group, enfin à vérifier.<br><br>Message édité par: Laurent Dardenne, à: 19/12/08 15:52
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clem
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 17 ans 3 mois #3523
par clem
Réponse de clem sur le sujet Re:Tableau 2 dimensions
Ca fonctionne bien, me reste juste à implementer la recherche de la date la plus récente.
Merci de ton aide, je tacherai d'etre plus precis à l'avenir
<br><br>Message édité par: clem, à: 19/12/08 15:23
Merci de ton aide, je tacherai d'etre plus precis à l'avenir
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 3 mois #3524
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
clem écrit:
clem écrit:
clem écrit:
Mieux vaut peut être dans ce cas ne mémoriser qu'une seule date, la plus récente. C'est à dire que tu intègres la comparaison de la date dans les itérations, ainsi en fin de traitement ton info est disponible directement. Les dates de logon les plus anciennes n'étant pas utilisés, enfin si j'ai bien compris.me reste juste à implementer la recherche de la date la plus récente.
clem écrit:
De rien.Merci de ton aide,
clem écrit:
Et moi d'arrondir mes anglesje tacherai d'etre plus precis à l'avenir
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clem
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 17 ans 2 mois #3541
par clem
Réponse de clem sur le sujet Re:Tableau 2 dimensions
Laurent Dardenne écrit:
Oui, effectivement, je vais suivre ce conseil.
Par contre comment implémenter IndexOf ou Contains de la classe SearchResultCollection ?
Pour info sur ce lien que j'ai trouvé sur le forum (il me semble!)
www.microsoft.com/technet/scriptcenter/t...winpsh/searchad.mspx
Il est indiqué,pour les requetes lourdes(sur tous les users du domaine par exemple),comment récuperer seulement les propriétés des objets qui nous interessent (au lieu de toutes par defaut)
Par exemple :
[code:1]#requete de tous les users sur le premier DC
$de = new-object system.directoryservices.directoryentry (\"LDAP://$dcgoudurix/dc=mondomaine,dc=fr\"«»)
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$colProplist = \"name\",\"lastlogon\",\"mail\" #etc...
foreach ($i in $colPropList){$ads.PropertiesToLoad.Add($i)}
$complistgoudurix = $ads.findall()[/code:1]
Ce qui accèlere la requete et soulage le réseaux<br><br>Message édité par: clem, à: 21/12/08 21:18
Mieux vaut peut être dans ce cas ne mémoriser qu'une seule date, la plus récente.
Oui, effectivement, je vais suivre ce conseil.
Par contre comment implémenter IndexOf ou Contains de la classe SearchResultCollection ?
Pour info sur ce lien que j'ai trouvé sur le forum (il me semble!)
www.microsoft.com/technet/scriptcenter/t...winpsh/searchad.mspx
Il est indiqué,pour les requetes lourdes(sur tous les users du domaine par exemple),comment récuperer seulement les propriétés des objets qui nous interessent (au lieu de toutes par defaut)
Par exemple :
[code:1]#requete de tous les users sur le premier DC
$de = new-object system.directoryservices.directoryentry (\"LDAP://$dcgoudurix/dc=mondomaine,dc=fr\"«»)
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$colProplist = \"name\",\"lastlogon\",\"mail\" #etc...
foreach ($i in $colPropList){$ads.PropertiesToLoad.Add($i)}
$complistgoudurix = $ads.findall()[/code:1]
Ce qui accèlere la requete et soulage le réseaux<br><br>Message édité par: clem, à: 21/12/08 21:18
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 2 mois #3546
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
Je pensais à qq chose comme ceci :
[code:1]
$date=Get-UTCAge $user_goudurix.properties.item(\"lastlogon\"«»)[0]
$idx=$complistkeskonrix.IndexOf($user_goudurix)
if ($Idx -ge 0)
{
$Current=Get-UTCAge $complistkeskonrix[$Idx].properties.item(\"lastlogon\"«»)[0]
if ([System.DateTime]::Compare($Date,$Current ) -eq -1)
{ # $Current est > à $Date
$Date=$Current
}
}
#ou
if ($complistkeskonrix.IndexOf($user_goudurix.properties.name) -ge 0)
...
[/code:1]
C'est à tester donc, de plus j'ai un doute sur le type de l'objet à lui passer :/
Je pensais que cela serait plus simple...
[code:1]
$date=Get-UTCAge $user_goudurix.properties.item(\"lastlogon\"«»)[0]
$idx=$complistkeskonrix.IndexOf($user_goudurix)
if ($Idx -ge 0)
{
$Current=Get-UTCAge $complistkeskonrix[$Idx].properties.item(\"lastlogon\"«»)[0]
if ([System.DateTime]::Compare($Date,$Current ) -eq -1)
{ # $Current est > à $Date
$Date=$Current
}
}
#ou
if ($complistkeskonrix.IndexOf($user_goudurix.properties.name) -ge 0)
...
[/code:1]
C'est à tester donc, de plus j'ai un doute sur le type de l'objet à lui passer :/
Je pensais que cela serait plus simple...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.092 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Tableau 2 dimensions