Import-PowerShellDataFile

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

Syntax

Import-PowerShellDataFile
      [[-Path] <string[]>]
      [<CommonParameters>]
Import-PowerShellDataFile
      [-LiteralPath <string[]>]
      [<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.

Note

You can only import the first 500 key-value pairs.

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.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
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
Required:True
Accept pipeline input:False
Accept wildcard characters:True

Outputs

Hashtable

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