Update-PSScriptFileInfo

This cmdlet updates the comment-based metadata in an existing script .ps1 file.

Syntax

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

Description

This cmdlet updates the comment-based metadata in an existing script .ps1 file. This is similar to Update-ModuleManifest.

Examples

Example 1: Update the version of a script

In this example, a script is created with Version set to 1.0.0.0. Update-PSScriptFileInfo changes the Version' to 2.0.0.0. The Get-Content cmdlet shows the updated contents of the script.

$parameters = @{
    FilePath = "C:\Users\johndoe\MyScripts\test_script.ps1"
    Version = "1.0.0.0"
    Description = "this is a test script"
}
New-PSScriptFileInfo @parameters
$parameters.Version = "2.0.0.0"
Update-PSScriptFileInfo @parameters
Get-Content $parameters.FilePath

<#PSScriptInfo

.VERSION 2.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

#>

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

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:False
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

-Guid

The unique identifier for the script in GUID format.

Type:Guid
Position:Named
Default value:None
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 of the script.

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

-RemoveSignature

Removes the signature from a signed .ps1 file, allowing you to update the script. You should re-sign the after updating the file.

Type:SwitchParameter
Position:Named
Default value:False
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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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.