Skip to main content

Update-VSTeamVariableGroup

SYNOPSIS

Updates an existing variable group

SYNTAX

ByHashtable

Update-VSTeamVariableGroup -Id <String> -Name <String> [-Description <String>] -Variables <Hashtable> [-Force]
-ProjectName <String> [-WhatIf] [-Confirm] [<CommonParameters>]

ByBody

Update-VSTeamVariableGroup -Id <String> -Body <String> [-Force] -ProjectName <String> [-WhatIf] [-Confirm]
[<CommonParameters>]

DESCRIPTION

Updates an existing variable group

EXAMPLES

Example 1

$methodParameters = @{
ProjectName = "some_project_name"
Name = "new_variable_group"
Description = "Describe the Variable Group"
Type = "Vsts"
Variables = @{
key1 = @{
value = "value1"
isSecret = $true
}
}
}

$newVariableGroup = Add-VSTeamVariableGroup @methodParameters

$methodParameters = @{
id = $newVariableGroup.id
ProjectName = "some_project_name"
Name = "new_variable_group"
Description = "Describe the Variable Group"
Type = "AzureKeyVault"
Variables = @{
name_of_existing_secret = @{
enabled = $true
contentType = ""
value = ""
isSecret = $true
}
}
ProviderData = @{
serviceEndpointId = "AzureRMServiceEndpointGuid"
vault = "name_of_existing_key_vault"
}
}

Update-VSTeamVariableGroup @methodParameters

Example 2

# Copy variable group varGroupName from project sourceProjectName to project targetProjectName.  If varGroupName already exists, we'll update it; else, we'll add it.

$Name = "varGroupName"
$FromProject = "sourceProjectName"
$ToProject = "targetProjectName"

$FromVariableGroupObject = Get-VSTeamVariableGroup -Name $Name -ProjectName $FromProject
$body = ConvertTo-Json -InputObject $FromVariableGroupObject -Depth 100 -Compress
$toVariableGroupObject = Get-VSTeamVariableGroup -Name $Name -ProjectName $ToProject
if ($toVariableGroupObject) {
Update-VSTeamVariableGroup -Body $body -ProjectName $ToProject -Id $toVariableGroupObject.id
}
else {
Add-VSTeamVariableGroup -Body $body -ProjectName $ToProject
}

PARAMETERS

-Confirm

Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

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

-Force

Does not prompt

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

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

-Id

ID of the existing variable group

Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Description

The variable group description

Type: String
Parameter Sets: ByHashtable
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Name

The variable group name

Type: String
Parameter Sets: ByHashtable
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Variables

The variable group variables.

Type: Hashtable
Parameter Sets: ByHashtable
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Body

The json that represents the task group as a string

Type: String
Parameter Sets: ByBody
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ProjectName

Specifies the team project for which this function operates.

You can tab complete from a list of available projects.

You can use Set-VSTeamDefaultProject to set a default project so you do not have to pass the ProjectName with each call.

Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

CommonParameters

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

INPUTS

System.String

System.Collections.Hashtable

OUTPUTS

System.Object

NOTES

Prerequisites:

Set the account and version that all calls will use with Set-VSTeamAccount. Default version sets to API version 3.0 (TFS2017) if not manually set.

tips:

  • check called version of the API with Get-VSTeamAPIVersion or Get-VSTeamInfo
  • use Set-VSTeamDefaultProject to set default project for every call
  • use Set-VSTeamDefaultAPITimeout to change the default timeout of 60 seconds for all calls.
  • use Profiles to load an account and the correct version

Add-VSTeamVariableGroup

Get-VSTeamVariableGroup

Remove-VSTeamVariableGroup