我的公司笔记本电脑上有一堆烦人的图标,由于组策略而无法删除,如何通过注册表删除它们?
在我的应用程序开始时,我将注册表的 shell 值更改为自定义 shell 并杀死 explorer.exe(它在应用程序之外完成),我希望允许后门返回原始 shell 并带回资源管理器。可执行程序。恢复进程对我来说很好,但是当我运行我的代码来更改注册表值时,没有抛出异常,但是当我签入 regedit 时该值没有改变,这是我的代码(在另一个问题上看到它):
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
regKey.SetValue("Shell", "explorer.exe", RegistryValueKind.String);
regKey.Close();
Run Code Online (Sandbox Code Playgroud)
请帮忙
我有一个二进制注册表值,我想检查 Powershell 脚本中的一致性。我正在通过以下方式检索价值:
(Get-ItemProperty -Path HKLM:\Software\ORL\WinVNC3 -Name ACL).ACL
Run Code Online (Sandbox Code Playgroud)
这将返回一个字节字符串作为结果。
然后,我创建了一个字节字符串变量,该变量与我所期望的相匹配,然后通过 regedit.exe 导出注册表项来查询该值。然后,我通过在由逗号分隔的每个字节前面加上“0x”并键入 [byte] 来从该文本创建一个字节字符串。当我只观察两个字符串时,它们完全相同。但是,当我:
$RegistryValue -eq $CreatedValue
Run Code Online (Sandbox Code Playgroud)
他们不返回 True。我究竟做错了什么?
如何访问 R 中的 windows 注册表。例如,我想访问该文件夹:
[HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\3.0.2]
Run Code Online (Sandbox Code Playgroud)
和名为“InstallPath”的键
要得到:
"C:\\Program Files\\R\\R-3.0.2"
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我有以下程序读取所有 CLSID 注册表项并在列表框中显示它们的名称;它是用 Delphi 编写的,但问题并非特定于 Delphi;这是一个关于 Windows 注册表的问题。
procedure TForm2.Button1Click(Sender: TObject);
var
guid: string;
reg: TRegistry;
sl: TStringList;
i: Integer;
name: string;
begin
memo1.Clear;
reg := TRegistry.Create;
sl := TStringList.Create;
memo1.Lines.BeginUpdate;
try
reg.RootKey := HKEY_CLASSES_ROOT;
if reg.OpenKeyReadOnly('\CLSID\') then
begin
reg.GetKeyNames(sl);
reg.CloseKey;
for i := 1 to sl.Count-1 do
begin
guid := sl.Strings[i];
if reg.OpenKeyReadOnly('\CLSID\'+guid) then
begin
try
name := reg.ReadString('');
except
name := '!!! <ERROR1> !!!';
end;
reg.CloseKey;
end;
memo1.Lines.Add(guid + ' ' + name);
end;
end;
finally
sl.Free;
reg.Free; …
Run Code Online (Sandbox Code Playgroud) 我正在学习 BDE 管理员,我想知道是否有办法编写脚本/命令(我可以通过双击运行)将网络目录添加到某个目录路径?我查看了 Windows 注册表编辑器,并试图找到网络目录,但它不在那里。
我支持旧的 Java 客户端应用程序,它可以在 Windows XP 上正常运行,但不能在 Windows 7 32 位上运行。问题出在用于启动应用程序的 BAT 文件中。BAT 文件包含的代码用于在注册表中查询 Java 的 CurrentVersion,然后使用该值来确定该 Java 版本在用户计算机上的路径。为了在 Java 客户端应用程序启动时将 rt.jar 包含在 CLASSPATH 中,这是必需的。以下代码在 Windows XP 上运行良好,但在 Windows 7 上返回:
“HKLM\SOFTWARE\JavaSoft\Java 运行时环境”\CurrentVersion 未找到。
:find_java
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set VALUE_NAME=CurrentVersion
::
:: get the current version
::
FOR /F "usebackq skip=4 tokens=3" %%A IN (`REG QUERY "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /v CurrentVersion 2^>nul`) DO (
set ValueValue=%%A
)
if defined ValueValue (
@echo the current Java runtime is %ValueValue% …
Run Code Online (Sandbox Code Playgroud) 我们的 VB6 旧应用程序调用 RegSetValueEx 来设置注册表值。可以使用 regedit 轻松设置此注册表值。但是,当我们的应用程序尝试设置它时,RegSetValueEx 返回 5 - Access Is Denied。
我们使用相同的代码写入其他注册表项,一切正常。此外,用户是本地管理员。
密钥是使用 KEY_ALL_ACCESS 打开的,但我尝试使用 (KEY_READ 或 KEY_WRITE) 并且这也不起作用。
Private Const READ_CONTROL = &H20000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const SYNCHRONIZE = &H100000
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const STANDARD_RIGHTS_WRITE = …
Run Code Online (Sandbox Code Playgroud) 我在Uninstalls注册表项中有一个程序,奇怪的日期/时间.报告的值为"1533407816",但实际日期很可能是"20180804",这是当天安装的所有其他Autodesk产品的报告.我正在使用[datetime]::ParseExact($program.GetValue('InstallDate'),'yyyyMMdd',$null)
将这些日期转换为正确的DateTime,但不确定我需要什么机制来进行奇怪的日期.或者,如果它甚至是有意义的数据.
我运行后续的reg查询,这需要相当长的时间:
reg query HKLM\SOFTWARE\Classes /s /f "foo"
reg query HKLM\SOFTWARE\Classes /s /f "bar"
Run Code Online (Sandbox Code Playgroud)
有什么办法可以一次搜索多个值reg query
吗?