New-PSScriptFileInfo
The cmdlet creates a new script file, including metadata about the script.
Syntax
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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CompanyName
The name of the company owning the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Copyright
The copyright information for the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
The description of the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExternalModuleDependencies
The list of external module dependencies taken by this script.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExternalScriptDependencies
The list of external script dependencies taken by this script.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Forces the cmdlet to overwrite any existing file.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | Guid |
Position: | Named |
Default value: | Randomly generated |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IconUri
A Uniform Resource Identifier (URI) pointing to the icon associated with the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LicenseUri
The URI pointing to the license agreement file associated with the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
The filename and location where the script is created.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PrivateData
The private data associated with the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProjectUri
The URI pointing to the project site associated with the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReleaseNotes
The release notes for the script.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | Hashtable[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RequiredScripts
The list of scripts required by the script.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tags
The tags associated with the script. Tag values are strings that shouldn't contain spaces. For more information, see Tag details.
Type: | String[] |
Aliases: | Tag |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Version
The version of the script. If no value is provided Version defaults to 1.0.0.0
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
None
Outputs
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
.