Pergunta : VBScript: Puxando o lastLogonTimestamp

Olá! peritos! o

eu tenho a funcionalidade do que eu estou precisando dentro de um DSQUERY e de um PowerShell, porém eu penso que necessidades de ser feito em meu caso particular é de quebrar o trajeto do DN para baixo nas disposições de modo que cada nível da OU seja legível.  Por exemplo, os resultados atuais arquivam que eu tenho para este contenho aproximadamente em torno das fileiras 75k e o trajeto do DN pode o anwhere médio de 3 a 6 OU profundas.  Assim o que termina acima o acontecimento é que alguns dos outros dados da coluna se encontrarão em uma coluna da OU ou mesmo em uma outra coluna, assim que quando eu vou classificar joga o tudo isto fora.  Corretamente dividindo as OU em uma disposição ou em alguma sorte do funtion da separação que alinhará cada OU acima nas colunas corretamente.  Basicamente os dados não estão sendo columned corretamente durante todo algum do spreadsheet.

assim que com este certificado eu estaria querendo puxar o sAMAccountName, o DisplayName, o UPN e o LogonTimestamp para cada usuário ativo em meu ambiente do ANÚNCIO.  o

que as limas do resultado do presente que eu estou começ traseiro estão no formato de .CSV que inclui a vírgula no trajeto do DN, assim que nele é difícil separá-los para distinguir as OU.  Assim eu converti então o CSV a um TSV e ajustei então o operador especial como “,” na importação e nesta separar as colunas da OU para fora, mas como eu disse por causa de como profundamente as OU vão, ele que faz com que alguns dos outros dados isto é UPN, sAMAccountName, LogonTimestamps transfiram em outras colunas.    Toda a ajuda com esta é apreciada extremamente.  
class= do

Resposta : VBScript: Puxando o lastLogonTimestamp


Realmente o uso da lista dos BU precisa uma modificação pequena de impedi-la que é horrìvea incerta.

Esta é a modificação:

ForEach ($Name em $BU) {se ($_.DN - combinar “OU=$Name, ") {$Name}}

Com o original combinar-lheo-ia se seu nome incluiu aquele, com o este que combinará somente se o nome completo da OU é ELE (daqui o prefixo de OU= e, sufixo).

Chris
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
# exige a procura CmdLets: http://www.quest.com/powershell/activeroles-server.aspx

# lista da unidade de negócios
$BU = “finança”, “vendas”, “introduzindo no mercado”, “ELE”, “desenvolvimento”

# o intervalo entre datas. Produzirá estes na coluna final: 0 a 30; 30 a 60, etc.
$DateRange = 30

# procura CmdLets do uso para começ os usuários
Começ-QADUser - permitido - o lastLogonTimeStamp de IncludedProperties - SizeLimit 0 | % {
  # sustentar isto para a conveniência
  $LastLogon = $_.LastLogonTimeStamp

  # restaurar os valores de IntervalString e de multiplicador
  # começa procurando datas menos de 30 dias velho, incrementado por 30 em cada passagem do laço
  $IntervalString = ""; $Multiplier = 1

  Se ($LastLogon - ne $Null) {
    Fazer {
      # ver se a data do início de uma sessão se realiza após a data especific
      Se ($LastLogon - GT (Começ-Data) .AddDays (- ($DateRange * $Multiplier))) {

        # registro este valor como “0 a 30”, ou “30 a 60”, etc.
        $IntervalString = “$ ($DateRange * ($Multiplier - 1)) a $ ($DateRange * $Multiplier)”
      }

      # incremento o multiplicador
      $Multiplier++

    # até que tiver um valor
    } Quando ($IntervalString - "" do eq)
  } Mais {
    $IntervalString = “N/A”
  }

  # gerar a saída
  $ do _ | Selecionar-Objeto DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated,
    @ {e= do n='BusinessUnit'; {ForEach ($Name em $BU) {se ($_.DN - combinar “OU=$Name, ") {$Name}}}},
    @ {e= do n='Range'; {$IntervalString}}
# exportação ele todo a um CSV using a aba como um delimitador
} | Exportar-CSV o `t do delimitador de “SomeFile.csv” - NoTypeInformation -
Outras soluções  
 
programming4us programming4us