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

TP PowerShell – Génération de mot de passe pour le livre de A. PETITJEAN

TP autour des aléas en PowerShell, suite à un besoin de génération de mot de passe : on veut générer un mot de passe aléatoire pour la création de compte d’un utilisateur. Pour ça déjà on va se demander comment on génère un aléatoire en PowerShell, bien comme d’hab., il y a une cmd-let pour ça :    

PS C:\> Get-Random     
1493366162     
PS C:\> Get-Random -Minimum 0 -Maximum 26     
7     
PS C:\> Get-Random -Minimum 0 -Maximum 26     
4
PS C:\> Get-Random -Minimum 0 -Maximum 26     
17   
PS C:\> Get-Random -Minimum 0 -Maximum 26     
22     
PS C:\> > Get-Random -Minimum 0 -Maximum 26     
8

À moins que vous n’ayez oublié combien il y a de lettre dans l’alphabet, je pense que vous avez saisi l’idée…

Bon à partir de là, on peut convertir nos nombres en `char`,
D’abord, on doit compter jusqu’au nombre de caractères voulus dans notre chaîne, voir le bouquin d’Arnaud pour plus de détail, on va utiliser cette abréviation :

PS C:\> 1..12     
1     
2     
3         
4     
5     
6     
7     
8     
9     
10     
11     
12

Ensuite, je vous invite à vous munir d’une table ASCII pour comprendre la suite    :

PS C:\> 1..12 | ForEach {$passwd += [char](Get-Random -Minimum 
Lire la suite