背景: 我有几个保存的注册表项,用于在我的环境中更新/配置远程PC。我以前可能没有部署过该设备,但我使用这些注册表项来更新PC,因为我修复/修复/等等......我是45人团队的一员,在我们的企业区域管理着大约25,000个工作站和外围设备
如果我从Win 10 PC到Win 7 PC使用此命令,它会毫无问题地执行。
psexec \ remotecomputer -u domain \ adminaccount regedit.exe / i / s" \ server \ share \ directory1 \ directory2 \ directory3 \ someregistry.reg"
psexec启动regedit,导入上述注册表文件并关闭。
如果我从Win 10 PC到另一台Win 10 PC运行完全相同的命令,我会收到以下错误,从CMD作为ADMIN,
" PsExec无法在REMOTEPC_HOSTNAME上启动regedit.exe: 系统找不到指定的文件。" 它无法找到注册表??? WTF ??
我很好奇为什么Win 10会阻止我作为管理员导入注册表项?
我已尝试将reg导入作为解决方案,但我一直遇到语法错误,无法找到文件/路径。
它几乎就像远程PC一样,由于UAC设置而无法识别管理员输入?
在测试中,我已将组策略编辑器设置为启用远程注册表工具,无需更改。我已启用远程注册表服务并设置为自动启动服务。我可以通过远程注册表访问PC注册表...但是psexec只是在远程设备上工作。
我可以RDP到设备并运行等效的命令行: regedit.exe / i / s" \ UNC \ pathway ... \ etc *。* reg"它执行,没有问题。 这证明了regedit正在运作
任何人都可以提供一些专业知识吗?
答案 0 :(得分:0)
运行RegEdit的旧 PsExec 技巧并不总是有效。这是因为 psexec 依赖于隐藏的SMB管理员服务。 (出于安全考虑,应将其禁用。)
PsExec允许重定向远程启动的输入和输出 通过使用
SMB
和隐藏的$ ADMIN共享来执行 远程系统。通过此共享,PsExec使用Windows服务 控制管理中心API以在远程上启动PsExecsvc服务 系统,该系统创建一个与PsExec通信的命名管道。这个 命名管道允许将输入/输出重定向回 启动PsExec的系统。
因此,为了删除任何 TrustedInstaller 拥有的注册表项,可以使用其他工具。这可行:
ExecTI
-以TrustedInstaller身份运行 C:\Windows\regedit.exe