Serializes a PowerShell File or object-graph and exports it to a PowerShell (data) file.
Export-ObjectGraph
-InputObject <Object>
[-LanguageMode <PSLanguageMode>]
[-ExpandDepth <Int32> = [Int]::MaxValue]
[-Explicit]
[-FullTypeName]
[-HighFidelity]
[-ExpandSingleton]
[-Indent <String> = ' ']
[-MaxDepth <Int32> = [PSNode]::DefaultMaxDepth]
[-Encoding <Object>]
[<CommonParameters>]
Export-ObjectGraph
-Path <String[]>
[<CommonParameters>]
Export-ObjectGraph
-LiteralPath <String[]>
[<CommonParameters>]
The Export-ObjectGraph
cmdlet converts a PowerShell (complex) object to an PowerShell expression
and exports it to a PowerShell (.ps1
) file or a PowerShell data (.psd1
) file.
Type: | Object |
Mandatory: | True |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the path to a file where Export-ObjectGraph
exports the ObjectGraph.
Wildcard characters are permitted.
Type: | String[] |
Mandatory: | True |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies a path to one or more locations where PowerShell should export the object-graph. The value of LiteralPath is used exactly as it's typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters as escape sequences.
Type: | String[] |
Mandatory: | True |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Defines which object types are allowed for the serialization, see: About language modes If a specific type isn't allowed in the given language mode, it will be substituted by:
$Null
in case of a null value$False
in case of a boolean false$True
in case of a boolean true- A number in case of a primitive value
- A string in case of a string or any other leaf node
@(...)
for an array (list node)@{...}
for any dictionary, PSCustomObject or Component (aka map node)
See the PSNode Object Parser for a detailed definition on node types.
Type: | PSLanguageMode |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Defines up till what level the collections will be expanded in the output.
- A
-ExpandDepth 0
will create a single line expression. - A
-ExpandDepth -1
will compress the single line by removing command spaces.
Note
White spaces (as newline characters and spaces) will not be removed from the content of a (here) string.
Type: | Int32 |
Mandatory: | False |
Position: | Named |
Default value: | [Int]::MaxValue |
Accept pipeline input: | False |
Accept wildcard characters: | False |
By default, restricted language types initializers are suppressed.
When the Explicit
switch is set, all values will be prefixed with an initializer
(as e.g. [Long]
and [Array]
)
Note
The -Explicit
switch can not be used in restricted language mode
Type: | SwitchParameter |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
In case a value is prefixed with an initializer, the full type name of the initializer is used.
Note
The -FullTypename
switch can not be used in restricted language mode and will only be
meaningful if the initializer is used (see also the -Explicit switch).
Type: | SwitchParameter |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
If the -HighFidelity
switch is supplied, all nested object properties will be serialized.
By default the fidelity of an object expression will end if:
- the (embedded) object is a leaf node (see: PSNode Object Parser)
- the (embedded) object expression is able to round trip.
An object is able to roundtrip if the resulted expression of the object itself or one of its properties (prefixed with the type initializer) can be used to rebuild the object.
The advantage of the default fidelity is that the resulted expression round trips (aka the
object might be rebuild from the expression), the disadvantage is that information hold by
less significant properties is lost (as e.g. timezone information in a DateTime]
object).
The advantage of the high fidelity switch is that all the information of the underlying properties is shown, yet any constrained or full object type will likely fail to rebuild due to constructor limitations such as readonly property.
Note
Objects properties of type [Reflection.MemberInfo]
are always excluded.
Type: | SwitchParameter |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
(List or map) collections nodes that contain a single item will not be expanded unless this
-ExpandSingleton
is supplied.
Type: | SwitchParameter |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Type: | String |
Mandatory: | False |
Position: | Named |
Default value: | ' ' |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies how many levels of contained objects are included in the PowerShell representation.
The default value is define by the PowerShell object node parser ([PSNode]::DefaultMaxDepth
).
Type: | Int32 |
Mandatory: | False |
Position: | Named |
Default value: | [PSNode]::DefaultMaxDepth |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the type of encoding for the target file. The default value is utf8NoBOM
.
Type: | Object |
Mandatory: | False |
Position: | Named |
Default value: | |
Accept pipeline input: | False |
Accept wildcard characters: | False |