O que realmente acontece durante / regserver e / unregserver?

2

Estou instalando um programa em um servidor e desinstalando o programa de um computador separado.

Servidor: Windows Server 2008 R2 Computador: Windows 7 Ultimate

Encontrei o instalador & desinstalador no mesmo ponto. Essas duas máquinas estão em um domínio com configurações de imposição de diretiva de grupo.

Ao instalar o programa, eles param em

"C:\Lumesnion\admin\smc.exe" /regserver

No log de instalação. Eles param em

"C:\Lumesnion\admin\smc" /unregserer

No log de desinstalação.

Este é um problema com o editor de registro sendo bloqueado? Eu não consigo obter nenhuma informação sobre o porquê eles estão presos lá. Eu habilitei a edição do registro através do regedit e eles ainda estão travados.

Alguém pode me dizer o que / regserver e / unregserver estão realmente fazendo e como posso corrigi-lo para que o programa seja realmente instalado com êxito?

EDIT 1: Esqueci de adicionar Eu sou um administrador de domínio e um administrador local na máquina. Eu estou instalando o programa com "Executar como administrador".

EDIT 2: Instalando o Controle do Dispositivo Lumension.

EDIT 3: Apenas fiz um teste e iniciei o instalador usando o Process Monitor e ele mostra um "FAST IO DISALLOWED" na pasta que o smc.exe deve ser instalado. Ainda fazendo algumas pesquisas e perguntando se isso tem alguma coisa a ver com o problema. Tanto quanto eu entendo o / regserver é usado para registrar valores de DCOM, mas o Fast I / O é o que faz o registro. A menos que eu não tenha entendido corretamente. Estou errado?

    
por JukEboX 06.01.2017 / 21:28

1 resposta

3

Can anyone tell me what /regserver and /unregserver is actually doing?

Auto-registro:

Besides the licensing issues, which are handled through IClassFactory2, an installation procedure typically creates the necessary registry entries for a component to run properly in the COM and OLE context.

Além disso:

The existence of this data allows any interested party, such as an application that wishes to integrate this new component, to determine whether the server supports self-registration without having to load the DLL or EXE first.

If the server is packaged in a DLL module, the DLL must export the functions DllRegisterServer and DllUnregisterServer. Any application that wishes to instruct the server to register itself (that is, all its CLSIDs and type library IDs) can obtain a pointer to DllRegisterServer through the GetProcAddress function. Within DllRegisterServer, the DLL creates all its necessary registry entries, storing the correct path to the DLL for all InprocServer32 or InprocHandler32 entries.

When an application wishes to remove the component from the system, it should unregister that component by calling DllUnregisterServer. Within this call, the server removes exactly those entries it previously created in DllRegisterServer. The server should not blindly remove all entries for its classes because other software may have stored additional entries, such as a TreatAs key.

If the server is packaged in an EXE module, the application wishing to register the server launches the EXE server with the command-line argument /RegServer or -RegServer (case-insensitive). If the application wishes to unregister the server, it launches the EXE with the command-line argument /UnregServer or -UnregServer. The self-registering EXE detects these command-line arguments and invokes the same operations as a DLL would within DllRegisterServer and DllUnregisterServer, respectively, registering its module path under LocalServer32 instead of InprocServer32 or InprocHandler32.

"Is this an issue with the registry editor being locked down?"

É muito provável que isso tenha a ver com o fato de você não ser um administrador no domínio. No entanto, isso não é possível de fato responder sem sombra de dúvida, com base nas informações que você nos forneceu.

Can anyone tell me what /regserver and /unregserver is actually doing?

Ele simplesmente registra o aplicativo para que ele possa se comunicar com o Biblioteca COM

These 2 machines are on a domain with a Group Policy enforcing settings

.....

When installing the program they stop at

.....

How I can fix it so the program actually installs successfully?

A correção mais simples é ter um usuário, com direitos de administrador no domínio ativo, instalar o aplicativo.

    
por 06.01.2017 / 21:46