Question
table ou hashtable
- Kaelem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 16 ans 8 mois #4892
par Kaelem
table ou hashtable a été créé par Kaelem
Salut,
je suis nouveau en prog PS.
A travers un scipt, j'essaie de récupérer la liste de mes dossiers publics sous exchange 2007.
ce que j'arrive à faire:
[code:1]
$listpf=Get-PublicFolder -Identity \"\FAX\" -recurse | ft identity
#$hashpf=@{}
#$j=0
foreach ($i in $listpf)
{
$i
#$hashpf.key$j=$i
#$j
#$j++
}
[/code:1]
Voilà ce que j'obtiens en résultat:
Identity
\Fax
\Fax\FAX 2410
\Fax\FAX Arte Info
\Fax\FAX Arte Reportage
\Fax\FAX Comité d'Entreprise
\Fax\FAX Direction de la Gestion
\Fax\FAX Direction de l'antenne
\Fax\FAX Direction de l'Information
\Fax\FAX Direction des Programmes
\Fax\FAX Documentalistes
\Fax\FAX Informatique
\Fax\FAX Présidence
\Fax\FAX Prestation accueil et livraisons
\Fax\FAX Production Arte Info
\Fax\FAX Production Thema
\Fax\FAX Programmation et Etudes d'Audiences
\Fax\FAX Secteur Achats
\Fax\FAX Secteur Continuité d'Antenne
\Fax\FAX Secteur Habillage et Promotion
\Fax\FAX Secteur Marketing et Sponsoring
\Fax\FAX Secteur Multilingue
\Fax\FAX Secteur Organisation
\Fax\FAX Secteur Prédiffusion
\Fax\FAX Secteur Presse et Relations Publiques
\Fax\FAX Secteur Rédaction Centrale des Textes
\Fax\FAX Secteur Regie Finale
\Fax\FAX Service Financier
\Fax\FAX Service Juridique
\Fax\FAX Service Linguistique
\Fax\FAX Service Multimedia
\Fax\FAX Service Ressources Humaines
\Fax\FAX Services Généraux
\Fax\FAX Technique
\Fax\FAX Technique1
\Fax\FAX Unité Cinéma
\Fax\FAX Unité Documentaires
\Fax\FAX Unité Documentaires et Magazines
\Fax\FAX Unité Fictions
\Fax\FAX Unité Spectacles
\Fax\FAX Unité Théma
\Fax\FaxMaster
J'aimerais supprimer les deux ou trois premiers éléments pour donner chaque chemin de PF à une fonction pour un quelconque traitement à venir.
Hors je n'arrive pas à manipuler le tableau.
[code:1]
$listpf=Get-PublicFolder -Identity \"\FAX\" -recurse | ft
identity
$listpf.count
][/code:1]
--> 45
[code:1]$listpf[0][/code:1]
La liste est vide alors que je peux afficher le contenu en faisant un $listpf???
[code:1]$listpf[1][/code:1]
out-lineoutput : Object reference not set to an instance of an object.
D'ailleurs, quelle est la nature de la variable $listpf?
Merci d'avance pour votre aide.
Merci d'avance pour votre aide, Kaelem<br><br>Message édité par: Kaelem, à: 30/06/09 17:10
je suis nouveau en prog PS.
A travers un scipt, j'essaie de récupérer la liste de mes dossiers publics sous exchange 2007.
ce que j'arrive à faire:
[code:1]
$listpf=Get-PublicFolder -Identity \"\FAX\" -recurse | ft identity
#$hashpf=@{}
#$j=0
foreach ($i in $listpf)
{
$i
#$hashpf.key$j=$i
#$j
#$j++
}
[/code:1]
Voilà ce que j'obtiens en résultat:
Identity
\Fax
\Fax\FAX 2410
\Fax\FAX Arte Info
\Fax\FAX Arte Reportage
\Fax\FAX Comité d'Entreprise
\Fax\FAX Direction de la Gestion
\Fax\FAX Direction de l'antenne
\Fax\FAX Direction de l'Information
\Fax\FAX Direction des Programmes
\Fax\FAX Documentalistes
\Fax\FAX Informatique
\Fax\FAX Présidence
\Fax\FAX Prestation accueil et livraisons
\Fax\FAX Production Arte Info
\Fax\FAX Production Thema
\Fax\FAX Programmation et Etudes d'Audiences
\Fax\FAX Secteur Achats
\Fax\FAX Secteur Continuité d'Antenne
\Fax\FAX Secteur Habillage et Promotion
\Fax\FAX Secteur Marketing et Sponsoring
\Fax\FAX Secteur Multilingue
\Fax\FAX Secteur Organisation
\Fax\FAX Secteur Prédiffusion
\Fax\FAX Secteur Presse et Relations Publiques
\Fax\FAX Secteur Rédaction Centrale des Textes
\Fax\FAX Secteur Regie Finale
\Fax\FAX Service Financier
\Fax\FAX Service Juridique
\Fax\FAX Service Linguistique
\Fax\FAX Service Multimedia
\Fax\FAX Service Ressources Humaines
\Fax\FAX Services Généraux
\Fax\FAX Technique
\Fax\FAX Technique1
\Fax\FAX Unité Cinéma
\Fax\FAX Unité Documentaires
\Fax\FAX Unité Documentaires et Magazines
\Fax\FAX Unité Fictions
\Fax\FAX Unité Spectacles
\Fax\FAX Unité Théma
\Fax\FaxMaster
J'aimerais supprimer les deux ou trois premiers éléments pour donner chaque chemin de PF à une fonction pour un quelconque traitement à venir.
Hors je n'arrive pas à manipuler le tableau.
[code:1]
$listpf=Get-PublicFolder -Identity \"\FAX\" -recurse | ft
identity
$listpf.count
][/code:1]
--> 45
[code:1]$listpf[0][/code:1]
La liste est vide alors que je peux afficher le contenu en faisant un $listpf???
[code:1]$listpf[1][/code:1]
out-lineoutput : Object reference not set to an instance of an object.
D'ailleurs, quelle est la nature de la variable $listpf?
Merci d'avance pour votre aide.
Merci d'avance pour votre aide, Kaelem<br><br>Message édité par: Kaelem, à: 30/06/09 17:10
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 16 ans 8 mois #4896
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:table ou hashtable
Kaelem écrit:
[code:1]$listpf.GetType()[/code:1]
Kaelem écrit:
Pas certain que cela soit un tableau, essaie d'y accèder à l'aide d'un possible énumérateur ( $listpf est au moins une collection) :
[code:1]$listpf.GetEnumerator()|% {$_}[/code:1]
En passant peux-tu corriger la balise code erroné dans ton précédent message ?
Pour afficher le typeD'ailleurs, quelle est la nature de la variable $listpf?
[code:1]$listpf.GetType()[/code:1]
Kaelem écrit:
A prioris non puisque que sa propriété Count renvoi 45.La liste est vide alors que je peux afficher le contenu en faisant un $listpf?
Pas certain que cela soit un tableau, essaie d'y accèder à l'aide d'un possible énumérateur ( $listpf est au moins une collection) :
[code:1]$listpf.GetEnumerator()|% {$_}[/code:1]
En passant peux-tu corriger la balise code erroné dans ton précédent message ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Kaelem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 16 ans 8 mois #4899
par Kaelem
Réponse de Kaelem sur le sujet Re:table ou hashtable
[code:1][PS] C:\scripts\PF>$listpf.GetType()
IsPublic IsSerial Name BaseType
----
True True Object[] System.Array
[/code:1]
donc c'est un tableau.
IsPublic IsSerial Name BaseType
----
True True Object[] System.Array
[/code:1]
donc c'est un tableau.
Connexion ou Créer un compte pour participer à la conversation.
- Kaelem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 16 ans 8 mois #4900
par Kaelem
Réponse de Kaelem sur le sujet Re:table ou hashtable
[code:1]
$listpf.GetEnumerator() | % {$_}
[/code:1]
Resultat:
Identity
\Fax
\Fax\FAX 2410
\Fax\FAX Arte Info
\Fax\FAX Arte Reportage
\Fax\FAX Comité d'Entreprise
\Fax\FAX Direction de la Gestion
\Fax\FAX Direction de l'antenne
\Fax\FAX Direction de l'Information
\Fax\FAX Direction des Programmes
\Fax\FAX Documentalistes
\Fax\FAX Informatique
\Fax\FAX Présidence
\Fax\FAX Prestation accueil et livraisons
\Fax\FAX Production Arte Info
\Fax\FAX Production Thema
\Fax\FAX Programmation et Etudes d'Audiences
\Fax\FAX Secteur Achats
\Fax\FAX Secteur Continuité d'Antenne
\Fax\FAX Secteur Habillage et Promotion
\Fax\FAX Secteur Marketing et Sponsoring
\Fax\FAX Secteur Multilingue
\Fax\FAX Secteur Organisation
\Fax\FAX Secteur Prédiffusion
\Fax\FAX Secteur Presse et Relations Publiques
\Fax\FAX Secteur Rédaction Centrale des Textes
\Fax\FAX Secteur Regie Finale
\Fax\FAX Service Financier
\Fax\FAX Service Juridique
\Fax\FAX Service Linguistique
\Fax\FAX Service Multimedia
\Fax\FAX Service Ressources Humaines
\Fax\FAX Services Généraux
\Fax\FAX Technique
\Fax\FAX Technique1
\Fax\FAX Unité Cinéma
\Fax\FAX Unité Documentaires
\Fax\FAX Unité Documentaires et Magazines
\Fax\FAX Unité Fictions
\Fax\FAX Unité Spectacles
\Fax\FAX Unité Théma
Mais comment parcourir le tableau, c'est ce que je n'arrive pas à faire.
Pour le première élément du tableau il ne me renvoie rien mais pas de message d'erreur:
[code:1]
$listpf[0]
[/code:1]
Alors que pour un autre élément:
[code:1]
$listpf[1]
[/code:1]
--> out-lineoutput : Object reference not set to an instance of an object.
[code:1]
$listpf[10]
[/code:1]
--> out-lineoutput : Object of type \"Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData\" is not legal or not in
the correct sequence. This is likely caused by a user-specified \"format-*\" command which is conflicting with the defaul
t formatting.
Même la méthode GetValue(x) ne renvoie rien???
$listpf.GetEnumerator() | % {$_}
[/code:1]
Resultat:
Identity
\Fax
\Fax\FAX 2410
\Fax\FAX Arte Info
\Fax\FAX Arte Reportage
\Fax\FAX Comité d'Entreprise
\Fax\FAX Direction de la Gestion
\Fax\FAX Direction de l'antenne
\Fax\FAX Direction de l'Information
\Fax\FAX Direction des Programmes
\Fax\FAX Documentalistes
\Fax\FAX Informatique
\Fax\FAX Présidence
\Fax\FAX Prestation accueil et livraisons
\Fax\FAX Production Arte Info
\Fax\FAX Production Thema
\Fax\FAX Programmation et Etudes d'Audiences
\Fax\FAX Secteur Achats
\Fax\FAX Secteur Continuité d'Antenne
\Fax\FAX Secteur Habillage et Promotion
\Fax\FAX Secteur Marketing et Sponsoring
\Fax\FAX Secteur Multilingue
\Fax\FAX Secteur Organisation
\Fax\FAX Secteur Prédiffusion
\Fax\FAX Secteur Presse et Relations Publiques
\Fax\FAX Secteur Rédaction Centrale des Textes
\Fax\FAX Secteur Regie Finale
\Fax\FAX Service Financier
\Fax\FAX Service Juridique
\Fax\FAX Service Linguistique
\Fax\FAX Service Multimedia
\Fax\FAX Service Ressources Humaines
\Fax\FAX Services Généraux
\Fax\FAX Technique
\Fax\FAX Technique1
\Fax\FAX Unité Cinéma
\Fax\FAX Unité Documentaires
\Fax\FAX Unité Documentaires et Magazines
\Fax\FAX Unité Fictions
\Fax\FAX Unité Spectacles
\Fax\FAX Unité Théma
Mais comment parcourir le tableau, c'est ce que je n'arrive pas à faire.
Pour le première élément du tableau il ne me renvoie rien mais pas de message d'erreur:
[code:1]
$listpf[0]
[/code:1]
Alors que pour un autre élément:
[code:1]
$listpf[1]
[/code:1]
--> out-lineoutput : Object reference not set to an instance of an object.
[code:1]
$listpf[10]
[/code:1]
--> out-lineoutput : Object of type \"Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData\" is not legal or not in
the correct sequence. This is likely caused by a user-specified \"format-*\" command which is conflicting with the defaul
t formatting.
Même la méthode GetValue(x) ne renvoie rien???
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 16 ans 8 mois #4901
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:table ou hashtable
Aprés réflexion ton problème provient de l'usage du cmdlet Format-Table.
Son objectif est de préparer les données pour un affichage, l'objet que tu récupéres n'a donc rien à voir avec les données que tu souhaites récupérer.
[code:1]
#Une seule instance
$ObjetWMI = Get-WmiObject \"Win32_MotherboardDevice\"|ft
$ObjetWMI[0]
#ras
$ObjetWMI[1]
#out-lineoutput : La référence d'objet n'est pas
#définie à une instance d'un objet.
#
$ObjetWMI = Get-WmiObject \"Win32_MotherboardDevice\"
$ObjetWMI[0]
Impossible d'indexer dans un objet de type System.Management.ManagementObject.
Au niveau de ligne : 1 Caractère : 11
+ $ObjetWMI[0 <<<< ]
[/code:1]
Tu récupéres donc un objet de formatage qui contient une liste de données provenant de Get-Folder :
[code:1]
PS G:\PS\ConvertForm> $ObjetWMI[0].GetType()
IsPublic IsSerial Name BaseType
----
False False FormatStartData Microsoft.PowerShell.Commands.Internal.Format.StartData
[/code:1]
Construit ainsi, $listpf est préparé pour de multiple affichage, mais pas pour manipuler la collection de données récupéré, tu manipules donc une vue.<br><br>Message édité par: Laurent Dardenne, à: 30/06/09 18:42
Son objectif est de préparer les données pour un affichage, l'objet que tu récupéres n'a donc rien à voir avec les données que tu souhaites récupérer.
[code:1]
#Une seule instance
$ObjetWMI = Get-WmiObject \"Win32_MotherboardDevice\"|ft
$ObjetWMI[0]
#ras
$ObjetWMI[1]
#out-lineoutput : La référence d'objet n'est pas
#définie à une instance d'un objet.
#
$ObjetWMI = Get-WmiObject \"Win32_MotherboardDevice\"
$ObjetWMI[0]
Impossible d'indexer dans un objet de type System.Management.ManagementObject.
Au niveau de ligne : 1 Caractère : 11
+ $ObjetWMI[0 <<<< ]
[/code:1]
Tu récupéres donc un objet de formatage qui contient une liste de données provenant de Get-Folder :
[code:1]
PS G:\PS\ConvertForm> $ObjetWMI[0].GetType()
IsPublic IsSerial Name BaseType
----
False False FormatStartData Microsoft.PowerShell.Commands.Internal.Format.StartData
[/code:1]
Construit ainsi, $listpf est préparé pour de multiple affichage, mais pas pour manipuler la collection de données récupéré, tu manipules donc une vue.<br><br>Message édité par: Laurent Dardenne, à: 30/06/09 18:42
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.061 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- table ou hashtable