Visitantes

Deletar um email enviado por engano Exchange sem entrar na caixa do usuário.








Fala pessoal, blz...

Sabe aquele e-mail que o usuário mandou por engano e depois ficou desesperado e entra em contato com o HelpDesk questionando se tem como resgatar ou apagar o e-mail da caixa do Usuário?? Temos boas e más noticias para esse usuário, a boa é que sim é possível e tem duas formas pra fazer isso, uma delas é pelo próprio Outlook entrando na MSG enviada e escolhendo "Cancelar MSG enviada":



Agora a noticia ruim é que tem dois pequenos problemas, o primeiro é que quando fizer isso ele informará ao usuário que uma MSG foi cancelada o que na maioria das vezes o usuário que fez a besteira não quer que ocorra e a segunda é que só conseguirá resgatar o e-mail se ele ainda não foi aberto, mais temos uma carta na manga para contornar essa deficiência e podemos fazer esse processo via Powershell utilizando o comando Search-Mailbox utilizando -DeleteContent, abaixo alguns exemplos:


Para excluir o e-mail da caixa de um usuário em especifico:


Search-Mailbox -Identity "Usuario" -SearchQuery 'Subject:"Assunto do email"' -DeleteContent


Para excluir o e-mail da caixa de todos os usuários:


Get-Mailbox | Search-Mailbox -SearchQuery 'Subject:"Assunto do email"' -DeleteContent


Se quiser ver algumas outras sintaxes ou exemplos basta fazer:


Get-Help Search-Mailbox -examples


Bom é isso ai, espero ter ajudado pois esse procedimento é bem comum de ser solicitado, então qualquer duvida ou sugestão estou a disposição...




Script para atualização de campos do Active Directory utilizando arquivo CSV







Pessoal disponibilizo hoje um Script simples em Powershell que servirá para atualizar alguns campos de usuários no Active Directory utilizando um arquivo CSV. 

No exemplo, foi exportada uma lista do ERP da empresa que possui alguns dados que na correria da criação acabam não sendo inseridos nas propriedades dos usuários ou que são alterados ao longo do tempo e não são replicados no Active Directory como por exemplo: mudança de Cargo, alteração de Ramal ou telefone, alteração de localização do usuário, etc,etc... Então vamos por a mão na massa.

Pré-requisitos:
Necessário ter instalado os CMDLETS de administração do Active Directory da Quest

http://www.quest.com/powershell/activeroles-server.aspx

Depois do CMDLET instalado, crie um arquivo CSV com os dados que você precisa importar, na primeira linha será necessário colocar o nome dos campos. No exemplo para facilitar usei os mesmos nomes dos campos do ActiveDirectory como cabeçalho.



No site http://www.selfadsi.org/user-attributes.htm  você pode consultar o nome dos campos no Active Directory e ajustar o seu Script para atualizar outros campos alem desses que utilizei.

Tendo o arquivo CSV em mãos é só executar o Script Abaixo.

Atenção!!! Se você exportar uma planilha Excel para um arquivo CSV verifique se ela delimitou os campos com “;” ou invés de “,” , para que o Script funcione corretamente  o arquivo precisa necessariamente utilizar a virgula para delimitar os campos.


'################## INICIO SCRIPT #########################
'Nome do Script: Update_users.ps1
'Script para atualizacao do ActiveDirectory a partir da Planilha gerada do ERP
'Data: Jun/2014 - Versão 1.0
'Scripter: Marcos valente (www.marcosvalente.com.br)
'
' Os nome dos campos devem ser inseridos na primeira linha do CSV, como no Ex abaixo;
'samaccountname,City,StateorProvince,PostalCode,Title,company,department,
'physicalDeliveryOfficeName,telephoneNumber
'
'Utilização: update_users.ps1 <caminho + nome do Arquivo CSV>
'EX: Update_users 'c:\usuarios.csv'
'
' Atenção os campos devem estar separados por "," e não ";".
'#########################################################

Function Update_users([string]$Path)
{

Import-Module ActiveDirectory
Add-PSSnapin quest*

$users=Import-Csv $path

$USERS|Foreach{
Set-QADUSer -Identity $_.samaccountname -city $_.City -StateorProvince $_.stateorProvince 
-PostalCode $_.Postalcode -Title $_.Title -company $_.company -department $_.department 
-physicalDeliveryOfficeName $_.physicalDeliveryOfficeName -telephoneNumber $_.telephoneNumber}

}

'################## FIM SCRIPT ####################

Bom é isso ai pessoal, script simples e eficiente qualquer duvida ou sugestão me contatem.


Um abraço e até a próxima.

Listar usuários que estouraram a cota no Exchange








Chego com mais uma dica bastante útil, esse comando em Powershell irá listar todos os usuários que já estouraram a cota da sua caixa postal no Exchange.


Get-MailboxStatistics | Where {$_.StorageLimitStatus -eq "MailboxDisabled"} | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount,storagelimitstatus



Caso queira saber de um usuário em especifico é só adicionar –identity “NOME DO USUARIO” logo após o Get-MailboxStatistics



Qualquer duvida é só perguntar, até a próxima..

Script para excluir arquivos mais antigos que X Dias






Fala pessoal, blz???

Esse é um script bastante útil, ele deixa apenas os arquivos com menos de X Dias em determinadas pastas e subpastas, bastante útil em File Servers que possuem pastas para arquivos Temporários;

Exemplo:

e:\arquivos\TEMP7Dias
e:\arquivos\TEMP15Dias
e:\arquivos\TEMP30Dias

Essa estrutura é muito comum nas empresas possibilitando a criação de um tipo de repositório temporário para troca de arquivos entre usuários ou Departamentos.
Exemplo: O Departamento de compras precisa passar um documento para o Depto de Contabilidade, ao invés de darmos permissões na pasta dos departamentos o que diminuiria a segurança, os usuários colocariam os arquivos desejados na pasta temporária e os usuários do outro departamento pegariam esses arquivos e colocariam em outro local, o correto seria que os usuários movessem o arquivo do Local temporário, mais isso é pedir demais para a maioria dos usuários!!! Então para contornar esse problema e diminuirmos a nossa carga administrativa, criaríamos uma TASK no file Server que rodará esse script todos os dias e deixará na pasta apenas os arquivos mais novos que X dias, dependendo da política da empresa.

'-------------- INICIO DO SCRIPT -----------------------------------
' Script Manager : Marcos Valente
' Criado em : 2010
' Script para apagar arquivos mais antigos que X Dias
' Precisa ser passado as seguintes Informações:
'
' * Pasta Inicial
' * Qt de dias
'
' EX: cscript.exe C:\Scripts\DelOldFiles.vbs e:\arquivos\TEMP7Dias 7
'--------------------------------------------------------------
Set objArgs = WScript.Arguments
FolderName =objArgs(0) 'Argumento da Pasta inicial
Days=objArgs(1) 'Arqumento de dias

set fso = createobject("scripting.filesystemobject")
set folders = fso.getfolder(FolderName)
datetoday = now() 'Data Atual
newdate = dateadd("d", Days*-1, datetoday) 'Data Final
wscript.echo "Data Atual:" & now()
wscript.echo "Deletando arquivos mais antigos que:" & newdate
wscript.echo "________________________________________________"
wscript.echo ""
recurse folders
wscript.echo ""
Sub recurse( byref folders)
set subfolders = folders.subfolders
set files = folders.files
wscript.echo ""
wscript.echo "Deletando arquivos da Pasta:" & folders.path
wscript.echo "_______________________________________________"
for each file in files
if file.datelastmodified < newdate Then
wscript.echo "Deletando..... " & folders.path & "\" & file.name & " Ultima Modificação: " & file.DateLastModified
on error resume next
file.delete
end if

next
for each folder in subfolders
recurse folder
next
set subfolders = nothing
set files = nothing
end sub

'----------------------FIM DO SCRIPT ------------------------------

Espero ter ajudado mais uma vez e precisando estamos ai. Deixem suas duvidas ou se quiser alguma ajuda em alguma solução deixe sua pergunta que tentarei ajudar.

Um grande abraço a todos...

Ajudem a desenvolver o blog, clicando em nossas propagandas... Não custa nada ajudar...

Listando os usuários que possuem acesso ao WebMail (OWA) via PowerShell




Esse comando em Powershell lista os usuários que estão com acesso no WEBMAIL do Exchange em um Database especifico:

Get-MailBoxstatistics -Database <<Databasename>>  | Get-CASMailbox |where {$_.owaenabled -eq $TRUE} | FT displayname


Caso precise fazer um search em todos os databases basta remover o Get-mailboxStatistics, isso retornará todos os usuários do Exchange que estão com o Webmail ativo.


Get-CASMailbox |where {$_.owaenabled -eq $TRUE} | FT displayname


Para inverter e ver quem está com o Webmail desativado basta trocar o $TRUE por $FALSE.

A Microsoft disponibilizou a Revisão 65 do “Microsoft Anti-Virus Exclusion List”



A Microsoft disponibilizou a Revisão 65 do importante documento  “Microsoft Anti-Virus
Exclusion List” uma leitura obrigatória para todos os Administradores de rede Windows.

A exclusão no sistema de antivírus de muitos desses arquivos melhora a estabilidade, performance e problemas no ambiente, principalmente em servidores Windows que tenham os serviços SQL, Exchange, Active Directory, Hyper-v, Cluster  entre outros serviços que você pode ver em mais detalhes na lista divulgada.

http://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx

Resolvendo o erro “O Windows não pode se conectar à impressora" – Erro 0x0000007e ( Cannot connect to printer )








Esse é um erro muito comum encontrado em ambientes que utilizam servidores de Impressão Windows 2003 32Bits, impressoras HP e clientes 64Bits.

Esse problema pode ocorrer por causa dos seguintes fatores:

  1. A dll do Print Processor configurado para a impressora não está na pasta de drivers do Client ou do Server
  2. O Print Processor que a impressora utiliza só instalou os arquivos de 32Bits e não instala a versão 64Bits;
A Microsoft já lançou um Fix para tentar resolver esse problema, porem mesmo com esse Fix o problema não é resolvido, então para resolver o problema é só seguir os passos abaixo:

Resolução:

No servidor de impressão, abra o regedit e vá até a pasta;

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<<PRINTERNAME>>\CopyFiles\

Exclua a chave BIDI

Pronto seus problemas estão resolvidos.