Как добавить кавычки вокруг части строки в VBScript, которая редактирует службы реестра, чтобы включить кавычки вокруг путей к файлам - PullRequest
0 голосов
/ 27 августа 2018
Const HKEY_LOCAL_MACHINE  = &H80000002
Const REG_EXPAND_SZ = 2 
strComputer = "." ' Use . for current machine
hDefKey = HKEY_LOCAL_MACHINE
strKeyPath = "SYSTEM\CurrentControlSet\Services"

On Error Resume Next
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

oReg.EnumKey hDefKey, strKeyPath, arrSubKeys
For Each strSubkey In arrSubKeys
    strSubKeyPath = strKeyPath & "\" & strSubkey

    oReg.EnumValues hDefKey, strSubKeyPath, arrValueNames, arrTypes        
    For i = LBound(arrValueNames) To UBound(arrValueNames)
        strValueName = arrValueNames(i)
        Select Case arrTypes(i)
            Case REG_EXPAND_SZ
                oReg.GetStringValue hDefKey, strSubKeyPath, strValueName, strValue
                     If InStr(1, strValue, Chr(34), 1) = 0 Then
                         strValueTemp = Chr(34) & strValue
                         wscript.echo "  " & strValueName & " (REG_EXPAND_SZ) = " & strValueTemp
                     End IF
        End Select
    Next
Next 

Этот код выводит следующие строки:

ImagePath (REG_EXPAND_SZ) = "C: \ Windows \ system32 \ svchost.exe -k netsvcs -p

ImagePath (REG_EXPAND_SZ) = "C: \ Windows \ system32 \ svchost.exe -k netsvcs -p

ImagePath (REG_EXPAND_SZ) = "\ SystemRoot \ System32 \ drivers \ xboxgip.sys

Как я могу добавить еще одну кавычку к каждой строке в той точке, где строка имеет .exe или .sys, обеспечивающие этот вывод.

ImagePath (REG_EXPAND_SZ) = "C: \ Windows \ system32 \ svchost.exe" -k netsvcs -p

ImagePath (REG_EXPAND_SZ) = "C: \ Windows \ system32 \ svchost.exe" -k netsvcs -p

ImagePath (REG_EXPAND_SZ) = "\ SystemRoot \ System32 \ drivers \ xboxgip.sys"

Этот код предназначен для исправления ошибки безопасности Windows.

1 Ответ

0 голосов
/ 27 августа 2018

Если вы просто пытаетесь добавить еще одну цитату после расширения файла, попробуйте это:

strValueTemp = replace(strValueTemp,".exe ",".exe" & Chr(34) & " ")
strValueTemp = replace(strValueTemp,".sys ",".sys" & Chr(34) & " ")

Обратите внимание, что Chr (34) соответствует двойной кавычке. Также важно сохранить текст для замены как ".exe" с пробелом, так как пробел означает, что кавычка уже отсутствует в строке.

...