segunda-feira, 24 de junho de 2013

Problemas de replicação em Active Directory

Finalmente vi corrigido um problema ao qual já tinha dedicado muito tempo e com a ajuda de dois PFE's da Microsoft, peritos  em replicação de Active Directory.


Topologia actual:

Na topologia em questão existem 3 DC's em três redes diferentes.

- O DC1 está na rede 1 é o primary domain controller e comunica com todos os outros DC's.

- O DC2 está na rede 2 e só consegue comunicar com o DC1 ( não é possível ver a rede nem os servidores na rede 3 ).

- Por seu turno o DC3 está na rede 3 que comunica com o DC1 e não consegue ver nem comunicar com o DC2 nem os respectivos servidores na rede 2.
Este DC serve de apoio a um servidor de Exchange numa rede offsite.


Um pouco de história:

Todos os DC's comunicavam alegremente entre eles anteriormente através de uma ligação VPN, no entanto essa ligação VPN foi substituída por uma ligação directa em fibra, e devido a limitação do datacenter remoto as redes locais tiveram de ser modeladas de acordo com as limitações do mesmo. O que fez com que apenas uma rede local conseguisse comunicar com a rede offsite.

A topologia no AD Sites and Services foi alterada de acordo com a nova topologia de rede.



O Problema:
A partir de uma certa altura o DC3 por alguma razão deixou de se sincronizar com o DC1, logo começaram a haver problemas com os objectos do Exchange com "lingering objects"( objectos que se mantém na base de dados apesar de já ter passado o período de tombstone ) à mistura.
O principal sintoma era quando tentava fazer uma replicação ou aceder a uma partilha de ficheiros no DC3 recebia o seguinte erro:

"Target Principal Name Incorrect"

Em detalhe, qualquer coisa como o seguinte:
The Kerberos client received a KRB_AP_ERR_MODIFIED ... .... ...

No entanto se o acesso à partilha fosse por endereço de IP a coisa funcionava bem.

Na primeira vez que tive assistência dos Premier Field Engineer da Microsoft a qual durou cerca de três horas, foram feitas alterações que nem consegui entender bem no entanto ficou a funcionar, mas após 60 dias, deixou de sincronizar e o problema voltou.

Após solicitar ajuda da Microsoft, desta vez consegui perceber o que foi feito no sentido de resolver o problema e percebi que tive muito perto de o resolver sem pedir ajuda.


A resolução:

A solução para o problema passava em efectuar diversos passos seguidos de uma determinada ordem, ora então vamos a eles.

1º - Alterar/criar as chaves de registo que não deixam os DC's replicar se encontrarem falhas na consistência das bases de dados:
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Strict Replication Consistency
para 0 nos três DC's.

2º Alterar/criar a chave de registo que permite a replicação entre DC's mesmo que o DC esteja com grandes diferenças na BD e que esteja dado como corrupto:
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Allow Replication With Divergent and Corrupt Partner
para 1 nos três DC's ( apesar de não ser necessário no DC2 ).

3º Desactivar o serviço de Kerberos no DC1 e no DC2 para que quando formos alterar as passwords kerberos nas máquinas as mesmas sejam feitas no DC3.
net stop kdc
E na consola MMC dos serviços configurar o serviço como desactivado ou em manual.

4º Limpar os tickets Kerberos no DC3 usando o programa psexec para que se possa iniciar a prompt como utilizador SYSTEM ( pois é o utilizador que está a correr o serviço KDC )
Comando:
psexec /s /i CMD
na linha de comandos escrever whoami para verificar se está como system e então limpar os tickets:
klist /purge

5º Efectuar o reset da password no DC3 contra ele mesmo ( executar no DC3 ).
netdom resetpwd /s:DC3 /ud:dominio\administrator /pd: *: *

6º Efectuar o reset da password no servidor DC1 para o DC3 ( executar no DC1 )
netdom resetpwd /s:DC3 /ud:dominio\administrator /pd: *: *

7º Forçar a replicação dos DC's ( correr no DC1 )
repadmin /syncall
Em seguida verificar se existem erros de replicação:
repadmin /showrepl
Em caso de não existirem problemas verificar se já se consegue aceder a uma partilha de ficheiros no DC3 através do nome.

8º Efectuar o ponto 7 no servidor DC3.


No caso do problema ficar resolvido então basta repor as chaves de registo dos pontos 1 e 2 de activar o kerberos nos servidores DC1 e DC2.




E pronto foi assim mais uma aventura no mundo Microsoft.

segunda-feira, 20 de maio de 2013

Exchange 2007 - Remover e voltar a adicionar caixa de correio dá erro: #550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##


Boa tarde,

Este é mais um daqueles erros com que a Microsoft já nos habituou.

Ora bem, quando se remove uma caixa de correio de um utilizador sem o remover da AD, e por qualquer razão é necessário voltar a adicionar essa caixa de correio, isso vai trazer problemas ( pelo menos no Exchange 2007 )!

Esse utilizador irá receber bem os emails do exterior e internos que não sejam enviados através do Outlook.

Quando o email for enviado através do Outlook o remetente irá receber um email de volta com erro.



Exemplo:
...................................................................................................................................................................

Falha na entrega a estes destinatários ou grupos:

Ze To
Não foi possível encontrar o endereço de correio electrónico que introduziu. Verifique o endereço de correio electrónico do destinatário e tente reenviar a mensagem. Se o problema continuar, contacte o suporte técnico.


Informações de diagnóstico para administradores:

Servidor de origem: mail.empresa.pt

IMCEAEX-_O=EMPRESA_OU=EXCHANGE+20ADMINISTRATIVE+20GROUP+20+YYDIBHHF45SPPLV+29_CN=RECIPIENTS_CN=User65fff7ae@empresa.pt
#550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##
...................................................................................................................................................................






Basicamente o Exchange guarda no atributo da Active directory LegacyExchangeDN um "ID" da conta de correio que quando se remove, ele mantém-se, e quando se volta a adicionar o Exchange cria um novo "ID" e altera-o da Active Directory no entanto no sistema ainda fica a apontar para o antigo.

Exemplo:

Utilizador: ze.to
Email: ze.to@empresa.pt

Atributo LegacyExchangeDN:

/o=empresa/ou=Exchange Administrative Group (YYDIBHHF45SPPLV)/cn=Recipients/cn=user65fff7ae

Ao apagar e recriar a caixa de correio, este atributo mantém-se na Active directory no entanto o Exchange atribuiu um novo ID à mailbox:
ID Exemplo:
usera255238a

Logo o atributo LegacyExchangeDN deveria ser o seguinte:
/o=empresa/ou=Exchange Administrative Group (YYDIBHHF45SPPLV)/cn=Recipients/cn=usera255238a



Resolução:

1 - Identificar o ID do utilizador no email de erro:
_O=EMPRESA_OU=EXCHANGE+20ADMINISTRATIVE+20GROUP+20+YYDIBHHF45SPPLV+29_CN=RECIPIENTS_CN=User65fff7ae@empresa.pt

( valor a negrito)


2 - Identificar o atributo no LegacyExchangeDN no servidor de Exchange, para isso e recorrendo à consola powershell do Exchange executar o seguinte comando:

get-mailbox ze.to | FL

E identificar o ID novo do utilizador:
/o=empresa/ou=Exchange Administrative Group (YYDIBHHF45SPPLV)/cn=Recipients/cn=usera255238a

( Valor a negrito )

3 - Corrigir o atributo usando a consola MMC "ADSI Edit" e navegando até ao utilizador em questão,  fazer propriedades e alterar o valor do atributo LegacyExchangeDN para o antigo ( /o=empresa/ou=Exchange Administrative Group (YYDIBHHF45SPPLV)/cn=Recipients/cn=user65fff7ae
) e voilá ficará a funcionar como dantes.

quinta-feira, 9 de maio de 2013

Remover caixas de correio no estado 'disconnected' sem apagar o utilizador da AD no Exchange 2007

Bom dia,

Hoje deparei-me com mais um problema caricato vindo da Microsoft, então não é que estes rapazes não tem uma função no GUI para apagar uma mailbox sem apagar a conta na Active Directory!

Temos a possibilidade de desconectar a mailbox que é apagada ao fim dos dias que estão configurados no sistema para a remoção dessas mailboxes e tem a opção para remover com a conta na AD, ora eu necessitava de remover imediatamente as contas para poder adicionar os emails a uma conta No-Reply de modo a indicar que os respectivos colaboradores já não se encontravam na empresa e reencaminhar esses emails para alguém responsável.

Então com a missão de descobrir um método para eliminar imediatamente as mailboxes lá andei de novo no metido no mundo do PowerShell e eis o que descobri.

Para remover a mailbox sem remover a conta na Active directory é necessário saber qual é a database onde essa mailbox se encontra e o GUID da respectiva Mailbox.

Para descobrir a database basta ir ás propriedades da conta no EMC ( Exchange Management Console )


Para descobrir qual o GUID e a Base de dados da mailbox do utilizador ze.manel:

get-mailboxstatistics ze.manel |select MailboxGuid,Database

Resultado:

MailboxGuid                                                 Database
-----------                                                 --------
12d214ed-cd37-4ae1-ae12-61d65712770e                        TODOS


Em seguida terá de desconectar a Mailbox, pode fazer pelo EMC ou por Powershell:
Disable-Mailbox ze.manel -confirm:$false


Com estes dados podemos então remover a conta em questão utilizando:


Remove-Mailbox -Database TODOS -StoreMailboxIdentity 12d214ed-cd37-4ae1-ae12-61d65712770e -confirm:$false

E pronto fica o problema resolvido.




terça-feira, 2 de abril de 2013

Acesso negado ao aceder a determinadas partilhas mesmo sabendo que as credenciais estão correctas


Boa tarde, e desta vez já cheira a Primavera :)

Tenho-me deparado com este problema com alguma regularidade, geralmente a aceder a partilhas em Windows 2003 a partir de Windows Vista, 7, 8, e restante homólogos na família server usando o Explorador do Windows.


Uma vez que não tenho tido muito tempo e não me posso dar ao luxo neste momento de tentar perceber o que realmente está a acontecer, o que uso como "workaround" é fazer a ligação à partilha através da linha de comando.

Neste caso aceder à drive C: do Servidor1:  
net use \\Servidor1\c$

Irá pedir as credênciais e voilá.

A partir daqui já se consegue aceder a partir do explorador do windows.


Claro que no caso de o servidor não estar num dominio terão de activar as partilhas administrativas adicionando o registo DWORD LocalAccountTokenFilterPolicy com valor 1 em HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System    do registo do Windows.


terça-feira, 19 de fevereiro de 2013

Bugs.... ai os bugs da Microsoft desta vez no System Center VMM 2012 SP1

    Foi com bastante agrado que verifiquei que a nova versão do System Center Virtual Machine Manager 2012 SP1  ( SCVMM2012 SP1 para abreviar ) corrigiu o tão malfadado bug de não ser possível importar máquinas físicas para virtuais se detectasse falta de espaço nos discos dos hosts HYPER-V, pior não detectava os volumes partilhados do cluster nem mesmo discos externos ficando assim bloqueadas quaisquer tentativas de importar máquinas físicas, quer seja para Backup quer seja para migração.

No entanto e na minha opinião, demoraram tempo a mais para resolução de um bug que estava ali de caras e já vinha desde a versão 2008.

PS: Corrigem uns e trazem outros, um bug muito chato e para o qual ainda não consegui obter resolução é o de um dos Hosts HYPER-V não conseguir instalar a versão mais recente do agente, pior não deixa sequer remover a versão antiga. Mas pronto como sabemos, vindo da Microsoft já se pode considerar uma coisa normal.


AM

quinta-feira, 31 de janeiro de 2013

Fazer download de video e audio da RTP ou TSF




Por diversas vezes tenho a necessidade de efectuar o download de ficheiros de video e audio de diversas fontes como o Youtube por exemplo, neste caso existem muitas aplicações e plugins para Firefox para efectuar o download de sites que utilizem o Adobe Flash Player.


No entanto existem muitos sites que fazem uso do JWPlayer também conhecido como jeroenwijering nos quais tal não era possível. Geralmente usava o rtmpdump em linha de comando, e teria de procurar no código fonte da página pelos endereços tanto do servidor rtmp como do ficheiro, o que era mais trabalhoso.



Streamtransport a fazer o download do programa
5 pra meia noite da RTP
Descobri o StreamTransport, um programinha muito porreiro que efectua o download desses streams de audio e video e muito fácil de utilizar.


Basta introduzir o endereço do site web no programa e fazer play no player que aparecem os links para fazer o download.


segunda-feira, 21 de janeiro de 2013

A aventura de Alterar/adicionar a chave do Windows 8

     Não percebendo bem porquê mas a malta que desenvolveu o Windows 8 gostou de tornar mais complexo a simples alteração/adição da chave do sistema.
No windows 7 e no Vista bastava ir as propriedades do meu computador ou então através do menu Sistema no Painel de Controlo e voilá, existia uma opção para alterar comodamente a chave.

No windows 8, isso foi removido antes de ser lançado existia um método um pouco arcaico em que se adicionava com o seguinte comando na linha de comandos ( mais conhecido como CMD):

slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Basta substituir os 'x' pela chave incluindo os '-'.


Ou seja um pouco mais chato que o método que eu uso.

Eu uso o seguinte comando também com recurso à linha de comando ( ou em alternativa pode-se digitar na caixa de pesquisa do menu iniciar:


slui 3

basta digitar a chave na janela e fazer seguinte.


já conheço o slui desde o windows 7, permite fazer a activação do windows, alteração da chave, reactivação do windows entre outras, e com a vantagem de ser gráfico, o que facilita e bastante no copy/paste.


AM