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
.