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


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
}

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.