テキストドキュメントに基づいて接続先のコンピューターを選択するプログラムがあります。リストに必要なのは、各行に1つのコンピュータ名のみです。他には何もありません。
これを生成するために実行できるコマンドまたはスクリプトが必要です。このスクリプトを週に1回自動的に実行して、リストを新しいコンピューターで更新します。サーバーはWindows Server 2008 R2を実行しています。 Quest AD Moduleをインストールしましたが、それを使用するのにあまり助けが見つかりませんでした。
何か助けていただければ幸いです!ありがとう:)
私はそうだと思う、私がテストするドメインがないコンピューターからいくつかの変更を加えた。
# 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
以下の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
この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を使用し、スケジュールされたタスクとして実行するようにスクリプトを構成するだけです。
これがお役に立てば幸いです。
過去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