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