Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
C# 管理员访问时运行的安装程序被拒绝尝试从自定义操作模块终止进程_C#_Wix_Custom Action_Access Denied - Fatal编程技术网

C# 管理员访问时运行的安装程序被拒绝尝试从自定义操作模块终止进程

C# 管理员访问时运行的安装程序被拒绝尝试从自定义操作模块终止进程,c#,wix,custom-action,access-denied,C#,Wix,Custom Action,Access Denied,管理员访问时运行的安装程序被拒绝尝试从自定义操作模块终止进程 自定义操作由一个已消费的自定义操作项目通过chef's Omnibus进行处理 我在同一个模块中有其他自定义操作方法,它们执行得很好,但没有一种是系统范围内的、侵入性的。我不明白的是,为什么我的访问权被拒绝,或者当我已经是管理员的时候,如何解决这个问题 我添加了string userID=WindowsIdentity.GetCurrent().Name,并从调试消息中得到了以下信息: 从WindowsIdentity.GetCurr

管理员访问时运行的安装程序被拒绝尝试从自定义操作模块终止进程

自定义操作由一个已消费的自定义操作项目通过chef's Omnibus进行处理

我在同一个模块中有其他自定义操作方法,它们执行得很好,但没有一种是系统范围内的、侵入性的。我不明白的是,为什么我的访问权被拒绝,或者当我已经是管理员的时候,如何解决这个问题

我添加了
string userID=WindowsIdentity.GetCurrent().Name
,并从调试消息中得到了以下信息:

从WindowsIdentity.GetCurrent()返回的用户ID。名称为:NT AUTHORITY\SYSTEM

当我添加try/catch块来捕获异常消息时,它只是“访问被拒绝”。当它被触发时,我将它隔离到
Process.Kill()

MSI(10:64)[14:24:02:799]:执行op:ActionStart(Name=RestartExplorer,,)

MSI(10:64)[14:24:02:801]:执行op:CustomActionSchedule(Action=RestartExplorer,ActionType=3073,Source=BinaryData,Target=RestartExplorer,)

MSI(10:98)[14:24:02:803]:调用远程自定义操作。DLL:C:\windows\Installer\MSI194.tmp,入口点:RestartExplorer SFXCA:正在将自定义操作提取到临时目录:C:\windows\Installer\MSI194.tmp-\ SFXCA:绑定到CLR v4.0.30319版

正在调用自定义操作安装程序\u自定义\u操作!安装程序\u自定义\u操作。自定义操作。重新启动Explorer

触发安装程序自定义操作异常:访问被拒绝

CustomAction RestartExplorer返回了实际错误代码1603(注意,如果转换发生在沙盒内部,则可能无法100%准确)

操作结束于14:24:02:InstallFinalize。返回值3

在实际的WiX文件中,我正在识别自定义操作:

<CustomAction Id="RestartExplorer"
                      Execute="deferred"
                      BinaryKey="installer_custom_action.CA.dll"
                      DllEntry="RestartExplorer"
                      Impersonate="no"
                      Return="check" />

然后在
区域的下方,我有:

<Custom Action='RestartExplorer' 
        Before='InstallFinalize'>NOT Installed AND NOT REMOVE</Custom>
未安装也未删除
<Custom Action='RestartExplorer' 
        Before='InstallFinalize'>NOT Installed AND NOT REMOVE</Custom>