Pour ceux qui se servent de la sortie via Out-GridView, vous savez certainement qu’on ne peut pas copier les entêtes quand on veut copier/coller le contenu de la vue.
C’est assez embêtant de tout retaper, surtout pour moi qui suis une vrai feignasse…
Du coup j’ai créer une fonction pour contourner ce problème et je vous la met à disposition bien évidemment (le partage, c’est le pilier de la pérénité de la connaissance), sa seule fonction est de rajouter les entêtes sur la première ligne et d’afficher le résultat avec Out-GridView
function Out-GridViewWithHeaders {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true,
Position=0,
ValueFromPipeline=$true
)]
[PSObject[]]
$Data
)
begin {
$Out = @()
$DataCollect = @()
}
process {
foreach ($item in $Data) {
$Collector = New-Object PSCustomObject
foreach ($Property in $item.psobject.Properties.Name){
$Collector | Add-Member NoteProperty $Property $item.$($Property)
}
$DataCollect += $Collector
}
}
end {
$Headers = New-Object PSCustomObject
foreach ($Property in $Data[0].psobject.Properties.Name){
$Headers | Add-Member NoteProperty $Property $Property
}
$Out += $Headers
$Out += $DataCollect
$Out | Out-GridView
}
}
Et on l’utilise comme ça par exemple :
Get-ADUser -filter * -Properties MemberOf | Out-GridViewWithHeaders
0 commentaire