Csv 如何查询到多个域';powershell中的计算机帐户

Csv 如何查询到多个域';powershell中的计算机帐户,csv,powershell,Csv,Powershell,我的CSV文件中有大量计算机列表,带有服务器头 所有这些服务器都是单个林下的不同域 我需要获得所有这些服务器属性详细信息,如名称和操作系统、状态 我已经创建了下面的脚本,但它不起作用 任何帮助都将不胜感激 Import-Module ActiveDirectory # For each domain in the forest $domains = (Get-ADForest).Domains $servers = Import-Csv "D:\temp\computer.csv" | %

我的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

####错误
您必须针对全球目录运行请求,才能在整个广告林中查找广告对象

  • 您需要一个支持全球目录的服务器。选择你旁边的一个

    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相同,但能够从服务器列表中处理

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

  • 请比“那不起作用”更具体一些。你期待什么?发生了什么事?我不认为成员域是csv中的一列?您好,我尝试了下面这样的脚本,但出现了以下错误:导入模块ActiveDirectory$DomainController=“DC41:3268”#3268是全局目录$SearchBase=((Get-AddDomain(Get-ADForest).RootDomain.DifferentizedName)$servers=Import-csv的公共端口“D:\D:\temp\计算机。csv”foreach(服务器中的服务器中的服务器中的服务器)foreaach(服务器中的服务器中的服务器)的foreaach(服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的)获取ADA(获取ADA)计算机中的计算机中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的服务器中的域控制器中的域控制器搜索基搜索基搜索基搜索基搜索基搜索基搜索基搜索基搜索基基搜索基属性操作系统中的属性属性操作系统的属性操作系统的属性操作系统(124;选择名称,选择名称,选择名称,选择名称,操作系统,运行名,操作系统,运行名,操作系统)错误。错误是错误是错误是以下错误是错误是以下错误是以下错误是以下错误是以下的错误是以下的错误是以下的下错误是以下的下错误是以下的下的下下下下下下下下的accenture.com}“。在D:\temp\findallcomputers.ps1:8字符:5+获取ADComputer$server-server$DomainController-SearchBase$SearchBase-Pr…+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,ParameterBindingException+FullyQualifiedErrorId:PositionParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetAdComputer当您使用服务器的FQDN而不是主机名时,它无法工作。Get-ADComputer不能与FQDN一起工作。步骤3向您展示了解决此问题的方法。@Mr.Chand请编辑原始question并在此处添加您的注释作为更新,包括脚本(代码)的版本和错误。
    foreach ($serverFQDN in $servers)
    {
        $Local:ServerName = (($serverFQDN -replace "\..*$", "").Trim())
        if ($ServerName) {
            Get-ADComputer $ServerName -Server $DomainController -SearchBase $SearchBase -Properties operatingsystem | select name,operatingsystem
        }
    }