我对PowerShell还是很陌生,因此我一直陷在这个问题上。
到目前为止,我已经提出了这个建议...但是我认为这不是正确的解决方法。我知道我可能需要使用compare-object cmdlet,但是不确定如何应用它。
$path1 ="HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
$path2 = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
$destination = "(FileName.txt)"
$results = Get-ItemProperty $path1 $path2
在这方面的任何帮助将不胜感激,因为我的教授无法为我提供有关实际脚本的任何类型的帮助。
答案 0 :(得分:0)
要比较是否已导出reg文件,可以执行以下操作:
$location1 = "C:\temp\location1";
$location2 = "C:\temp\location2";
$location3 = "C:\temp";
Compare-Object $(Get-Content "$location1\file1.reg") $(Get-Content "$location2\file2.reg") |
Where-Object { IsNotAccepted($_.InputObject) } |
Out-File "$location3\NotAcceptedEntries.txt" -Force
function IsNotAccepted($entry){
$accepted = $false;
# $name = $entry.Split('=')[0]
# $value = $entry.Split('=')[1]
# Put your logics here
return -Not($accepted);
}
请注意,$_.InputObject
代表条目,例如
“ C:\ Program Files(x86)\ 7-Zip \ 7z.exe.FriendlyAppName” =“ 7-Zip 控制台2“
您还可以通过检查$_.SideIndicator
来知道该文件在哪个文件中。如果返回=>
,则意味着正确的文件(file2.reg)有所不同。相反,<=
表示在左文件(file1.reg)中发现了差异。