Como usar instreg.exe e instsvc.exe (ferramentas de linha de comando para instalação do Firebird no Windows)
Como usar instreg.exe e instsvc.exe
Autores: Original: Alex Peshkov (peshkoff at mail.ru), Revisado por: Olivier Mascia (om at tipgroup.com)
NOTA :: Para resolver quaisquer problemas potenciais com caminhos longos contendo espaços ou caracteres especiais (não ascii), estas ferramentas não aceitam mais o RootDirectory como argumento de linha de comando. Ambos os binários devem ser instalados (ou copiados) para o diretório /bin abaixo do diretório raiz do Firebird.
(Diretório raiz == diretório raiz onde firebird.conf e security2.fdb estão instalados.)
Por exemplo, se eles estiverem localizados em C:\FB20.in, o diretório raiz será deduzido como C:\FB20.
INSTREG.EXE
O objetivo deste utilitário é instalar as chaves do Registro para o Firebird. Como sua tarefa é deduzir o caminho do RootDirectory como o diretório imediatamente acima de sua própria localização e gravá-lo no Registro como um caminho absoluto, o instreg.exe deve ser instalado no subdiretório /bin do diretório raiz do Firebird (veja a nota acima).
A chave do Registro *não* é necessária para o funcionamento do mecanismo; no entanto, muitas ferramentas de terceiros esperam lê-la para funcionar. A chave armazenada é
HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances
e contém um valor de string: DefaultInstance.
Este valor de string ‘DefaultInstance’ contém o caminho completo (terminado com barra invertida) para o diretório raiz da instalação. Esta configuração foi criada para que o gerenciamento de múltiplas instâncias nomeadas do servidor seja possível em uma próxima versão. Atualmente, a única instância recebe o nome codificado ‘DefaultInstance’. Não há mais nada armazenado no registro. Qualquer informação de versão ou configuração deve ser encontrada pelas ferramentas de terceiros no arquivo firebird.conf relevante. Este arquivo pode ser localizado graças ao caminho raiz armazenado no valor …\Instances\DefaultInstance.
Uso:
instreg i[nstall]
instreg r[emove]
‘-z’ pode ser usado com qualquer outra opção, imprime a versão do software Firebird como a primeira linha da saída.
Para obter uma breve ajuda em texto, basta invocar instreg.exe sem argumentos.
INSTSVC.EXE
O Firebird fornece uma rotina padrão para gerenciar o Serviço Firebird nas plataformas WinNT/2000/XP - instsvc.exe.
Mensagens do console
A saída das mensagens de erro do Windows (se houver) foi aprimorada para que qualquer transliteração necessária de strings ansi para o charset OEM da janela do console seja feita. Isso significa que pessoas que usam Windows não-inglês receberão mensagens de erro do sistema Windows em seu idioma, com acentos corretos e assim por diante.
Recursos relacionados à segurança
A opção ‘-login’ (ou -l) implementada anteriormente foi extensivamente revisada e aprimorada. Agora ela pode ser usada para configurar o(s) serviço(s) para executar sob uma conta de usuário específica (presumivelmente com privilégios limitados no sistema) em vez do padrão “LocalSystem”.
Uso:
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] | -m[ultithreaded] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] username [password] ]
[ -n[ame] instance ]
[ -i[nteractive] ]
instsvc sta[rt] [ -b[oostpriority] ] [ -n[ame] instance ]
instsvc sto[p] [ -n[ame] instance ]
instsvc q[uery]
instsvc r[emove] [ -n[ame] instance ]
Este utilitário deve ser localizado e executado a partir do diretório ‘bin’ da sua instalação do Firebird.
-
‘*’ denota os valores padrão
-
‘-z’ pode ser usado com qualquer outra opção, imprime a versão
-
‘username’ refere-se por padrão a uma conta local nesta máquina.
-
Use o formato ‘dominio\usuario’ ou ‘servidor\usuario’ se apropriado.
Exemplos
assumindo que o Firebird está instalado (copiado para seu local de instalação).
Superserver e inicialização automática são agora o padrão.
instsvc i
instsvc install
configura um Superserver como um serviço em modo de inicialização automática (iniciado na inicialização do sistema) sob a identidade padrão do sistema, chamada “LocalSystem”.
instsvc i -g
instsvc install -guardian
como acima, mas inicia o serviço Guardian primeiro.
As opções “-demand” (-d) e “-classic” (-c) permitem que os padrões sejam alterados, para que o servidor clássico (em vez do superserver) possa ser configurado como um serviço e qualquer um dos serviços possa ser configurado para iniciar sob demanda em vez de iniciar na inicialização do sistema.
Para remover o(s) serviço(s)
Os serviços devem ser interrompidos antes de serem removidos. Isso poderia ser automatizado com 3 linhas de código, mas é melhor deixar como está por segurança.
instsvc r
instsvc remove
remove a definição do serviço. Se o Guardian foi configurado, tanto o serviço do guardian quanto o do servidor serão removidos.
Para iniciar e parar o(s) serviço(s) instalado(s)
instsvc sta
instsvc start
inicia o servidor ou Guardian + servidor, de acordo com o que foi configurado pelo comando install.
instsvc stop
para o servidor ou Guardian + servidor, de acordo com o que foi configurado pelo comando install.
Para obter um relatório da condição do servidor
Este é um novo comando:
instsvc q
instsvc query
Imprime um relatório de exatamente *o que* está configurado e *como*, bem como se os serviços estão em execução ou parados.
Para usar o recurso de login seguro
A opção “-login” requer um nome de usuário e uma senha:
instsvc i -g -login user pass
Isso configuraria o superserver do FB como inicialização automática, com Guardian, para executar sob a identidade “user” cuja senha é pass.
\* Se a senha for incluída, ela não deve começar com ‘-’.
\* Se a senha for omitida da linha de comando, o instsvc solicitará que ela seja digitada. Nesse caso, a senha será mascarada com ‘*’ enquanto é digitada.
Ao configurar os serviços como acima, o instsvc concede automaticamente o privilégio do sistema operacional Windows chamado “Fazer logon como um serviço” ao usuário especificado. Isso é obrigatório, caso contrário o serviço não teria permissão para iniciar. O Instsvc não informa sobre isso, a menos que falhe.
Para levar em consideração a possibilidade de que o usuário que faz login via a opção -login possa ser um usuário comum sem privilégios de administrador na máquina, o instsvc ajusta o descritor de segurança padrão do(s) serviço(s) para que este usuário possa iniciar/parar/consultá-los.
Isso é necessário para permitir que o Guardian (também executando como este usuário) inicie o servidor FB. O usuário não poderá desinstalar o(s) serviço(s) nem alterar sua configuração.
NOTA
O Instsvc não CRIA o “usuário” na máquina Windows. Isso não seria uma boa ideia. O administrador pode querer criar o usuário como parte da máquina local ou como parte de um domínio, e o instsvc não tem necessidade particular de usurpar a responsabilidade do administrador de criar usuários.
O usuário precisa ter acesso de leitura/escrita a todos os bancos de dados e ao arquivo firebird.log. Por razões de segurança, acesso de escrita ao firebird.conf e aos executáveis do Firebird NÃO deve ser concedido.
No Windows NT/2K/XP é comum incluir o prefixo de domínio ou servidor para um usuário definido em um domínio ou localmente em outro servidor. Nos exemplos acima, “user” pode assumir a forma de:
DOMINIO\user ou
SERVIDOR\user
Sem prefixo, o usuário é implicitamente um usuário local na máquina atual.