簡體   English   中英

如何在Powershell中查詢多個域的計算機帳戶

[英]how can I query to multiple domain's computer account in powershell

我的CSV文件中包含帶有服務器標頭的批量計算機列表。

所有這些服務器都是單個林中的不同域。

我需要獲取所有這些服務器屬性的詳細信息,例如名稱和操作系統,狀態。

我已經創建了下面的腳本,但是沒有用。

任何幫助,將不勝感激。

Import-Module ActiveDirectory

# For each domain in the forest

$domains = (Get-ADForest).Domains
$servers = Import-Csv "D:\temp\computer.csv" | % {$_.server}

foreach ($server in $servers)
{
  foreach ($domain in $domains)
  {
    Get-ADComputer $server -Server $domain -Properties operatingsystem | select name,operatingsystem 
  }
}

我添加了如下腳本:

 Import-Module ActiveDirectory # For each domain in the forest $domains = (Get-ADForest).Domains $servers = Import-Csv "D:\\temp\\computers.csv" | % {$_.server} $DomainController = "DC2:3268" # 3268 is the commen port of global catalogue $SearchBase = ((Get-ADDomain (Get-ADForest).RootDomain).DistinguishedName) foreach ($server in $servers) { foreach ($domain in $domains) { Get-ADComputer $server -Server $DomainController -SearchBase $SearchBase -Properties operatingsystem | select name,operatingsystem } } 

現在出現以下錯誤,並且這次我僅指定了計算機的samaccountname而不是FQDS。

####錯誤
 Get-ADComputer : A positional parameter cannot be found that accepts argument 'DPS002'. At D:\\temp\\search_computer.ps1:34 char:5 + Get-ADComputer $server -Server $DomainController -SearchBase $SearchBase -Pr ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADComputer 

您必須對全局目錄運行請求才能在整個AD林中查找AD對象。

  1. 您需要服務器支持全局編錄。 選擇您旁邊的一個。

     Import-Module ActiveDirectory @((Get-ADForest).GlobalCatalogs) | Sort-Object 
  2. 您的腳本,做了一些修改

     Import-Module ActiveDirectory $DomainController = "ServerFromStep1:3268" # 3268 is the commen port of global catalogue $SearchBase = ((Get-ADDomain (Get-ADForest).RootDomain).DistinguishedName) foreach ($server in $servers) { Get-ADComputer $server -Server $DomainController -SearchBase $SearchBase -Properties operatingsystem | select name,operatingsystem } 
  3. 與2相同,但能夠處理服務器列表中的FQDN

     foreach ($serverFQDN in $servers) { $Local:ServerName = (($serverFQDN -replace "\\..*$", "").Trim()) if ($ServerName) { Get-ADComputer $ServerName -Server $DomainController -SearchBase $SearchBase -Properties operatingsystem | select name,operatingsystem } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM