运行regsvr32/s/c需要哪些权限;myocx.ocx“;

运行regsvr32/s/c需要哪些权限;myocx.ocx“;,ocx,regsvr32,Ocx,Regsvr32,我将WindowsXP配置为生成计算机。生成过程在不是管理员的帐户下运行 有些项目注册为ocx控件的最后一步 regsvr32 /s /c ".\debug\myocx.ocx" 这一步失败了,我认为这与权限有关,因为在管理员帐户下做同样的事情很好 我需要为生成帐户提供哪些权限/策略,以及在何处执行?(浏览本地用户和组以及本地安全设置对我没有帮助)请检查中给出的regsvr32错误消息 而且我也不确定/c开关 希望这能有所帮助。注册OCX归结为在HKLM下的注册表中写入条目。默认情况下,非管

我将WindowsXP配置为生成计算机。生成过程在不是管理员的帐户下运行

有些项目注册为ocx控件的最后一步

regsvr32 /s /c ".\debug\myocx.ocx"
这一步失败了,我认为这与权限有关,因为在管理员帐户下做同样的事情很好


我需要为生成帐户提供哪些权限/策略,以及在何处执行?(浏览本地用户和组以及本地安全设置对我没有帮助)

请检查中给出的regsvr32错误消息

而且我也不确定/c开关


希望这能有所帮助。

注册OCX归结为在HKLM下的注册表中写入条目。默认情况下,非管理员帐户没有权限,我也不太确定您的构建帐户是否应该(调试OCX的安装在我的书中仍然是“安装”(v.s.building)。

通过regedit,您需要在“HKEY\U CLASSES\U ROOT”上授予构建帐户权限

右键单击HKEY_CLASSES_ROOT并选择Permissions…Full Control.

PowerShell脚本可在不担任管理员的情况下为regsvr32应用权限 虽然有可能只是,但这可能会导致授予更多的访问权限。在研究如何做到这一点时,我最终在HKCR上使用了权限,导致需要重新映像我的机器。为了编写此脚本,我使用了该工具,并筛选了拒绝的注册表权限,然后在剧本

下面的PowerShell脚本仅在我确定注册DLL(以及OCX)所需的密钥上创建(非继承)权限。这允许使用单个帐户(在本例中,是生成服务器代码生成器帐户)在没有管理员身份的情况下被授予注册DLL的权限。将第一个变量-
$buildAccutUserName
-替换为设置规则时要使用的帐户

$buildAcctUserName = "AzureDevOpsBuilder"

# Create Rule for full control of keys that need to be added to/updated/deleted from
$user = New-Object System.Security.Principal.NTAccount("$($env:COMPUTERNAME)\$buildAcctUserName")
$rule = New-Object System.Security.AccessControl.RegistryAccessRule(
  $user, 
  [System.Security.AccessControl.RegistryRights]"FullControl", 
  [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit",  <# ContainerInherit / None / ObjectInherit #>
  [System.Security.AccessControl.PropagationFlags]::None, 
  [System.Security.AccessControl.AccessControlType]::Allow)

# Grant access to HKCR
$regHKCRHive=[Microsoft.Win32.RegistryHive]::ClassesRoot;
$regHKCRBaseKey=[Microsoft.Win32.RegistryKey]::OpenBaseKey($regHKCRHive,[Microsoft.Win32.RegistryView]::Default)
$regkey=$regHKCRBaseKey.OpenSubKey("", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKLM\Software
$regHKLMHive=[Microsoft.Win32.RegistryHive]::LocalMachine
$regHKLMBaseKey=[Microsoft.Win32.RegistryKey]::OpenBaseKey($regHKLMHive,[Microsoft.Win32.RegistryView]::Default)
$regkey=$regHKLMBaseKey.OpenSubKey("SOFTWARE", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKLM\Software\Wow6432Node
$regkey=$regHKLMBaseKey.OpenSubKey("SOFTWARE\Wow6432Node", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKCR\Wow6432Node\CLSID
$regkey=$regHKCRBaseKey.OpenSubKey("Wow6432Node\CLSID", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKCR\TypeLib
$regkey=$regHKCRBaseKey.OpenSubKey("TypeLib", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKCR\Wow6432Node\Interface
$regkey=$regHKCRBaseKey.OpenSubKey("Wow6432Node\Interface", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKCR\Interface
$regkey=$regHKCRBaseKey.OpenSubKey("Interface", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

# Grant access to HKCR\AppID
$regkey=$regHKCRBaseKey.OpenSubKey("AppID", $true) 
$acl = $regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
$buildAcctUserName=“AzureDevpBuilder”
#创建完全控制需要添加/更新/删除的密钥的规则
$user=newobjectsystem.Security.Principal.NTAccount($($env:COMPUTERNAME)\$buildAccutUserName)
$rule=新对象System.Security.AccessControl.RegistryAccessRule(
$user,
[System.Security.AccessControl.RegistryRights]“FullControl”,
[System.Security.AccessControl.InheritanceFlags]“ContainerInherit,ObjectInherit”,
[System.Security.AccessControl.PropagationFlags]::无,
[System.Security.AccessControl.AccessControlType]::Allow)
#准许进入香港文化中心
$regHKCRHive=[Microsoft.Win32.RegistryHive]::ClassesRoot;
$regHKCRBaseKey=[Microsoft.Win32.RegistryKey]::OpenBaseKey($regHKCRHive[Microsoft.Win32.RegistryView]::默认值)
$regkey=$regHKCRBaseKey.OpenSubKey(“,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKLM\软件的权限
$reghklhive=[Microsoft.Win32.RegistryHive]::LocalMachine
$regHKLMBaseKey=[Microsoft.Win32.RegistryKey]::OpenBaseKey($regHKLMHive[Microsoft.Win32.RegistryView]::默认值)
$regkey=$regHKLMBaseKey.OpenSubKey(“软件”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予对HKLM\Software\Wow6432Node的访问权限
$regkey=$regHKLMBaseKey.OpenSubKey(“软件\Wow6432Node”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKCR\Wow6432Node\CLSID的权限
$regkey=$regHKCRBaseKey.OpenSubKey(“Wow6432Node\CLSID”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKCR\TypeLib的权限
$regkey=$regHKCRBaseKey.OpenSubKey(“TypeLib”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKCR\Wow6432Node\Interface的权限
$regkey=$regHKCRBaseKey.OpenSubKey(“Wow6432Node\Interface”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKCR\Interface的权限
$regkey=$regHKCRBaseKey.OpenSubKey(“接口”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)
#授予访问HKCR\AppID的权限
$regkey=$regHKCRBaseKey.OpenSubKey(“AppID”,$true)
$acl=$regkey.GetAccessControl()
$acl.SetAccessRule($rule)
$regkey.SetAccessControl($acl)

您刚刚保存了我的生成机器脚本!谢谢。(我注册了一个旧的COM对象(然后生成dotnet代码)注销。首先备份您的系统。不确定原因,但在授予网络服务帐户HKEY_CLASSES_ROOT的完全控制权后,我的windows 2008 R2服务器完全损坏且无法使用。这修复了我从finalbuilder注册OCX的问题。在提升的命令行上注册是可以的,但从finalbuilder注册是可以的(作为管理员)失败。更改注册表中的权限时执行了Trick。