Out-DataTable by Chad Miller 33 months ago (modification of post by Chad Miller view diff)
View followups from Chad Miller, vpodans and Samuel | diff | embed code: <script type="text/javascript" src="http://PoshCode.org/embed/2119"></script>download | new post
Creates a DataTable for an object, based on script by Marc van Orsouw
- #######################
- <#
- .SYNOPSIS
- Creates a DataTable for an object
- .DESCRIPTION
- Creates a DataTable based on an objects properties.
- .INPUTS
- Object
- Any object can be piped to Out-DataTable
- .OUTPUTS
- System.Data.DataTable
- .EXAMPLE
- $dt = Get-Alias | Out-DataTable
- This example creates a DataTable from the properties of Get-Alias and assigns output to $dt variable
- .NOTES
- Adapted from script by Marc van Orsouw see link
- Version History
- v1.0 - Chad Miller - Initial Release
- v1.1 - Chad Miller - Fixed Issue with Properties
- .LINK
- http://thepowershellguy.com/blogs/posh/archive/2007/01/21/powershell-gui-scripblock-monitor-script.aspx
- #>
- function Out-DataTable
- {
- [CmdletBinding()]
- param([Parameter(Position=0, Mandatory=$true, ValueFromPipeline = $true)] [PSObject[]]$InputObject)
- Begin
- {
- $dt = new-object Data.datatable
- $First = $true
- }
- Process
- {
- foreach ($object in $InputObject)
- {
- $DR = $DT.NewRow()
- foreach($property in $object.PsObject.get_properties())
- {
- if ($first)
- {
- $Col = new-object Data.DataColumn
- $Col.ColumnName = $property.Name.ToString()
- $DT.Columns.Add($Col)
- }
- if ($property.IsArray)
- { $DR.Item($property.Name) =$property.value | ConvertTo-XML -AS String -NoTypeInformation -Depth 1 }
- else { $DR.Item($property.Name) = $property.value }
- }
- $DT.Rows.Add($DR)
- $First = $false
- }
- }
- End
- {
- Write-Output @(,($dt))
- }
- } #Out-DataTable
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.
PowerShell Code Repository