Cómo editar parte de un valor de registro

0

Estoy buscando una manera de eliminar las últimas 3 letras de un valor de registro.

Ejemplo:

[HKEY_CURRENT_USER \ Software \ Test]

"Setting" = " ABCDDD "

Me gustaría que terminara así:

[HKEY_CURRENT_USER \ Softw are \ Test]

"Setting" = " ABC "

Siempre son 6 letras, y siempre quiero eliminar las últimas 3. Prefiero lograr esto usando GPO.

¡Gracias!

Saludos Fredrik

Fredrik Endresen
fuente
Este sitio no es un servicio de escritura de guiones, ¿qué has probado hasta ahora?
spikey_richie

Respuestas:

0

Como es bastante corto, esto podría comenzar:

$registryPath = "HKCU:\Software\Test\" #reg key
$Name         = "setting"              #reg value
$value        = "ABCDDD"               #default value if does not exist

IF(!(Test-Path $registryPath))
{
    #Key does not exist, create key and set default
    New-Item -Path $registryPath -Force | Out-Null
    New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType String -Force | Out-Null
}
ELSE 
{
    #Key exists, read existing value and trim
    $strValue = (Get-ItemProperty -Path $registryPath).($Name)
    $strNew   = $strValue.SubString(0,3)
    New-ItemProperty -Path $registryPath -Name $name -Value $strNew -PropertyType String -Force | Out-Null
}
HelpingHand
fuente
Muchas gracias "HelpingHand"! ¡Esto hará el truco! :) ¿Puedo preguntarte uno más? Digamos que el valor era: XXXZZZYYY y quiero recortar \ eliminar las 3 letras en el medio, y terminar con un valor como este: XXXYYY ¿Eso también sería posible con PS? ¡Gracias de nuevo!
Fredrik Endresen
Puede usar el método Eliminar. Es decir, cambiar la línea SubString para que sea: $strNew = $strValue.Remove(3,3)Esto eliminará de strValue, el tercer carácter, los siguientes 3 caracteres. Puede cambiar el valor de $ en la parte superior XXXYYYZZZy luego tendráXXXZZZ
HelpingHand
Gracias de nuevo, ¡funciona de maravilla! Una última pregunta. :) En un campo de Valor, siempre quiero cambiar 2012 con 2016. Como: \\ servername \ 2012server \ path \ -> \\ servername \ 2016server \ path \. O podría ser: TheYear2012WasGreat -> TheYear2016WasGreat. Solo quiero recoger el 2012 de la cadena de valor y cambiarlo a 2016.
Fredrik Endresen
¿Sería suficiente simplemente usar: $strNew = $strValue.replace("2012","2016")para ese caso?
HelpingHand