web-dev-qa-db-ja.com

ADの複数のOUにあるすべてのコンピューターの簡単なリストをエクスポートする

テキストドキュメントに基づいて接続先のコンピューターを選択するプログラムがあります。リストに必要なのは、各行に1つのコンピュータ名のみです。他には何もありません。

これを生成するために実行できるコマンドまたはスクリプトが必要です。このスクリプトを週に1回自動的に実行して、リストを新しいコンピューターで更新します。サーバーはWindows Server 2008 R2を実行しています。 Quest AD Moduleをインストールしましたが、それを使用するのにあまり助けが見つかりませんでした。

何か助けていただければ幸いです!ありがとう:)

3
Mooticus

私はそうだと思う、私がテストするドメインがないコンピューターからいくつかの変更を加えた。

# 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
7
Conan1989

POWERSHELL GET AD COMPUTER OBJECT LIST OUTPUT TO FILE

以下のPowerShellの1行の例を確認してください。クエリの対象となるもののニーズに合わせて、フィルター部分を変更してテストできます。 AD Operating Systemなどの属性。

Out-File C:\Test\Test.txtパーツファイルの場所で、出力テキストファイルの名前と出力先を必ず変更してください。

非サーバーリストに使用

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

サーバーリストの使用

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

カスタム説明リストの使用

(特定のOUのAD Users and ComputersからすべてのADコンピューターオブジェクトを選択し、次にright-clickを選択してPropertiesを選択すると、すべてのコンピューターオブジェクトが選択されます。 Description値のOUに関連するカスタムの一意の文字列を追加します(以下のスクリーンショットを参照)。次に、以下の検索フィルターを調整して、このカスタムのDescription一意のADコンピューターを探すことができます各OUへの値)

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

enter image description here

6
Pimp Juice IT

この1つのライナーを使用して、アクティブなコンピューターを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

テキストファイルとして必要な場合は、.csvの代わりに.txtを使用し、スケジュールされたタスクとして実行するようにスクリプトを構成するだけです。

これがお役に立てば幸いです。

1
pungk

過去7日間に作成されたコンピューターに対して、次のようにすることができます。

$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
0
Sorcha