Import-PowerShellDataFile
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 this 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 aren't processed.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | 0 |
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 |
-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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Outputs
This cmdlet returns the data from the file as a hash table.