segunda-feira, 10 de maio de 2010

Lista de Subordinados

Olá!!!

Neste post um script em PowerShell que fiz recentemente. Este script retorna na console do Powershell as pessoas que estão subordinadas a um gestor, e as pessolas indiretamente subordinadas a este mesmo gestor.

Para usá-lo basta chamar o script passando como parameto o DisplayName da pesssoa (gestor):

PS C:\Users\Administrator\Desktop> .\ListManager.ps1 ‘Dunga’

image

imageimage

No exemplo mostrado acima, dois usuários, Julio Cesar e Robinho se reportam para Dunga e outros dois usuários, José e João se reportam a Julio Cesar e Robinho respectivamente.

$credential = Get-Credential

set-variable -name URI -value "http://localhost:5725/resourcemanagementservice' " -option constant

clear
If
($args.count -ne 1)
   {
      Throw "Digite o DisplayName do gestor!"
   }

$ManagerName = $args[0]
$Filter = "/Person[DisplayName='$ManagerName']"


If(@(Get-PSSnapin | Where-Object {$_.Name -eq "FIMAutomation"} ).count -eq 0)
   {
      Add-PSSnapin FIMAutomation
   }

$curObject = export-fimconfig -uri $URI -credential $credential –onlyBaseResources -customconfig ($Filter) -ErrorVariable Err -ErrorAction SilentlyContinue

If($Err)
   {
      Throw $Err
   }

If($curObject -eq $null)
   {
      Throw "Nome não encontrado!"
   }

$attrObjectID = (($curObject.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).Value).split(":")[2]

$Filter_Manager = "/Person[Manager = '$attrObjectID']"

[array]$curObject_Direct = export-fimconfig -uri $URI -credential $credential –onlyBaseResources -customconfig ($Filter_Manager) -ErrorVariable Err -ErrorAction SilentlyContinue

write-host "Estas pessoas reportam diretamente a $ManagerName"

$arrayIndireto = @()

foreach($DirectReport in $curObject_Direct)
{
   write-host " +" ($DirectReport.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "DisplayName"}).Value
   $Direct = (($DirectReport.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).Value).split(":")[2]
   $Filter_Direct = "/Person[Manager = '$Direct']"
   [array]$curObject_Indirect = export-fimconfig -uri $URI -credential $credential –onlyBaseResources -customconfig ($Filter_Direct) -ErrorVariable Err -ErrorAction SilentlyContinue

   foreach($InDirectReport in $curObject_Indirect)
   {
      $Indireto = ($InDirectReport.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "DisplayName"}).Value
      if($Indireto.Length -gt 1)
      {
         $arrayIndireto += $Indireto
      }
   }
}
write-host ""
write-host "Estas pessoas reportam indiretamente a $ManagerName"
foreach($IndirectReport in $arrayIndireto)
   {
      write-host " --" $IndirectReport
   }
write-host ""
write-host ""

Trap
{
   Throw $_.Exception.Message
   Exit 1
}

Até Breve!!!

quarta-feira, 28 de abril de 2010

Update Disponível !!!

Olá a todos…

Desde o dia 26/04/2010 está disponível através do Windows Update uma atualização para o Forefront Identity Manager 2010.

os arquivos estão disponíveis também através do Windows Catalog no link http://catalog.update.microsoft.com/v7/site/Search.aspx?q=Forefront%20Identity%20Manager

Forefront Identity Manager 2010 PCNS Update (KB978864)
Forefront Identity Manager 2010 Certificate Management Client Update (KB978864)
Forefront Identity Manager 2010 Certificate Management Update (KB978864)
Forefront Identity Manager 2010 Certificate Management Bulk Client Update (KB978864)
Forefront Identity Manager 2010 Synchronization Service Update (KB978864)
Forefront Identity Manager 2010 Service and Portal Update (KB978864)
Forefront Identity Manager 2010 Service and Portal Language Pack Update (KB978864)
Forefront Identity Manager 2010 Add-ins and Extensions Update (KB978864)
Forefront Identity Manager 2010 Add-ins and Extensions Language Pack Update (KB978864)

Até Mais!!

quinta-feira, 15 de abril de 2010

Trabalhando com o atributo accountExpires do Active Directory

No FIM2010, o formato padrão de data/hora é yyyy-MM-ddTHH:mm:ss.fff. Este é um formato ISO8601 com três dígitos de precisão fracional.

O atributo accountExpires no Active Directory é um atributo do tipo Integer8, um número de 64-bit representando data/hora (em UTC) como o número de intervalos de 100-nanosecondos desde 01/01/1601 12:00 AM.

Para trabalhar com o atributo accountExpires, seja importando ou exportando ele no FIM2010, você precisará desenvolver uma “Rule Extension” para usar no seu Active Directory Managente Agent.

Abaixo alguns exemplos de como fazer isso utilizando a linguagem C#. Trabalharemos com o accountExpires (AD) e EmployeeEndDate (FIM2010):

accountExpires –> EmployeeEndDate

if (csentry["accountExpires"].IsPresent)
{
  
DateTime dtFileTimeUTC = DateTime.FromFileTimeUtc(csentry["accountExpires"].IntegerValue);
   mventry[
"employeeEndDate"].Value = dtFileTimeUTC.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.000'");
}
   

accountExpires <- EmployeeEndDate

if (mventry["employeeEndDate"].IsPresent)
{

   FormatProvider
culture = new CultureInfo("en-US", true);
   DateTime
EndDate;
   EndDate =
DateTime.Parse(mventry["employeeEndDate"
].ToString(), culture);
   csentry[
"accountExpires"].Value = EndDate.ToFileTimeUtc().ToString();
}

Marcar uma conta que está sendo provisionada para expirar daqui a 180 dias

csentry["accountExpires"].Value = DateTime.Now.AddDays(180).ToFileTimeUtc().ToString();

Até Breve!

quarta-feira, 3 de março de 2010

Vídeo demo de funcionalidades FIM2010 !!!

Olá.

Um colega meu da Microsoft, que trabalha diretamente com o FIM2010 passou um link para um vídeo sobre o FIM2010.

O vídeo está disponível para download no Skydrive  e trás demonstração das seguintes informações:

  • Provisionamento automático de um novo colaborador da área de Vendas no AD a partir de um arquivo texto;
  • Notificação via e-mail para o gerente do colaborador com nome da conta e uma senha randômica para login no AD;
  • Processo de cadastramento dos desafios para auto-serviço de reset de senha pelo novo colaborador;
  • Atualização de dados do perfil pelo colaborador através do Portal de Gestão de Identidade, com aprovação da modificação via Outlook 2007 pelo gerente do colaborador;
  • Execução do reset de senha pelo novo colaborador diretamente na tela de logon do Windows;
  • Inclusão automática do colaborador em um grupo de segurança, para acesso a um File Share específico da área de Vendas;

O vídeo tem 46,2Mb e a narração está em português!

Até mais!

Link: http://cid-9a907e9861071fb7.skydrive.live.com/browse.aspx/Video%20Forefront%20Identity%20Manager%202010?authkey=fIrOMRAaE10%24

FIM2010 RTM

Olá pessoal!!!!
Foi disponibilizado ontem, 02/03/2010, o RTM do FIM2010
O Download da versão de avaliação está disponível no site da Microsoft através do Link http://technet.microsoft.com/en-us/evalcenter/cc872861.aspx.
Para fazer o download é preciso se registrar. Além do FIM2010 (Forefront Identity Manager EVAL.exe) estão disponíveis também os seguintes arquivos:
FIM_RTM_Relnotes_2-25-10.docx
Forefront Identity Manager Group Policy Templates.exe
Forefront Identity Manager Language Packs.exe
O download total dos arquivos disponíveis varia de 37 KB - 176.5 MB (dependendo do que você escolher)
É isso aí!!! aproveitem!!!
Até a próxima!

quinta-feira, 25 de fevereiro de 2010

Concatenando Valores

Para montar um valor a partir de outros valores utilize o botão “Concatenate Value” na sua página de “Flow Definition” quando estiver montando uma Synchronization Rule.

concatenate

O “Concatenate Value” pode ser usado para montar expressões utilizando também de funções embarcadas no FIM2010 como:

ProperCase: Esta função converte o primeiro caracter de cada palavra em uma frase para maiúsculo:
Exemplo: ProperCase("TESTE dE PRopercASe") = "Teste De Propercase"

concatenate2

Até Breve!

quarta-feira, 17 de fevereiro de 2010

userAccountControl: BitAnd e BitOr

userAccountControl é um atributo do tipo inteiro.

Se você quiser usá-lo apenas para habilitar ou desabilitar uma conta, você pode utilizar estas funções: BitAnd e BitOr.

  • BITAND = A função BitAnd muda um bit especifico em um valor para 0.

  • BITOR = A função BitOr muda um bit especifico em um valor para 1.

userAccountControl armazena outras informações sobre o status de uma conta tais como se a senha tem que ser alterada no próximo logon, se uma conta nunca expira.

Por exemplo: uma conta normal tem o valor 512 (1000000000 em binario) e uma conta desabilitada tem o valor 514 (1000000010).

Com as funções BitAnd e BitOr, nós podemos setar o segundo bit do campo userAccountControl conforme precisamos.

Uso da função BitAnd em uma Synchronization Rule

bitAnd

Uso da função BitOr em uma Synchronization Rule

bitOr

Até a próxima!!!