Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1454 connectés 

 



Dernière réponse
Sujet : [Scripting] Powershell
Zaib3k J'ai utilisé ça :o
 

Code :
  1. # Create LN Object
  2. $DomSession = New-Object -ComObject Lotus.NotesSession
  3. # Initialize LN Object
  4. # You'll be asking for LN password to your id
  5. $DomSession.Initialize()
  6. # Connect to Server, select db and display the name
  7. $DomDatabase = $DomSession.GetDatabase("leserveur","labase.nsf" )
  8. Write-Host "Database open : " $DomDatabase.Title
  9. # Open specific View (Forum\Principale (forum))
  10. $DomView = $DomDatabase.GetView('($All)')
  11. Write-Host "View read : " $DomView.Name
  12. # Show number of documents
  13. $DomNumOfDocs = $DomView.AllEntries.Count
  14. Write-Host "Num of Docs : " $DomNumOfDocs
  15. # Get First Document in the View
  16. $DomDoc = $DomView.GetFirstDocument()
  17. # parcours
  18. while ($DomDoc -ne $null) {
  19.     $from = $DomDoc.ColumnValues[4]
  20.     $date = $DomDoc.ColumnValues[8].toshortdatestring()
  21.     "$from,$date"  | out-file ".\export.csv" -Append
  22.     $DomDoc = $DomView.GetNextDocument($DomDoc)
  23. }


 
Sinon, je cherche une info : Quelle est la position officielle de MS sur VBScript ? Je croyais qu'il était abandonné mais je n’arrive pas à trouver de communication "officielle".


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Zaib3k J'ai utilisé ça :o
 

Code :
  1. # Create LN Object
  2. $DomSession = New-Object -ComObject Lotus.NotesSession
  3. # Initialize LN Object
  4. # You'll be asking for LN password to your id
  5. $DomSession.Initialize()
  6. # Connect to Server, select db and display the name
  7. $DomDatabase = $DomSession.GetDatabase("leserveur","labase.nsf" )
  8. Write-Host "Database open : " $DomDatabase.Title
  9. # Open specific View (Forum\Principale (forum))
  10. $DomView = $DomDatabase.GetView('($All)')
  11. Write-Host "View read : " $DomView.Name
  12. # Show number of documents
  13. $DomNumOfDocs = $DomView.AllEntries.Count
  14. Write-Host "Num of Docs : " $DomNumOfDocs
  15. # Get First Document in the View
  16. $DomDoc = $DomView.GetFirstDocument()
  17. # parcours
  18. while ($DomDoc -ne $null) {
  19.     $from = $DomDoc.ColumnValues[4]
  20.     $date = $DomDoc.ColumnValues[8].toshortdatestring()
  21.     "$from,$date"  | out-file ".\export.csv" -Append
  22.     $DomDoc = $DomView.GetNextDocument($DomDoc)
  23. }


 
Sinon, je cherche une info : Quelle est la position officielle de MS sur VBScript ? Je croyais qu'il était abandonné mais je n’arrive pas à trouver de communication "officielle".

Zaib3k Pour DFSN, je n'ai rien troué d'autre que dfsutil.
 
Je cherche désormais un exemple de script powershell pour parcourir une boite Lotus Notes. J'ai déjà des éléments mais j'ai du mal à manipuler les documents pour récupérer les champs.
 
Des pistes ?
Zaib3k Avez-vous des idées pour manipuler DFSN ? dfsutil.exe :/ ?
nebulios Enorme !
 
Merci  :lol:
Je@nb C'est du base64 hein, tu le décodes avec les 3 premières lignes.
 
Mais ouais c'est drôle :p
Zaib3k C'est con ! :D

 

et faut être connaisseur, sinon c'est pas drôle.

Zaib3k je me méfie :o Le script que ça lance à un joli truc planqué :o
..
Plus de la musique ...
Je@nb Moi je vous propose de lancer ça avec Powershell :

Code :
  1. iex (New-Object Net.WebClient).DownloadString("http://bit.ly/e0Mw9w" )

boobaka Je pose mon drapeau .. Je ne vais pas tarder à mettre les mains dans le cambouis .
 
nebulios Pour nous ce sont les clients qui nous imposent ceci, plus facile à recetter notamment.
Je@nb Chez nous la plupart des projets qu'on délivre c'est script only.
 
Ca permet de passer de docs d'install/config de 300 pages à une trentaine/quarantaine en évitant les mauvaises manips. En plus c'est répétable facilement (juste des fichiers xml la plupart du temps pour entrer les paramètres du script).
 
Déploiement d'exchange, lync, hyper-v, scvmm, sccm, mdt, ad and co.
Zaib3k Plus généralement, dans l'univers du système, j'ai l'impression que le scripting est peu présent. C'est pourtant un outil précieux.
nebulios Effectivement, j'aurai jamais cru pouvoir réaliser une délégation complète en quelques lignes.
 
Les précédentes avaient été réalisées en VBS...je crois que je me serai mis une balle si j'aurai du scripter çà.
 
Le gros problème étant que la CLI continue de faire peur à beaucoup de gens...
Zaib3k je m'en suis servi pour manipuler les droits sur les GPOs récemment. C'est super puissant :D
nebulios Oui les manip d'ACL sur des objets AD, par exemple spécifier que le groupe helpdesk à le droit de reseter les mots de passe sur l'OU utilisateurs.
J'avais regardé du côté de Get/Set-ACL mais il me semblait plus adapté au ACL de fichiers/répertoires.
Zaib3k Mon besoin était sur des fichiers de log tiers ou des fichiers text comme le netlogon.log. Vu les volumes, un simple get-content est trop gourmand.
 
Pour les délégations, à quoi penses-tu ? Les manips d'ACL sont déjà possible, peu importe l'objet.
nebulios S'il s'agit de récupérer les logs Windows on peut le faire très simplement avec Get-WinEvent.
 
Sinon je l'utilisa principalement avec Active Directory et Exchange et c'est un vrai plaisir d'avoir un CLI de ce niveau (bon dsquery reste très correct). Malheureusement pour l'AD la version actuelle est basique et pour des manips plus pointues (Délégation, PKI...) il faut passer par les cmdlets Quest (mais ils sont gratuits). La version 3 devrait compenser ce manque.
 
ET pour le VBS, il n'est plus supporté par MS, comme les autres outils de scripting d'ailleurs. MS est en train de centraliser les utilitaires d'administration et de scripting en un seul.
 
Zaib3k résérvé
Zaib3k Je commence par mon petit cas perso :
Mon environnement : Win 7 + module AD + PowerShell ISE sur mon poste et ADMGS sur certains DC.
Mes principaux besoins : intercation avec un domaine Active Directory plutôt vaste (bcp d'utilisateurs, de serveur, de sites, ...).
Ma pratique du scripting Posh : Quick & Dirty assez souvent, basique et sans IHM à chaque fois, sans composants tiers.
 
Script à partager/critiquer :
 
Contexte : Lire les dernières lignes des fichiers de logs, même volumineux. A la manière de tail sous Unix. Le script a été élboré sur la base de scripts trouvés sur le net avec quelques adaptations. Je souhaitais pouvoir utiliser le pipe et plusieurs fichiers. La dernière modification apportée concernant l'accès au fichier : je devais pouvoir lire des fichiers lockés.
 

Code :
  1. function Get-tail {
  2. param(
  3.    [Parameter(Mandatory=$true,
  4.               Position=0,
  5.               ParameterSetName="Path",
  6.               ValueFromPipeline=$true,
  7.               ValueFromPipelineByPropertyName=$true)]
  8.    [ValidateNotNullOrEmpty()]
  9.    [string[]]
  10.    $Path,
  11.   
  12.    [Parameter()]
  13.    [ValidateRange(0, 2GB)]
  14.    [int]
  15.   $Last = 10,
  16.   
  17.    [Parameter()]
  18.    [int]$CharsPerLine = 500
  19. )
  20. $files = @(Get-ChildItem $path);
  21.    foreach ($file in $files)
  22.    {
  23.        if (-not $file) {return}
  24.        $fs = [System.IO.File]::Open($file,[System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::ReadWrite)
  25.        $BytesToRead = $charsPerLine * $last
  26.       
  27.        if ($BytesToRead -ge $fs.length) {$BytesToRead = $fs.length}
  28.        $fs.Position = $fs.Length - $BytesToRead
  29.        $Stream = New-Object System.IO.StreamReader($fs)
  30.        $Stream.readtoend() -split "`n" -replace "\s+$","" | Select-Object -last $Last
  31.       
  32.        $Stream.Close()
  33.        $fs.Close()
  34.       
  35.    }
  36. }

Zaib3k Powershell, enfin un shell pour Windows.
 
Il n'y a pas encore de topic de référence sur ce produit, il faut corriger ce manque.
 
Je débute avec cet outil et je trouve que l'on apprends très vite, sur la base de cas pratiques et de recherches Google. L'idée de ce topic serait donc de partager notre expérience, nos recherches et nos trouvailles concernant Powershell (aka PoSh).
 
N'hésitez pas, participez !
Je pense que ce script à plus sa place ici que dans la cat Prog, mais je ne trouve pas de sous-cat appropriée. Modo, éclairez-moi :o
 
Quelques idées de sujets à aborder :

  • Quel éditeur utilisez-vous ?
  • Quelles sont les bonnes pratiques à appliquer ?
  • Comment gérer les erreurs ? try/catch/finally vs. throw/trap vs. ErrorAction/$? vs. $Error vs. ...
  • set-strictmode or Not ?
  • et VBS, il est mort ?
  • Faut-il signer les scripts ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR