# Servidores: Samba

### Situações frequentes

---

**001. Criei uma GPO para ativar a Assistência Remota do Windows mas não consigo conectar aos clientes.**

<span style="font-weight: 400;">Apesar da Política de Grupo ter sido configurada corretamente, a Assistência Remota não irá funcionar perfeitamente devido a uma incompatibilidade da interface U2U do Kerberos usado para a autenticação do referido recurso do Windows.</span>

<span style="font-weight: 400;">Para a execução com sucesso, é preciso:</span>

- <span style="font-weight: 400;">No Windows: Aplicar um hotfix disponível em </span>[<span style="font-weight: 400;">neste link.</span>](https://support.microsoft.com/en-us/kb/939820)
- <span style="font-weight: 400;">No Samba, definir um Service Principal Name (SPN) para o usuário que vai receber a assistência.</span>

<span style="font-weight: 400;">Para que não seja necessário adicionar um SPN manualmente a cada usuário existente, crie um script com o conteúdo abaixo e execute. Adicionalmente, sua execução pode ser agendada no cron.</span>

```shell
#!/bin/bash

filterString="k/|G/|Ad"
sambaTool=$(which samba-tool)
searchString="has no service"
user=""

# Loop para descobrir os usuários
for user in $( ${sambaTool} user list | grep -v "^[${filterString}]" )
do
 # Procura um SPN configurado para o usuário
 ${sambaTool} spn list "${user}" | grep "${searchString}"
 
 # Se o retorno for zero, não possui um SPN configurado
 if [ $? == 0 ]
 then
 
   # Define um SPN. Ex: se o usuário for "teste", será definido "spn-teste"
   ${sambaTool} spn add spn-"${user}" "${user}"
   
   # Avisa sobre a definição
   echo "Um SPN foi definido para o usuário ${user}"
 else
   : 
 fi

done
```