Exportar lista simples de todos os computadores em várias OUs no AD [closed]

2

Eu tenho um programa que seleciona quais computadores se conectar com base em um documento de texto. A lista precisa ter apenas os nomes do computador, 1 em cada linha. Nada mais.

Estou precisando de um comando ou script que possa ser executado e que produza isso. Eu gostaria de executar este script automaticamente uma vez por semana para atualizar a lista com novos computadores. O servidor está executando o Windows Server 2008 R2. Eu tenho o Módulo do AD da Quest instalado, não encontrei muita ajuda para usá-lo.

Qualquer ajuda seria apreciada! Obrigado :)

    
por Mooticus 30.10.2015 / 06:35

4 respostas

7

Acho que está certo, fiz algumas alterações em um computador em que não tenho um domínio para testar.

# a PowerShell script, licensed under GPL ;)
#
# importing dependancy, assuming it's already installed.
# Install RSAT for Windows workstation, AD DS role for Windows Server if missing
Import-Module "ActiveDirectory"

# an array containing the OU paths we'll enumerate
$OUpaths = @("OU=Allocated,OU=Workstations,OU=WDS Org,DC=wds,DC=wdsgroup,DC=local","OU=Available,OU=Workstations,OU=WDS Org,DC=wds,DC=wdsgroup,DC=local")

# loop though the array of OUs, adding the computers to a list ('Object' really)
foreach ($iOUpath in $OUpaths)
    {
        ($objComputers += Get-ADComputer -SearchBase $iOUpath -Filter *)    #You might need to refine the query witha 'Filter' depending on your AD structure
    }

# dump the list to a file
$objComputers | Select name | Export-Csv -LiteralPath "C:\Temp\ComputerNames.txt" -NoTypeInformationA
    
por 30.10.2015 / 07:16
6

POWERSHELL OBTER LISTA DE OBJETOS DO COMPUTADOR AD SAÍDA AO ARQUIVO

Confira abaixo esses exemplos de PowerShell de uma linha, você pode alterar e testar a parte do filtro para atender às suas necessidades de atributos AD Operating System , etc. .

Certifique-se de alterar o nome do arquivo de texto de saída e o local onde você precisa que ele seja enviado para o arquivo Out-File C:\Test\Test.txt part localmente.

Use para a lista de não servidores

Get-ADComputer -Filter {OperatingSystem -NotLike "*Server*"} | Select -Expand Name | Out-File C:\Test\Test.txt

Use para a lista de servidores

Get-ADComputer -Filter {OperatingSystem -Like "*Server*"} | Select -Expand Name | Out-File C:\Test\TestServers.txt

Use para a lista de descrição personalizada

(Você pode selecionar todos os objetos de computador AD em AD Users and Computers na OU específica, em seguida, right-click e selecionar Properties enquanto TODOS OBJETOS DE COMPUTADOR estiverem selecionados e, em seguida, adicionar uma sequência personalizada e exclusiva relacionada a UO para o valor Description (veja a captura de tela abaixo). Em seguida, você poderia refinar o filtro de pesquisa abaixo para procurar os computadores AD com esse valor exclusivo Description exclusivo para cada UO)

Get-ADComputer -Filter {Description -Like "*CustomTestString*"} | Select -Expand Name | Out-File C:\Test\Custom.txt

    
por 30.10.2015 / 06:53
1

Eu uso este forro para exportar os computadores ativos no AD:

Get-ADComputer -filter {Enabled -eq $True} -Properties cn -SearchBase "OU=servers,OU=computers,DC=example,DC=example" | select cn | ConvertTo-Csv -NoTypeInformation | Select-Object -skip 1 | Out-File d:\output.csv

Você pode usar .txt em vez de .csv se precisar dele como um arquivo de texto e apenas configurar o script para ser executado como uma tarefa agendada.

Espero que isso ajude você.

    
por 30.10.2015 / 13:51
0

Você pode fazer isso para computadores criados nos últimos sete dias:

$d=[DateTime]::Today.AddDays(-7)  

$comps=Get-ADComputer -filter { (whencreated -le $d) } -searchbase "OU=,OU= ,DC= ,DC= " -properties whencreated, Description

$comps | sort-object -Descending whencreated |ft Name  -A
write-host 'PCs=' $comps.Count
    
por 30.10.2015 / 08:24