TP PowerShell – Module NetApp DataOnTap

Salut les gens,

Aujourd’hui NetApp : l’éditeur fournit un Module PowerShell propriétaire pour leur administrer leurs bébêtes. Elle se télécharge simplement sur le site du support éditeur pour les clients, les autres passez votre chemin.

Et donc pour commencer importons le module de NetApp, comme pour un n’importe quel module :

PS H :\> Import-Module DataOnTap

Comme tout bon informaticiens, première chose à faire : trouver l’aide (RTFM hein…)

PS H :\> Get-Help DataOnTap
 Data ONTAP PowerShell Toolkit, version 3.2.6.108.

To learn more about the Data ONTAP PowerShell Toolkit, import the DataONTAP module and invoke ‘Show-NaHelp’.

Bref :

PS H :\> Show-NaHelp

Allez on va voir ce qu’il a dans le ventre ce module, La première étape consiste comme avec une base SQL à établir la connexion avec le NetApp, la variable retournée nous indique les informations sur la connexion :

PS H :\> $connect = Connect-NaController "monNetNappA.fq.dn"
PS H :\> $connect | fl *
 Ontapi : 1.17
 Vfiler :
 Mode : Classic
 OntapiMajorVersion : 1
 OntapiMinorVersion : 17
 Version : NetApp Release 1.2.3 4-Mode: Sat Jun 8 08:11:51 PDT 2013
 Protocol : RPC
 Proxy :
 TimeoutMsec : 10000
 RetryCount : 0
 Name : monNetNappA.fq.dn
 Address : 1.2.3.4
 Port : 
Lire la suite

TP PowerShell – Filtrer avec Where-Object (et plus si affinités)

La question du jour, c’est : Quels sont les utilisateurs qui n’exécutent pas le script logon.cmd lors du logon ? et combien sont-ils ? peut-on avoir la liste de ces comptes ?

On avait déjà vu comment chercher et lister des utilisateurs de l’Active Directory dans le TP n°1.
Donc je ne reviens pas sur la cmd-let Get-ADUser, et je vous donne directement la 1ère requête qui retourne tous les utilisateurs dans une OU et de ses sous-OU en intégrant la colonne scriptPath (qui contient le chemin du logonScript) aux objets dans le résultat.

PS C:\> Get-ADUser -Filter * -Properties @('scriptPath') -SearchBase 'OU=Utilisateurs,DC=ponyland,DC=org' -SearchScope Subtree

C’est donc à ce moment les experts d’Excel nous demanderons de leurs sortir le résultat dans un CSV pour qu’ils y mettent un filtre sur la colonne scriptPath et avoir le résultat…
=> Super efficace…

Ou alors, on peut se la jouer « beau-gosse » et filtrer directement le résultat dans PowerShell, explication : On va utiliser le pipe « | » (comme en linux) pour rediriger la sortie de la cmd-let Get-ADUser dans l’entrée de notre cmd-let Where-Object.
Cette cmd-let nous permet de faire en un appel l’équivalent de l’algorithme suivant (simplifié) :

Pour Chaque Objet en entrée :
 
Lire la suite

Envie de réécrire l’histoire ? uchroniques…

Petit projet découvert en passant :

uchroniques par France télévision

http://uchroniques.nouvelles-ecritures.francetv.fr/

Une succession de petits jeux pour réécrire l’histoire. Et si… je vous laissais découvrir par vous-même ?
C’est un bon moyen d’apprendre l’histoire tout en jouant, et en plus c’est français… que demander de plus ?… Lire la suite

TP PowerShell – J’ai des objets COM’ dans mon ZoneCentral…

On a pas mal test sur un produit de chiffre en ce moment qui sont faits via un Objet Com. Alors un p’ti Tp sur le sujet…
Par contre, je ne vais pas expliquer ce que c’est qu’un objet COM, je vous renvoie au chapitre 10, du même nom, du bouquin d’Arnaud (p531 de la V3).

Dans ce TP on va récupérer la version de [Zone Central](http://www.primx.eu/zonecentral.aspx) sur le poste via un objet COM    :
Lors de son installation ZC (pour les intimes) enregistre automatiquement des dlls permettant de charger un objet COM : ZCAX.ZoneCentral.

Pour créer une nouvelle instance d’un objet COM dans PowerShell:

PS C:\> $zc = New-Object -ComObject ZCAX.ZoneCentral     
PS C:\> $zc     
System.__ComObject     
# Et là on a bien un objet au sens programmation orienté objet (classe, attributs, méthode, portés, etc…)

Bon, c’est cool… et maintenant ?

Alors là, dans l’idéal, il faut se référencer à la documentation de l’éditeur de votre objet COM pour connaître les fonctions proposées.
Mais pour les TLDR (i.e. Too Long Didn’t Read) en herbe que vous êtes, on peut toujours faire ça à la crado :

     PS C:\> $zc | Get-Member     
    TypeName : System.__ComObject#{00000172-8804-4ca8-8868-36f59defd14d}     
    
      Name                    MemberType Definition     
      ----                    ---------- ----------     
      CheckCertificate        
Lire la suite