Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上以用户模式访问TPM_Windows_Registry_Acl_Privileges_Tpm - Fatal编程技术网

在Windows上以用户模式访问TPM

在Windows上以用户模式访问TPM,windows,registry,acl,privileges,tpm,Windows,Registry,Acl,Privileges,Tpm,我开发了一个windows应用程序,其中包括访问TPM的NVM。 在开发过程中,我以管理员的身份运行,对其进行了测试,一切正常。 问题是,我不希望它在项目发布和使用时以管理员身份运行 我曾考虑在有限的时间内提升应用程序的权限,但这需要管理员帐户为用户帐户分配他不应该拥有的权限 然后我看到了这个文件: 声明可以通过创建注册表值来修改访问限制,但没有说明如何修改 哪种方式更能达到上述目标 如果是通过提升特权,那么是哪一个?为什么会更好 如果是使用上述文档的方法,那么如何修改访问限制以及如何修改 对于

我开发了一个windows应用程序,其中包括访问TPM的NVM。 在开发过程中,我以管理员的身份运行,对其进行了测试,一切正常。 问题是,我不希望它在项目发布和使用时以管理员身份运行

我曾考虑在有限的时间内提升应用程序的权限,但这需要管理员帐户为用户帐户分配他不应该拥有的权限

然后我看到了这个文件: 声明可以通过创建注册表值来修改访问限制,但没有说明如何修改

  • 哪种方式更能达到上述目标
  • 如果是通过提升特权,那么是哪一个?为什么会更好
  • 如果是使用上述文档的方法,那么如何修改访问限制以及如何修改

  • 对于TPM 2,在Windows 8及更高版本上,必须按顺序将要使用的特定命令添加到命令列表中

    注册表位置为:

    HKEY_LOCAL_MACHINE    
       Software
          Microsoft
             Tpm
                AllowedW8Commands
                   List
    

    例如,如果您想允许NV Read命令,您可以添加一个名为“14E”的新的
    REG_DWORD
    注册表项,因为这是
    TPM2_CC_NV_Read
    序号的十六进制代码,值为“1”。

    谢谢您的回答。我也试过了,Microsoft文档说明它应该在以下目录下:
    HKEY\U LOCAL\U MACHINE\Software\Microsoft\Tpm\AllowedW8Commands\List
    ,我相信我添加了我使用的所有命令,也许更多。我遗漏了什么?是的,这是关于
    列表的,很抱歉。您的Windows版本和TPM版本是什么?另外,你能分享你试图执行的代码吗?很遗憾,我不能分享代码,但我实际上在做的是从TPM的NVM中写入和读取。我使用这个TPM库:并运行写/读示例。当我以管理员的身份运行它时,我可以成功地写入和读取,当我以用户的身份运行相同的示例时,即使设置了这些注册表值,它也会失败。还有什么可以阻止用户帐户访问此TPM功能?或者任何TPM功能?好的,我假设您还有一个条目用于
    TPM2\u CC\u NV\u Write
    (十六进制代码137)。另外,请注意,对于用户帐户,您应该使用
    AllowedW8UserCommands
    注册表项(我回答中的
    AllowedW8Commands
    项是针对管理员帐户的,我刚刚在那篇文章的底部发现了这一点),所以尝试一下……所以我也尝试了,但应用程序仍然无法作为用户访问。我调试了这个应用程序,发现在Tss2_Sys_ExecuteFinish中解组时返回了一个错误