Criando Keytab para acesso de maquinas UNIX no Active Directory


Para que servidores UNIX possam obter acesso ao AD e para que os mesmos possam ter um objeto ativo no AD bem como a possibilidade de registrarmos SPNs para os mesmos, trabalharmos com autenticação Kerberos de forma transparente,etc.O que torna tudo isso possível é a Keytab que é gerado pela ferramenta KTPASS (ferramenta nativa do Windows).

Segue abaixo exemplo de comando para gerar a Keytab (lembrando que o objeto do computador no AD deve ser préviamente criado):

 

ktpass /princ host/COMPUTER.domain.test@DOMAIN.TEST /out NomeDoArquivo_host.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser DOMAIN\COMPUTER$ +rndPass

 

Substituir:

COMPUTER = Nome do Computador

DOMAIN.TEST = Nome do Domínio

DOMAIN = Netbios do Domínio

 

obs:-Necessário alinhar com a equipe de UNIX se os nomes de computador e domínio envolvidos no comando serão imputados com letras minúsculas ou maiúsculas.

Search empty GPO


Uma das tarefas mais importantes na administração do Active Directory é a manutenção de tuning das GPOs.

Abaixo segue um script de PowerShell para que possamos pesquisar GPOs vazias; ou seja, GPOs onde não temos nenhuma configuração efetuada, assim podemos eliminar estes objetos do AD, impedindo arquivos desnecessários na pasta SYSVOL.Basta copiar o código abaixo em um arquivo TXT e renomear a extensão para .PS1

 

import-module grouppolicy
$gpos = get-gpo -All
foreach ($item in $gpos)
{
      if ($item.Computer.DSVersion -eq 0 -and $item.User.DSVersion -eq 0)
     {
             write-host $item.DisplayName is empty
      }
}

 

Espero que seja útil!

Dell Vostro Bluetooth with Windows 8 and Windows 8.1


Depois de me matar durante um tempo, finalmente consegui fazer o bluetooth do meu Dell Vostro 3300 funcionar no Windows 8 e Windows 8.1!

Para isso, achei o driver não no site da Dell, mas no site da LENOVO ( http://lnv.gy/1djvvPm ).

De qualquer forma, podemos também tentar localizar o driver para o Broadcom bluetooth em outro site…

Script para resolução de erros de SPN


Hoje em dia é muito comum problemas de SPN em uma rede, porém muitos aplicam soluções paleativas, como retirar e re-ingressar uma maquina no domínio quando a mesma apresenta um erro de “relação de confiança” à tentativa de logon de um usuário por exemplo…

Um evento comum de SPN é o que segue abaixo:

image

…para tentativa de resolução deste evento entre outros, segue script para que possamos efetuar queries referentes à SPN´s no Global Catalog a fim de resolver problemas de duplicação e conflitos de SPN.

Segue abaixo código:

 

' Copyright (c) Microsoft Corporation 2004 -
' File:        querySpn.vbs
' Contents:   Query a given SPN in a given forest to find the owners
' History:     7/7/2004   Craig Wiand   Created    
Option Explicit     
Const DUMP_SPNs = True
Dim oConnection, oCmd, oRecordSet
Dim oGC, oNSP
Dim strGCPath, strClass, strSPN, strADOQuery
Dim vObjClass, vSPNs, vName

ParseCommandLine()

'--- Set up the connection ---
Set oConnection = CreateObject("ADODB.Connection")
Set oCmd = CReateObject("ADODB.Command")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"
Set oCmd.ActiveConnection = oConnection
oCmd.Properties("Page Size") = 1000

'--- Build the query string ---
strADOQuery = "<" + strGCPath + ">;(servicePrincipalName=" + strSPN + ");" & _
    "dnsHostName,distinguishedName,servicePrincipalName,objectClass," & _
        "samAccountName;subtree"
oCmd.CommandText = strADOQuery

'--- Execute the query for the object in the directory ---
Set oRecordSet = oCmd.Execute
If oRecordSet.EOF and oRecordSet.Bof Then
  Wscript.Echo "No SPNs found!"
Else
 While Not oRecordset.Eof
   Wscript.Echo oRecordset.Fields("distinguishedName")
   vObjClass = oRecordset.Fields("objectClass")
   strClass = vObjClass( UBound(vObjClass) )
   Wscript.Echo "Class: " & strClass
   If UCase(strClass) = "COMPUTER" Then
      Wscript.Echo "Computer DNS: " & oRecordset.Fields("dnsHostName")
   Else
      Wscript.Echo "User Logon: " & oRecordset.Fields("samAccountName")
   End If

   If DUMP_SPNs Then
      '--- Display the SPNs on the object --- 
      vSPNs = oRecordset.Fields("servicePrincipalName")
      For Each vName in vSPNs
         Wscript.Echo "-- " + vName
      Next
   End If
   Wscript.Echo
   oRecordset.MoveNext
 Wend
End If

oRecordset.Close
oConnection.Close

Sub ShowUsage()
   Wscript.Echo " USAGE:    " & WScript.ScriptName & _
        " SpnToFind [GC Servername or Forestname]"
   Wscript.Echo
   Wscript.Echo " EXAMPLES: " 
   Wscript.Echo "           " & WScript.ScriptName & _
        " MSSQLSvc/MySQL.company.com:1433"
   Wscript.Echo "           " & WScript.ScriptName & _
        " HOST/Server1 Corp.com"
   Wscript.Quit 0
End Sub

Sub ParseCommandLine()
  If WScript.Arguments.Count <> 1 And WScript.Arguments.Count <> 2 Then
ShowUsage()
  Else
   strSPN = WScript.Arguments(0)
   If WScript.Arguments.Count = 2 Then
      strGCPath = "GC://" & WScript.Arguments(1)
   Else
    '--- Get GC -- 
    Set oNSP = GetObject("GC:")
    For Each oGC in oNSP
      strGCPath = oGC.ADsPath
    Next
   End If
 End If 
End Sub

 

Segue referências:

http://bit.ly/YNodYH

http://bit.ly/VP6AVa

Compartilhamento SYSVOL e NETLOGON não estão disponíveis


Pessoal,

Caso após a promoção de um DC você verificar que os compartilhamentos SYSVOL e NETLOGON não estão disponíveis no servidor, verifiquem se o valor SysvolReady da chaveHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parametersestá com o valor 1 . Caso não, modifique e verifique se os compartilhamentos foram criados.

image