Atualizações Recentes Ativar/desativar aninhamento de comentários | Atalhos do Teclado

  • Sandro Zamboni 8:45 AM em 23/07/2015 Link Permanente | Resposta
    Tags: , , , Powershell active directory, replicação, ,   

    Verificando replicação de GPO 


    Como vão meus queridos leitores!!

    Estou em uma procura incessante por um script que me traga o tempo de replicação da Sysvol…lembrando que o ambiente em questão está em “Windows Server 2003″ como modo funcional de domínio; ou seja, temos apenas a possibilidade de replicar a Sysvol com FRS…quem puder ajudar….eheheheheh

    …durante essa jornada, me deparei com uma função bem bacana chamada Get-ADGPOReplication que filtra resultados do cmdlet Get-GPO para que possamos comparar as versões da Sysvol para cada GPO em todos os DCs do domínio!!Assim, podemos verificar se a replicação bem como os objetos de política estão consistentes em todo o domínio…sei que nesse momento bateu aquela vontade de chorar de emoção!!

    Segue abaixo código da função:

    function Get-ADGPOReplication
    {
    <#
    .SYNOPSIS
    This function retrieve one or all the GPO and report their DSVersions and SysVolVersions (Users and Computers)
    .DESCRIPTION
    This function retrieve one or all the GPO and report their DSVersions and SysVolVersions (Users and Computers)
    .PARAMETER GPOName
    Specify the name of the GPO
    .PARAMETER All
    Specify that you want to retrieve all the GPO (slow if you have a lot of Domain Controllers)
    .EXAMPLE
    Get-ADGPOReplication -GPOName “Default Domain Policy”
    .EXAMPLE
    Get-ADGPOReplication -All
    .NOTES
    Francois-Xavier Cat
    @lazywinadm
    lazywinadmin.com

    VERSION HISTORY
    1.0 2014.09.22 Initial version
    Adding some more Error Handling
    Fix some typo
    #>
    #requires -version 3
    [CmdletBinding()]
    PARAM (
    [parameter(Mandatory = $True, ParameterSetName = “One”)]
    [String[]]$GPOName,
    [parameter(Mandatory = $True, ParameterSetName = “All”)]
    [Switch]$All
    )
    BEGIN
    {
    TRY
    {
    if (-not (Get-Module -Name ActiveDirectory)) { Import-Module -Name ActiveDirectory -ErrorAction Stop -ErrorVariable ErrorBeginIpmoAD }
    if (-not (Get-Module -Name GroupPolicy)) { Import-Module -Name GroupPolicy -ErrorAction Stop -ErrorVariable ErrorBeginIpmoGP }
    }
    CATCH
    {
    Write-Warning -Message “[BEGIN] Something wrong happened”
    IF ($ErrorBeginIpmoAD) { Write-Warning -Message “[BEGIN] Error while Importing the module Active Directory” }
    IF ($ErrorBeginIpmoGP) { Write-Warning -Message “[BEGIN] Error while Importing the module Group Policy” }
    Write-Warning -Message “[BEGIN] $($Error[0].exception.message)”
    }
    }
    PROCESS
    {
    FOREACH ($DomainController in ((Get-ADDomainController -ErrorAction Stop -ErrorVariable ErrorProcessGetDC -filter *).hostname))
    {
    TRY
    {
    IF ($psBoundParameters[‘GPOName’])
    {
    Foreach ($GPOItem in $GPOName)
    {
    $GPO = Get-GPO -Name $GPOItem -Server $DomainController -ErrorAction Stop -ErrorVariable ErrorProcessGetGPO

    [pscustomobject][ordered] @{
    GroupPolicyName = $GPOItem
    DomainController = $DomainController
    UserVersion = $GPO.User.DSVersion
    UserSysVolVersion = $GPO.User.SysvolVersion
    ComputerVersion = $GPO.Computer.DSVersion
    ComputerSysVolVersion = $GPO.Computer.SysvolVersion
    }#PSObject
    }#Foreach ($GPOItem in $GPOName)
    }#IF ($psBoundParameters[‘GPOName’])
    IF ($psBoundParameters[‘All’])
    {
    $GPOList = Get-GPO -All -Server $DomainController -ErrorAction Stop -ErrorVariable ErrorProcessGetGPOAll

    foreach ($GPO in $GPOList)
    {
    [pscustomobject][ordered] @{
    GroupPolicyName = $GPO.DisplayName
    DomainController = $DomainController
    UserVersion = $GPO.User.DSVersion
    UserSysVolVersion = $GPO.User.SysvolVersion
    ComputerVersion = $GPO.Computer.DSVersion
    ComputerSysVolVersion = $GPO.Computer.SysvolVersion
    }#PSObject
    }
    }#IF ($psBoundParameters[‘All’])
    }#TRY
    CATCH
    {
    Write-Warning -Message “[PROCESS] Something wrong happened”
    IF ($ErrorProcessGetDC) { Write-Warning -Message “[PROCESS] Error while running retrieving Domain Controllers with Get-ADDomainController” }
    IF ($ErrorProcessGetGPO) { Write-Warning -Message “[PROCESS] Error while running Get-GPO” }
    IF ($ErrorProcessGetGPOAll) { Write-Warning -Message “[PROCESS] Error while running Get-GPO -All” }
    Write-Warning -Message “[PROCESS] $($Error[0].exception.message)”
    }
    }#FOREACH
    }#PROCESS
    }

    1. Crie um arquivo .ps1 contendo o código acima, ou baixe o mesmo aqui 
    2. Execute o script no PS ISE como administrador
    3. Execute a função!!

    1

    Temos algumas opções de sintaxe, como por exemplo:

    Para trazer o resultado de uma única GPO:

    Get-ADGPOReplication -GPOName “Default Domain Policy”

    Para trazer o resultado de algumas políticas:

    Get-ADGPOReplication -GPOName “Default Domain Policy”,”Default Domain Controllers Policy”

    Para trazer o resultado referente à todas as políticas:

    Get-ADGPOReplication -All

    Podemos também aprimorar os filtros com o comando abaixo:

    Get-ADGPOReplication -all | Out-GridView -Title “GPO Verify $(Get-Date)”

    2

    …agora só falta conseguir filtrar o tempo necessário para que uma modificação na Sysvol, seja comitada em todos os DC´s do domínio.

     
  • Sandro Zamboni 8:41 AM em 21/07/2015 Link Permanente | Resposta
    Tags: , , , powershell para Exchange, ,   

    Set-ExecutionPolicy : Cannot set execution policy 


    Olá seus nerds maledetos!!!ehehehehe

    Ao tentar executar um determinado script PS remotamente em um servidor Exchange, me deparei com a seguinte mensagem de erro:

    .\UpdateIndexAllMailboxDatabases.ps1 : File C:\Temp\SCRIPTS\EXCHANGE\UpdateIndexAllMailboxDatabases.ps1 cannot be loaded. The file C:\Temp\SCRIPTS\EXCHANGE\UpdateIndexAllMailboxDatabases.ps1 is not digitally signed. The script will not execute on the system. Please see “get-help about_signing” for more details..
    At line:1 char:37

    …Após um Get-ExecutionPolicy tive o retorno RemoteSigned .Não pensei duas vezes!!!Set-ExecutionPolicy Unrestricted e me foi retornada a seguinte mensagem:

    Execution Policy Change
    The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at
    http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
    [Y] Yes [N] No [S] Suspend [?] Help (default is “Y”): y
    Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by
    a policy defined at a more specific scope. Due to the override, your shell will retain its current effective
    execution policy of RemoteSigned. Type “Get-ExecutionPolicy -List” to view your execution policy settings. For more
    information please see “Get-Help Set-ExecutionPolicy”.
    At line:1 char:1
    + Set-ExecutionPolicy Unrestricted
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
    + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

    Como recomendado na mensagem, executei o cmdlet para listar a politica de execution policy por escopo

    Get-ExecutionPolicy -List

    Scope                                  ExecutionPolicy
    —–                                      —————
    MachinePolicy                     RemoteSigned
    UserPolicy                            Undefined
    Process                                Undefined
    CurrentUser                         Undefined
    LocalMachine                      RemoteSigned

    …imediatamente executei o seguinte comando Set-ExecutionPolicy -Scope MachinePolicy -ExecutionPolicy Bypass para que a política fosse liberada…ops:

    Set-ExecutionPolicy : Cannot set execution policy. Execution policies at the MachinePolicy or UserPolicy scopes must beset through Group Policy.

    Para corrigir este erro, somos forçados à efetuar esta modificação diretamente no registro da estação:

    HKLM:\Software\Policies\Microsoft\Windows\PowerShell e altere o valor ExecutionPolicy para Bypass.

    Executando novamente o comando para listar a política por escopo, percebemos que agora realmente a configuração foi comitada!!

    Get-ExecutionPolicy -List

    Scope                                  ExecutionPolicy
    —–                                      —————
    MachinePolicy                      Bypass
    UserPolicy                            Undefined
    Process                                Undefined
    CurrentUser                         Undefined
    LocalMachine                      RemoteSigned

    Foi então que consegui executar meu script e todos viveram felizes para sempre!

     
  • Sandro Zamboni 9:40 AM em 03/07/2015 Link Permanente | Resposta
    Tags: , , , ,   

    List Domain Group Members 


    Meus queridos colegas de trabalho, segue abaixo script para listar os membros de todos os grupos de segurança do dominio do Active Directory:

    $GroupInfo = ” | Select ‘Group Name’,’Group Description’,’Member Name’,’Member Description’
    $AllGroups = @()
    $MyGroups = Get-ADGroup -filter {GroupCategory -eq “Security”} -SearchBase “dc=DOMAIN,dc=LOCAL” -Properties Name,Member | select Name,Member
    foreach($Group in $MyGroups){
    $GroupInfo.’Group Name’ = $Group.Name
    $GroupInfo.’Group Description’ = $Group.Description
    foreach($Member in $Group.Member){
    $User = Get-ADUser $Member -Properties Name | select Name
    $GroupInfo.’Member Name’ = $User.Name
    $GroupInfo | select ‘Group Name’,’Member Name’
    $AllGroups += $GroupInfo | Select ‘Group Name’,’Member Name’
    }
    }

    $AllGroups | Export-Csv allginfo.csv -NoTypeInformation

    Podemos utilizar o mesmo script para filtrarmos membros de um único grupo.Para isso alteramos o parâmetro do filtro $MyGroups = Get-ADGroup -filter {GroupCategory -eq “Security”} que seleciona todos os grupos de segurança do domínio para $MyGroups = Get-ADGroup -filter {Name -eq “NomeDoGrupo”} .

    Espero que seja útil!

     
  • itwlp 3:38 AM em 28/02/2015 Link Permanente | Resposta
    Tags: add disc, add disc with diskpart, Alterando a letra do leitor de DVD, create partition primary, Diskpart, diskpart add disc, Usando o comando Diskpart para atachar um disco   

    Diskpart /s 


    Olá amigos do mundo dos scripts, powershell, .vbs, .bat e todos aqueles que investem horas elaborando um bom e velho scripiteco.

    Essa semana elaboramos algo bacana com o Diskpart. Para aqueles que acompanham o Blog devem ter lido algo sobre disco em reserved, certo? Para ficarmos isento de um incidente como aquele, ou algo parecido, vamos inserir o disco D após a VM ter sido inicializada. Neste cenário removemos o disco D do template e inserimos novamente após subir o SO garantindo que cada vm terá o seu disco com o seu único ID e único serial.

    Quais as necessidades levantadas? Quando subimos uma máquina virtual apenas com o Disco C e o leitor de DVD (Volume 0) a unidade de DVD-ROM vem assinado com a letra D. Isso ai pessoal, começou a ficar legal.

    Vamos customizar esse processo removendo o volume D e assinando com a letra Z. E a partir desse processo vamos criar a partição no disco.

    O processo automatizado requer o seguinte comando:

    C:\diskpart.exe /s C:\temp\scripts\dispart.txt – Esse parâmetro irá chamar o arquivo .txt, sacaram galera? Vamos criar um arquivo .txt, com o nome diskpart.txt inser os comandos listados abaixo e guarda-los na pasta C:\Temp\scripts, legal? O próximo passo é abrir o CMD e inserir a linha de comando acima, repetindo na sequência, C:\diskpart.exe /s C:\temp\scripts\dispart.txt

    Feito isso o disco estará pronto para uso.

    select volume 0

    remove letter=D

    assign letter=Z

    select disk 1

    Attributes disk clear readonly

    online disk

    convert MBR

    create partition primary

    assign letter=d

    format quick fs=ntfs label=”DADOS”

    Active

    Exit

    Espero ter colaborado.

     
  • itwlp 3:50 PM em 23/02/2015 Link Permanente | Resposta
    Tags: Cluster Microsoft, Disk reserved, PowerShell enable disc   

    Cluster Microsoft – Disco reserved 


    Pessoal, recentemente aconteceu algo no mínimo interessante com um servidor de Mailbox (MS-Exchange 2010).

    Essa máquina rodava em cima de ESXi 5.0. Vejam que interessante:

    Em um ambiente VMware o provisionamento de máquinas acontece a partir de um Template, ou seja, um Windows customizado com unidades C e D, certo? Você instala um Windows, atualiza os patches, instala cliente de BKP e outras ferramentas de acordo como seu ambiente. Legal! E como funciona o lance dos templates? Quando você solicita que seja provisionada uma máquina a partir de um template o vCenter faz um clone daquele template, olha que legal. Pessoal, isso será perfeito se você não for usar essa vmware como par de outra, ou seja, se você não for usar como Cluster Microsoft ou em uma DAG (MS-Exchange).

    No processo de criação do cluster em um dos passos se faz necessário efetuar uma validação. Nesse passo de validação essas máquinas criadas a partir do clone com discos D receberam um alerta! Ai mora o perigo pessoal… É apenas um alerta. A validação é concluída com sucesso.

    O que pode acontecer? Pode acontecer que esse disco D entre em reserved. Agora, imagine que nessa máquina, como no meu exemplo, está rodando um Exchange que foi feita a instalação no disco D. Ai, meus amigos, quando o telefone da tua mesa tocar e a GI ou o Help-Desk dizer que dezenas de caixas de correio estão fora, ou melhor, o executivo de negócios está sem correio. Nessa hora você pega todas as suas bagunças e vai para o cinema mais próximo, ou, você começa a chorar.

    Como podemos validar isso? Pessoal, o objetivo desse post não é trazer os mais rápidos e práticos troubleshooting para tirar o disco de reserved. A ideia aqui é mostrar que isso existe e não deve acontecer.

    Microsoft Windows [Version 6.1.7601]

    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\Admin>diskpart

    Microsoft DiskPart version 6.1.7601

    Copyright (C) 1999-2008 Microsoft Corporation.

    On computer: VMTESTECLUSTER01

    DISKPART> list disk

    Disk ### Status         Size     Free     Dyn Gpt

    ——–  ————-  ——-  ——-  —  —

    Disk 0    Online          100 GB 1024 KB

    Disk 1    Online          80 GB 1024 KB

    Disk 2    Online          600 GB      0 B

    Disk 3    Online          600 GB      0 B

    Disk 4    Online          600 GB      0 B

    DISKPART> select disk 1

    Disk 1 is now the selected disk.

    DISKPART> detail disk

    VMware Virtual disk SCSI Disk Device

    Disk ID: E87C0E42

    Type   : SAS

    Status: Online

    Path   : 0

    Target: 1

    LUN ID: 0

    Location Path: PCIROOT (0)#PCI(1500)#PCI(0000)#SAS(P00T01L00)

    Current Read-only State: No

    Read-only  : No

    Boot Disk  : No

    Pagefile Disk  : No

    Hibernation File Disk  : No

    Crashdump Disk  : No

    Clustered Disk  : No

    Volume ### Ltr  Label        Fs     Type        Size     Status     Info

    ———-  —  ———–  —–  ———-  ——-  ———  ——–

    Volume 3     D   New Volume   NTFS   Partition     79 GB  Healthy

    DISKPART>

    Microsoft Windows [Version 6.1.7601]

    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\ Admin >diskpart

    Microsoft DiskPart version 6.1.7601

    Copyright (C) 1999-2008 Microsoft Corporation.

    On computer: VMTESTECLUSTER02

    DISKPART> list disk

    Disk ### Status         Size     Free     Dyn  Gpt

    ——–  ————-  ——-  ——-  —  —

    Disk 0    Online          100 GB 1024 KB

    Disk 1    Online          80 GB 1024 KB

    Disk 2    Online          600 GB      0 B

    Disk 3    Online          600 GB      0 B

    Disk 4    Online          600 GB      0 B

    DISKPART> select disk 1

    Disk 1 is now the selected disk.

    DISKPART> detail disk

    VMware Virtual disk SCSI Disk Device

    Disk ID: E87C0E42

    Type   : SAS

    Status: Online

    Path   : 0

    Target: 1

    LUN ID: 0

    Location Path : PCIROOT(0)#PCI(1500)#PCI(0000)#SAS(P00T01L00)

    Current Read-only State : No

    Read-only  : No

    Boot Disk  : No

    Pagefile Disk  : No

    Hibernation File Disk  : No

    Crashdump Disk  : No

    Clustered Disk  : No

    Volume ###  Ltr  Label        Fs     Type        Size     Status     Info

    ———-  —  ———–  —–  ———-  ——-  ———  ——–

    Volume 3     D                NTFS   Partition     79 GB  Healthy

    DISKPART>

    Os mesmos Disk ID em ambas máquinas. Qual o problema em termos os mesmos ID’s? O recurso de cluster para não promover uma concorrência ao acesso a este disco o coloca em reserva.

    clip_image001

    As melhores práticas nesse caso é remover o disco D, que está em seu Template, e adiciona-lo novamente, o ID será diferente para cada máquina.

    E agora? Já entendi as melhores práticas para não acontecer de um disco entrar em reserved. Tá, me diz ai? Como retiro a reserva do disco em uma situação como esta? Bom, você poderá retirar o modo reserved mas não poderá solicitar uma validação de cluster nessa máquina. Retire a reserva e migre os recursos, no meu exemplo, desinstale o MS-Exchange do disco D. Remove o disco D. Após isso adicione o disco D e instale o MS-Exchange novamente. Depois faça a validação.

    Vamos colocar a resolução para retirar o modo reserved. Lembrando que a ideia deste post é orientar para que isso não aconteça.

    Abra o Powershell e digite a seguinte linha de comando:

    Clear-ClusterDiskReservation -Disk 1 -Node node1 –Force

    Espero que compartilhando essa experiência eu posso acrescentar algo.

     
  • Sandro Zamboni 2:18 PM em 04/12/2014 Link Permanente | Resposta
    Tags: , Terminal Services,   

    Kill TS sessions remotely 


    Problema clássico: Você tenta se conectar remotamente em um servidor via TS e não existe conexões disponíveis…

    Uma das formas possíveis para a desconexão dessas sessões, é através de um executável chamado RESET.EXE incluso no Windows 2003 e posteriores (pelo menos até o Windows Server 2012R2 o mesmo ainda existe…rss…lembrando que este EXE também é encontrados nas versões clientes do Windows).

    Abaixo segue o exemplo da sintaxe do comando:

    Para listar as sessões da maquina remota, execute o seguinte comando:

     

    query session /server:NomeDoServidor_ou_IP

     

    É necessário a listagem das sessões, para que se tenha acesso ao ID da sessão.

    Para “derrubar” a sessão, execute o seguinte comando:

     

    reset session IDdasessão /server:NomeDoServidor_ou_IP

     

    Espero que seja útil!

     
  • itwlp 2:22 PM em 01/12/2014 Link Permanente | Resposta
    Tags: , , ,   

    10 PowerShell quentes pedalando no seu ambiente. 


    Como diz um ditado Arrentino “ Como estás”?

    Pessoal, a pegada aqui é a seguinte; colocar 10 comandos quentes para você agilizar suas tarefas diárias.

    Vamos lá:

    #01 – Test-MAPIConnectivity –Identity  EMAILDOUSUARIO@DOMINIO.COM| fl

    Este comando sendo positivo garante que serviços do sistema, tais como Managed Folder Assistant e OWA consigam acessar com sucesso a mailbox em questão, o mesmo também traz informações de qual server está localizada a Database e a Mailbox do usuário. Traz o nome da Mailbox e o mais legal, traz a Latencia. Sem falar que o camando também te mostra o status.

    #02 – Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState –eq “Failed”}

    Esse é maniero pakas mermão. O mais show desse comando é que ele te mostra quais Databases estão com bug’s do milenio no Index. Curtiu? Tem mais mermão.

    #03 – Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState –eq “Failed”} | Update-MailboxDatabaseCopy –CatalogOnly

    Lembra que na dica #02 eu disse que tinha mais? Naquele comando você identificou quais Databases estão com Bug do Milenio no Index, certo? Pois é mermão, agora você corrige. Não é lindo?

    #04 – Get-MailboxServer | fl name

               Get-ClientAccessServer | fl name

               Get-TransportServer | fl name

    Os comandos acima listam os servidores de suas respectivas funções. Bem prático e rápido.

    #05 – Get-MailboxDatabase -Status | ft name, last* –auto

    Esse Get é supimpa. O maluco te lista o status do último backup (Full / incremental / cópia) dos databases.

    #06Move-ActiveMailboxDatabase NOMEDODATABASE –ActivateOnServer NOMEDOSERVIDOR –Confirm: $false

    Comando para mover mailbox.

    #07 – Get-Mailbox –Identity CONTADOUSUARIO | Get-MailboxPermission | fl

    Acontece as vezes, usuários informam que estão recebendo pop up solicitando senha. Esse comando verifica as permissões de acesso.

    #08 – New-moverequest –identify CONTADOUSUARIO –TargetDatabase DATABASENAME –BadItemLimit 50 –AcceptLargeDataLoss

    Comandinho supimpa para movimentar usuários. E um ambiente que existem diversas regras de Database esse comanado é muito útil.

    #09 – Get-Mailboxserver –identity NOMEDOSERVERMAILBOX | Get-MailboxDatabase | where {$_.name –match “NOMEDATABASE”} | Get-mailbox

    Comando maneiro que mostra usuários na database.

    #10 – Get-Mailbox –identity EMAILDOUSUARIO@DOMINIO.COM | Select-Object alias | foreach-object {Get-MailboxFolderStatistics –Identity $_.alias | select-object Identity, ItemsInFolder, FolderSize}

    Esse comando é para fechar com chave de ouro. Esse Get mostra todas suas pastas criadas na sua mailbox, itens em sua folder e o tamanho de cada.

     

    Espero que essas dicas acelerem as tarefas diárias. Em breve traremos os TOP 10 PowerShell para Active Directory.

     
  • Sandro Zamboni 9:38 AM em 10/11/2014 Link Permanente | Resposta
    Tags: , keytab, ,   

    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.

     
  • Sandro Zamboni 7:44 AM em 10/11/2014 Link Permanente | Resposta
    Tags: , , ,   

    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!

     
  • Sandro Zamboni 9:09 AM em 10/06/2014 Link Permanente | Resposta
    Tags: , ,   

    Exchange Last Backup CMDLET 


    Pessoal,

    Comando rápido para listar o status do último backup (Full / incremental / cópia) dos databases:

    Get-MailboxDatabase -Status | ft name,last* -auto
     
  • Sandro Zamboni 4:46 PM em 24/03/2014 Link Permanente | Resposta
    Tags: vostro bluetooth driver;vostro bluetooth windows 8;dell bluetooth windows 8   

    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…

     
    • Tailane 1:10 PM em 03/04/2014 Link Permanente | Resposta

      Nossa amigo!

      Eu tenho um inspirion 14r, e tive muitos problemas após a instalação do win 8.1… Procurei em todo canto uma solução, no site da Delll inclusive e nada! O windows dava pau toda a hora! Bastava clica num programa e dava tela azul, até mesmo tentar instalar alguma coisa dava tela azul! … a Unica solução que encontrei foi formatar o pc e voltar pro windows 8, mas agora to querendo tentar de novo a atualização!

      O que vc recomenda?

      • Sandro Zamboni 5:50 PM em 03/04/2014 Link Permanente | Resposta

        Tailane,
        Tenho um Vostro 3300 e estou usando o Windows 8.1…o único problema que tive com drivers (desde o Windows 7) foi o do Bluetooth (cuja solução é o artigo acima tanto para o 8 quanto para o 8.1).
        Caso tenha problemas de compatibilidade de drivers com o 8.1, tente instalar os mesmos usando o módulo de compatibilidade! ;-)

        Boa sorte!!

    • Thiago M 4:03 PM em 23/04/2014 Link Permanente | Resposta

      Sandro, quero comprar um adaptador bluetooth pro meu Desktop, porém conheço nenhum modelo, marca de bluetooth que é compativel com windows 8.1.Você me indicaria o Broadcom?

      • Sandro Zamboni 1:53 AM em 25/04/2014 Link Permanente | Resposta

        Thiagão.
        Não tenho nada contra a Broadcom ou outro fabricante….só preste atenção se o dispositivo oferece suporte ao S.O da sua maquina!

    • Gabriel Costa 11:40 PM em 24/04/2014 Link Permanente | Resposta

      Zamboni, também tenho um Vostro 3300 e estou querendo instalar o Windows 8.1. Você recomenda primeiro instalar o W8 e depois atualizar? Ou instalar o Windows 8.1 direto? Abraços.

    • Erick Almeida 12:07 AM em 07/05/2014 Link Permanente | Resposta

      Pessoal,

      Recentemente atualizei meu Windows para o 8.1 e me deparei com este problema.
      Após muitas tentativas, resolvi meu problema da maneira mais simples possível: Cliquei com o botão direito sobre o drive do dispositivo Bluetooth e busquei uma atualização para este, no próprio Gerenciador de Dispositivos.

      Valeu!

  • Sandro Zamboni 8:06 PM em 30/08/2013 Link Permanente | Resposta
    Tags: DLP,   

    Symantec DLP TMG integration 


    Pessoal,

    Segue link de tutorial de configuração de integração entre DLP e TMG!

    http://bit.ly/NmgQS3 ….ah! É um site Turco. Então quem não for fluente, vai precisar de um tradutor…ehehehe

     
    • Antonio Lacerda 5:55 PM em 10/11/2013 Link Permanente | Resposta

      vou te faser uma pergunta você sabe como Criar um script para exportar toda a infraestrutura do AD DS e outro para importar.

    • Antonio Lacerda 5:56 PM em 10/11/2013 Link Permanente | Resposta

      1Vou faser uma pergunta você sabe como Criar um script para exportar toda a infraestrutura do AD DS e outro para importar.

  • Sandro Zamboni 8:00 PM em 30/08/2013 Link Permanente | Resposta
    Tags: , ,   

    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

     
  • Sandro Zamboni 7:58 PM em 30/08/2013 Link Permanente | Resposta
    Tags: , , , ,   

    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\Parameters está com o valor 1 . Caso não, modifique e verifique se os compartilhamentos foram criados. image

     
  • Sandro Zamboni 7:56 PM em 30/08/2013 Link Permanente | Resposta
    Tags: webcast,   

    Overview Windows Server 2012 


    Neste vídeo mostro entre outros recursos do Windows Server 2012, uma das ferramentas mais básicas usadas pelos administradores de rede, o Server Manager.
     
  • Sandro Zamboni 7:51 PM em 30/08/2013 Link Permanente | Resposta
    Tags: , , , ,   

    Domain Controller Windows Server 2008 R2 não se registra como Global Catalog no DNS 


    Pessoal,

    Após presenciar alguns incidentes, resolví postar algo que ocorre (pelo menos até onde presenciei) com controladores de domínio Windows Server 2008 R2, que é o fato dos mesmos não se registrarem no DNS no que se refere aos registros do serviço do Global Catalog.Nestes casos, podemos visualizar todas as opções de Global Catalog marcadas no objeto do DC no Active Directory Users and Computers e no Sites and Services; porém na Zona MSDCS do domínio, os registros de serviços (SRV) referente ao Global Catalog não são registrados.

    Para resolver este problema, devemos efetuar os seguintes procedimentos:

    • Criar as seguintes entradas no registro:

    Valor REG_DWord: Global Catalog Promotion Complete com valor 1

    Caminho: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters

    clip_image002

    Valor REG_SZ: Listen Addresses com o endereço IP do servidor

    Caminho: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters

    Untitled

    • Reinicie o servidor (o processo de Dynamic Updates ocorrerá com o boot do sistema) e verifique os registros no DNS.Lembrando que pode ocorrer algum delay para que a zona MSDCS seja totalmente populada.

     

    Espero que seja útil!!

     
  • Sandro Zamboni 7:48 PM em 30/08/2013 Link Permanente | Resposta  

    Evolution of technology 


    Acredito que assim como eu, muitos pensam na evolução da tecnologia da informação. Principalmente com a enxurrada de tendências que vem assolando o mundo da tecnologia desde a criação do mesmo! Porém essas tendências e avanços tecnológicos não são tão rápidos quanto costumamos comentar; na verdade fazem parte do nosso dia-a-dia a algum tempo, só não nos damos conta deles ou por que não tomaram uma evidência considerável no mercado (não estão na moda), ou simplesmente absorvemos os recursos e ferramentas por “osmose” sem darmos conta que usamos há algum tempo. O que acontece é que quando os recursos não estão na moda, o que visualizamos são várias ferramentas cujo marketing e propaganda é feita de forma separada, sem força….mas quando a tecnologia e/ou conceito dessas ferramentas entram em evidência, são vistas pelas massas e muitas vezes tratadas e reconhecidas como uma novidade.

    Atualmente vivemos uma tendência específica que é a migração massiva de sistemas e ferramentas corporativas para a NUVEM. Porém a NUVEM deixou de ser uma novidade a muito tempo, pois é algo que já está presente em nossa vida através dos serviços de terminal,Citrix,Google Apps,SkyDrive,etc. Há muitos anos atrás já era possível a locação de um servidor na NUVEM, dentre outros recursos citados. A questão é que nunca foi tão abrangente como hoje, que por uma necessidade de centralização de acesso à informação bem como a mobilidade e acessibilidade, a NUVEM torna-se um recurso necessário.

    Com o aumento das migrações corporativas para recursos na NUVEM, acredito na seguintes tendências para o futuro:

    • Mudança de “alvos” de ataque para os datacenters – Pois seria possível o acesso à uma variedade grande de informações atacando estes centralizadores de ambientes lógicos. Porém acredito que devido a isso teríamos uma melhoria considerável de segurança lógica, sendo viável apenas a invasão física através de engenharia social.
    • Interligações entre os grandes datacenters, proporcionando uma conectividade mais rápida e segura entre seus clientes (Empresas e Organizações), criando uma espécie de “Community Cloud” entre eles (uma espécie de “internet corporativa”) – Aumentando de forma significativa as questões de segurança e performance.Seria uma rede totalmente separada que interliga-se os grandes datacenters e fosse usada para que as empresas e organizações residentes neles pudessem comunicar-se com alta velocidade e confiabilidade.
    • Community Cloud entre as empresas – Dentro dessa Community Cloud entre os datacenters, as empresas e organizações poderiam criar uma nova camada unindo seus fornecedores, empresas do seu grupo,etc. formando Privates Community Clouds (kramba, inventei um  novo termo!rss).
    • Sistemas operacionais na NUVEM, integrados e compartilhados tanto com Desktops, Tablets, SmartPhones, TV´s, etc. – Isto estamos vendo atualmente, com as SmartTv´s, SmartPhones e outros dispositivos…..hoje já conseguimos acessar,compartilhar,ler e alterar documentos a partir de qualquer dispositivo de qualquer lugar. Podemos inclusive visualizar isso através de integrações de rede sociais que além de unificar uma série de informações, estão recheadas de aplicativos baseados na NUVEM.

    Não acredito em dispositivos acoplados no nosso corpo (implantes) e coisas assim…..pelo menos por enquanto. Acredito que num futuro próximo iremos conectar em sessões de terminal através de nossos tablets, e no final do expediente simplesmente desconectamos e vamos para casa…isso caso o trânsito não fique extremamente caótico (se é que pode piorar) ao ponto do famoso “Home/Office” virar uma regra (particularmente, adoraria este cenário!rss). Com relação à esta tendência, identificamos cada vez mais empresas virtuais que ao invés de um CEP tem uma URL…e que mesmo assim não perde credibilidade pelos serviços prestados.

    Seja qual for o caminho que a tecnologia irá seguir, quero fazer parte disso!!Por isso estou estudando para tentar não me acomodar, estacionando nas tecnologias que domino hoje (o que é uma tendência humana).

     
  • Sandro Zamboni 7:46 PM em 30/08/2013 Link Permanente | Resposta
    Tags: , learning, ,   

    Kit de sobrevivência para o Active Directory 


    Pessoal,

    Segue em anexo um link muito útil com diversos materiais relacionados ao AD! Abordando desde a implantação até a resolução de problemas.Espero que seja útil!!

    http://social.technet.microsoft.com/wiki/contents/articles/3407.guia-de-sobrevivencia-active-directory-no-windows-server-2008-e-windows-server-2008-r2-pt-br.aspx

     
  • Sandro Zamboni 6:25 PM em 21/03/2012 Link Permanente | Resposta
    Tags: , , ,   

    Windows Server 8 Beta 


    Já está disponível para download o Windows Server 8 Beta!!

    Segue o link:

    http://technet.microsoft.com/pt-br/evalcenter/hh670538.aspx

     
    • Mateus 6:19 PM em 20/05/2012 Link Permanente | Resposta

      Estou me preparando para fazer os exames 642 e 646 do Server 2008 , será que é melhor esperar ser lançado as certificações do Server 8 ou 2012 ?

      Outra dúvida estou estudando pelo kit de treinamento do 2008, e a prova é sobre o R2, é tranquilo se eu estudar apenas as técnologias novas do R2 de fontes da WEB ?
      Obrigado e felicidades !

c
escrever novo post
j
post seguinte/ comentário seguinte
k
post anterior/comentário anterior
r
Resposta
e
Editar
o
mostrar/esconder comentários
t
voltar ao topo
l
vá para login
h
mostrar/ocultar ajuda
shift + esc
Cancelar
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 421 outros seguidores

%d blogueiros gostam disto: