Home > OS >  How to change value of property in powershell
How to change value of property in powershell

Time:04-03

How do you access the value of a property in powershell and change its value

PS C:\Windows\system32> $tamp = get-item "HKLM:\SOFTWARE\Microsoft\AppServiceProtocols\ms-phone-api"
PS C:\Windows\system32> $tamp


    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppServiceProtocols


Name                           Property
----                           --------
ms-phone-api                   AppServiceName    : com.microsoft.phone.api
                               PackageFamilyName : Microsoft.YourPhone_8wekyb3d8bbwe


PS C:\Windows\system32>

now that we have an item named ms-phone-api i would like to access the properties and change the values for them the registry path used here is just for the sake of explanation, any registry key can be used

I tried to access the values by using the following

$tamp.<property-name> = <value>

but this does not work and outputs this

PS C:\Windows\system32> $tamp.AppServiceName =  com.google
com.google : The term 'com.google' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:25
  $tamp.AppServiceName =  com.google
                          ~~~~~~~~~~
      CategoryInfo          : ObjectNotFound: (com.google:String) [], CommandNotFoundException
      FullyQualifiedErrorId : CommandNotFoundException

PS C:\Windows\system32>

CodePudding user response:

Using New-ItemProperty is the easiest way:

# get the RegPath
$RegPath = "HKLM:\SOFTWARE\Microsoft\AppServiceProtocols\ms-phone-api"

# set the Name we want to update
$Name = "ms-phone-api"

# set Value name we want to update
$Value = "AppServiceName"

New-ItemProperty -Path $RegPath -Name $Name -Value  $Value -PropertyType String

You can read more details here: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-itemproperty?view=powershell-7.2

CodePudding user response:

You can do

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\AppServiceProtocols\ms-phone-api' -Name 'AppServiceName' -Value 'com.google'

(you can also append -Type String)

The Set-ItemProperty cmdlet creates or changes the value of a property of an item.

  • Related