我的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
}
}
#
HI
我添加了如下脚本:
#Import-Module ActiveDirectory
$ domains =(Get-ADForest)。域名
$ servers = Import-Csv“D:\ temp \ computers.csv”| %{$ _.server}
$ DomainController =“DC2:3268”#3268是全球目录的commen端口
$ SearchBase =((Get-ADDomain(Get-ADForest).RootDomain).DistinguishedName)
foreach($ server in $ servers)
{
foreach($ domains中的域名)
{
Get-ADComputer $ server -Server $ DomainController -SearchBase $ SearchBase -Properties operatingsystem |选择名称,操作系统
} }
#现在出现以下错误,而且这次我只指定了计算机的samaccountname而不是FQDS ..
####错误Get-ADComputer:找不到接受参数'DPS002'的位置参数。 在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
答案 0 :(得分:1)
您必须针对全局编录运行请求才能在整个AD林中查找AD对象。
您需要一台支持全球目录的服务器。选择旁边的一个。
Import-Module ActiveDirectory
@((Get-ADForest).GlobalCatalogs) | Sort-Object
您的脚本,稍作修改
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
}
与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
}
}