레지스트리 키 값을 업데이트하는 작업 스크립트가 있습니다.보다 빠르고/쉽고/더 짧은 방법이 있는지 궁금합니다. 다른 방법은 무엇입니까?레지스트리 값을 쉼표로 구분/구분하여
$array = @()
$RegKey = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" | select AppInit_DLLs | % {$_.AppInit_DLLs -split ","}
foreach ($value in $RegKey)
{
if ($value -notmatch "mfaphook64.dll")
{
$array+= $value
}
if ($value -match "mfaphook64.dll")
{
$value = "mfaphook64.dll"
$array+= $value
}
}
$array = $array -join ","
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name AppInit_DLLs -Value $array -Force
값 전 :
C:\test path\mfaphook64.dll,test.dll
값 후 :
mfaphook64.dll,test.dll
에서 찾을 수 있습니까? 그들은 정확한 것을하고있는 것처럼 보입니다 ... – arco444
이 첫 번째 if 문은 검색 문자열을 포함하지 않으면 값을 내 배열에 추가합니다. 두 번째 if 문은 하위 문자열을 새 값으로 바꾸고 배열에 추가합니다. 이 방법으로 다른 모든 하위 문자열을 유지하면서 경로를 바꿀 수 있습니다. – user3208164
아, 너와. "-match"사용에 대해 충분히 신경을 쓰지 않았습니다. – arco444