PowerShell et XML

Généralement les tutoriaux sur PowerShell débutent par présenter les types de données, les boucles, etc. C’est certainement une bonne méthode.

Dans ce cours dirigé, qui s’étale sur plusieurs articles, vous apprendrez plutôt à lire un fichier XML avec un script PowerShell. Le même script servira pour alimenter une liste personnalisée dans SharePoint.

Support du format XML par PowerShell

PowerShell supporte directement le XML. A partir d’un exemple simple inspiré du http://refcardz.dzone.com, vous allez découvrir à quel point le traitement est facilité.

Dans une invite Powershell, créez une variable typée XML, intitulée $monXML:

# Crée un objet XML
$monXML =[xml] « <Acheteur nom=’pom pom pom pom’><Quantité>9</Quantité><Fruit>POMMES</Fruit></Acheteur> »

La lecture d’une valeur d’un noeud se fait en indiquant le chemin complet jusqu’au noeud visé.

Le chemin complet se construit en concaténant les noeuds intermédiaires et en utilisant le point (« . ») comme séparateur.

Par exemple, pour obtenir la quantité, il suffit d’indiquer le chemin complet jusqu’au noeud Quantité.

# Donne la valeur du noeud Quantité
write-host -foregroundcolor yellow $monXML.Acheteur.Quantité

Résultat : 9

Pour obtenir le fruit, il suffit d’indiquer le chemin complet du noeud:

# Donne la valeur du noeud Fruit
write-host -foregroundcolor yellow $monXML.Acheteur.Fruit

Résultat : POMMES

Vous pourriez écrire encore plus simplement:

# Donne la valeur du noeud Quantité
$monXML.Acheteur.Quantité

et

# Donne la valeur du noeud Fruit
$monXML.Acheteur.Fruit

powershell-xml-simple

Désactiver l’accès anonyme aux pages Allitems.aspx et EditForm.aspx

En fait, il s’agit d’une question posée lors de l’examen 70-667 – TS: Microsoft SharePoint 2010, Configuring.

Vous pouvez vous préparer à cette certification, qui conduit à la certification Microsoft Certified IT Professional (MCITP), avec le livre de Dan Holme, Alastair Matthews, Bob Castle et Orin Thomas: MCTS Self-Paced Training Kit (Exam 70-667): Configuring Microsoft Sharepoint 2010.

Pour revenir à la question de départ: si vous ne prenez pas garde, les utilisateurs anonymes d’Internet peuvent demander d’afficher la page http://www.mw41.ff/(…)/AllItems.aspx, qui affiche tout le contenu du site SharePoint.

Afin d’éviter que les utilisateurs anonymes accèdent à la page Allitems.aspx, ainsi qu’EditForm.aspx, il existe la fonctionnalité ViewFormsPagesLockdown. Si vous voulez faire en sorte que les utilisateurs anonymes ne puissent pas accéder à ces pages, exécutez la commande stsadm suivante:
stsadm.exe –o activatefeature –url http://www.mw41.ff/ -filename ViewFormPagesLockdownfeature.xml

Si vous préférez utiliser PowerShell, vous déterminerez si la fonctionnalité est activée avec la cmdlet usuelle: get-spfeature -site http://www.mw41.ff/. Si la fonctionnalité ViewFormPagesLockDown n’apparaît pas, c’est qu’elle n’est pas activée.

Pour l’activer en PowerShell:
$lockdown = get-spfeature ViewFormPagesLockdown
enable-spfeature $lockdown -url http://www.mw41.ff/

Que ce soit avec stsadm ou PowerShell, si l’accès anonyme est activé, vous aurez besoin de le désactiver, puis de l’activer à nouveau.

Dans SharePoint 2010, la fonctionnalité ViewFormPagesLockDown est activée par défaut sur les portails de publication.

Activer l’accès anonyme dans SharePoint 2010

Lors d’une formation récente, un stagiaire n’arrivait plus à se rappeler comment activer l’accès anonyme dans SharePoint 2010 alors qu’il était censé le savoir…

D’où, l’idée de ce petit mémo sous forme d’une procédure:

  1. Cliquez sur Démarrer puis Tous les programmes : la liste des programmes installés apparaît.
  2. Sous Microsoft SharePoint 2010 Products, cliquez sur Administration centrale de SharePoint 2010: patientez plusieurs secondes pour que la page d’accueil de l’Administration centrale s’ouvre.
  3. Sous Gestion des applications, cliquez sur Gérer les applications Web: la liste des applications Web s’affiche.
  4. Cliquez sur l’application Web dont l’accès sera anonyme pour la sélectionner.
  5. Ensuite sur le ruban, dans le groupe Sécurité, cliquez sur Fournisseurs d’authentification: la boîte de dialogue Fournisseurs d’authentification s’ouvre.
  6. Dans cette boîte, cliquez sur la zone Par défaut : la boîte de dialogue Modifier l’authentification s’ouvre.
  7. Dans la boîte de dialogue Modifier l’authentification, cochez la case Activer l’accès anonyme puis cliquez sur le bouton Enregistrer pour sauvegarder vos modifications.
  8. Fermez la boîte de dialogue Fournisseurs d’authentification: la page Gestion des applications Web apparaît donc à nouveau.
  9. L’accès anonyme a été ouvert mais il peut être nécessaire de préciser les éventuelles restrictions d’accès sur le site. Pour cela, sur le ruban de cet écran, dans le groupe Stratégie, cliquez sur  Stratégie anonyme : la boîte de dialogue Restrictions d’accès anonyme s’ouvre.
  10. Éventuellement, spécifiez  une stratégie de l’utilisateur anonyme à mettre en place :  Aucun – Aucune stratégie, Refuser l’écriture – Pas d’accès en écriture ou Refuser tout – Aucun accès. Cliquez sur Aucun – Aucune stratégie, qui est la proposition par défaut, puis cliquez sur le bouton Enregistrer. Ainsi les utilisateurs anonymes pourront aussi bien lire qu’écrire sur le site web.
  11. Bien que l’accès anonyme ait été ouvert au niveau de l’application web, il vous reste à spécifier les sites autorisés aux utilisateurs anonymes. En effet, vous pourriez souhaiter que seuls certains sites soient ouverts à l’accès anonyme mais pas tous. Aussi, sur un site dont vous voulez rendre l’accès anonyme, cliquez sur Actions du site puis Autorisations de site: la page Autorisations du site s’ouvre.
  12. Sur cette page, cliquez sur le bouton du ruban Accès anonyme: la boîte de dialogue Accès anonyme apparaît.
  13. Dans la boîte de dialogue Accès anonyme, sous Les utilisateurs anonymes peuvent accéder à, cliquez sur Tout le site Web puis cliquez sur le bouton OK: une entrée intitulée Utilisateurs anonymes s’affiche sur la page Autorisations.
  14. Il ne vous reste plus qu’à vérifier votre manipulation : accédez au site sans vous identifier afin de vous assurer que l’accès anonyme a été activé avec succès.

Maintenant, le stagiaire n’a plus d’excuses 🙂