Edit

Share via


New-PSScriptFileInfo

The cmdlet creates a new script file, including metadata about the script.

Syntax

Default (Default)

New-PSScriptFileInfo
    [-Path] <String>
    [-Version <String>]
    [-Author <String>]
    -Description <String>
    [-Guid <Guid>]
    [-CompanyName <String>]
    [-Copyright <String>]
    [-RequiredModules <Hashtable[]>]
    [-ExternalModuleDependencies <String[]>]
    [-RequiredScripts <String[]>]
    [-ExternalScriptDependencies <String[]>]
    [-Tags <String[]>]
    [-ProjectUri <String>]
    [-LicenseUri <String>]
    [-IconUri <String>]
    [-ReleaseNotes <String>]
    [-PrivateData <String>]
    [-Force]
    [<CommonParameters>]

Description

The cmdlet creates a new script file containing the required metadata needed to publish a script package.

Examples

Example 1: Creating an empty script with minimal information

This example runs the cmdlet using only required parameters. The Path parameter specifies the nane and location of the script. The Description parameter provide the description used in the comment-based help for the script.

New-PSScriptFileInfo -Path ./test_script.ps1 -Description 'This is a test script.'
Get-Content ./test_script.ps1
<#PSScriptInfo

.VERSION 1.0.0.0

.GUID 6ec3934e-a2e0-495b-9a9c-480e555ad1d1

.AUTHOR johndoe

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES

.PRIVATEDATA

#>

<#

.DESCRIPTION
This is a test script.

#>

Example 2: Creating a script with required modules

This example runs the cmdlet with additional parameters, including RequiredModules. RequiredModules is an array of module specifications.

$parameters = @{
    Path = './test_script2.ps1'
    Description = 'This is a test script.'
    Version = '2.0.0.0'
    Author = 'janedoe'
    RequiredModules =  @(
        @{ModuleName = 'PackageManagement'; ModuleVersion = '1.0.0.0' },
        @{ModuleName = 'PSReadLine'}
    )
}
New-PSScriptFileInfo @parameters
Get-Content ./test_script2.ps1
<#PSScriptInfo

.VERSION 2.0.0.0

.GUID 7ec4832e-a4e1-562b-8a8c-241e535ad7d7

.AUTHOR janedoe

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES

.PRIVATEDATA

#>

#Requires -Module PSReadLine
#Requires -Module @{ ModuleName = 'PackageManagement'; ModuleVersion = '1.0.0.0' }

<#

.DESCRIPTION
This is a test script.

#>

Parameters

-Author

The name of the author of the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CompanyName

The name of the company owning the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

The copyright information for the script.

Type:String
Default value:None
Supports wildcards:False
DontShow:False
(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Description

The description of the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:True
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ExternalModuleDependencies

The list of external module dependencies taken by this script.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ExternalScriptDependencies

The list of external script dependencies taken by this script.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Force

Forces the cmdlet to overwrite any existing file.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Guid

The unique identifier for the script in GUID format. If you don't provide a GUID, the cmdlet creates a new one automatically.

Parameter properties

Type:Guid
Default value:Randomly generated
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-IconUri

A Uniform Resource Identifier (URI) pointing to the icon associated with the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-LicenseUri

The URI pointing to the license agreement file associated with the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Path

The filename and location where the script is created.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:0
Mandatory:True
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-PrivateData

The private data associated with the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ProjectUri

The URI pointing to the project site associated with the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ReleaseNotes

The release notes for the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-RequiredModules

The parameter takes an array of module specification hashtables. A module specification is a hashtable that has the following keys.

  • ModuleName - Required Specifies the module name.
  • GUID - Optional Specifies the GUID of the module.
  • It's also Required to specify at least one of the three below keys.
    • ModuleVersion - Specifies a minimum acceptable version of the module.
    • MaximumVersion - Specifies the maximum acceptable version of the module.
    • RequiredVersion - Specifies an exact, required version of the module. This can't be used with the other Version keys.

Parameter properties

Type:

Hashtable[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-RequiredScripts

The list of scripts required by the script.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Tags

The tags associated with the script. Tag values are strings that shouldn't contain spaces. For more information, see Tag details.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False
Aliases:Tag

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Version

The version of the script. If no value is provided Version defaults to 1.0.0.0.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

Outputs

Object

Notes

The New-PSScriptFileInfo and Update-PSScriptFileInfo cmdlets place the #requires statements for required modules between the <#PSScriptInfo and comment-based help blocks of the help file. The Get-PSScriptFileInfo expects #requires statements to be placed somewhere before the comment-based help block. Any #requires statements placed after the comment-based help block are ignored by Get-PSScriptFileInfo and Publish-PSResource.