|
Sujet : [Scripting] Powershell |
| Zaib3k |
J'ai utilisé ça :o
Code :
- # Create LN Object
- $DomSession = New-Object -ComObject Lotus.NotesSession
- # Initialize LN Object
- # You'll be asking for LN password to your id
- $DomSession.Initialize()
- # Connect to Server, select db and display the name
- $DomDatabase = $DomSession.GetDatabase("leserveur","labase.nsf" )
- Write-Host "Database open : " $DomDatabase.Title
- # Open specific View (Forum\Principale (forum))
- $DomView = $DomDatabase.GetView('($All)')
- Write-Host "View read : " $DomView.Name
- # Show number of documents
- $DomNumOfDocs = $DomView.AllEntries.Count
- Write-Host "Num of Docs : " $DomNumOfDocs
- # Get First Document in the View
- $DomDoc = $DomView.GetFirstDocument()
- # parcours
- while ($DomDoc -ne $null) {
- $from = $DomDoc.ColumnValues[4]
- $date = $DomDoc.ColumnValues[8].toshortdatestring()
- "$from,$date" | out-file ".\export.csv" -Append
- $DomDoc = $DomView.GetNextDocument($DomDoc)
- }
|
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 |
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 :
- function Get-tail {
- param(
- [Parameter(Mandatory=$true,
- Position=0,
- ParameterSetName="Path",
- ValueFromPipeline=$true,
- ValueFromPipelineByPropertyName=$true)]
- [ValidateNotNullOrEmpty()]
- [string[]]
- $Path,
-
- [Parameter()]
- [ValidateRange(0, 2GB)]
- [int]
- $Last = 10,
-
- [Parameter()]
- [int]$CharsPerLine = 500
- )
- $files = @(Get-ChildItem $path);
- foreach ($file in $files)
- {
- if (-not $file) {return}
- $fs = [System.IO.File]::Open($file,[System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::ReadWrite)
- $BytesToRead = $charsPerLine * $last
-
- if ($BytesToRead -ge $fs.length) {$BytesToRead = $fs.length}
- $fs.Position = $fs.Length - $BytesToRead
- $Stream = New-Object System.IO.StreamReader($fs)
- $Stream.readtoend() -split "`n" -replace "\s+$","" | Select-Object -last $Last
-
- $Stream.Close()
- $fs.Close()
-
- }
- }
|
|