Import-Power Shell Data File

Imports values from a .PSD1 file without invoking its contents.

Syntax

Import-PowerShellDataFile
      [-Path] <String[]>
      [-SkipLimitCheck]
      [<CommonParameters>]
Import-PowerShellDataFile
      [-LiteralPath] <String[]>
      [-SkipLimitCheck]
      [<CommonParameters>]

Description

The Import-PowerShellDataFile cmdlet safely imports key-value pairs from hashtables defined in a .PSD1 file. The values could be imported using Invoke-Expression on the contents of the file. However, Invoke-Expression runs any code contained in the file. This could produce unwanted results or execute unsafe code. Import-PowerShellDataFile imports the data without invoking the code. By default there is a 500 key limit but can be bypassed with the SkipLimitCheck switch.

Examples

Example 1: Retrieve values from PSD1

This example retrieves the key-value pairs stored in the hashtable kept inside the Configuration.psd1 file. Get-Content is used to show the contents of the Configuration.psd1 file.

Get-Content .\Configuration.psd1
$config = Import-PowerShellDataFile .\Configuration.psd1
$config.AllNodes

@{
    AllNodes = @(
        @{
            NodeName = 'DSC-01'
        }
        @{
            NodeName = 'DSC-02'
        }
    )
}

Name                           Value
----                           -----
NodeName                       DSC-01
NodeName                       DSC-02

Parameters

-LiteralPath

The path to the file being imported. All characters in the path are treated as literal values. Wildcard characters are not processed.

Type: String [ ]
Aliases: PSPath, LP
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Path

The path to the file being imported. Wildcards are allowed but only the first matching file is imported.

Type: String [ ]
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: True

-SkipLimitCheck

By default Import-PowerShellDataFile imports only 500 keys from a .psd1 file. Use SkipLimitCheck to import more than 500 keys.

Type: Switch
Position: 0
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

Outputs

Hashtable

This cmdlet returns the data from the file as a hash table.