在单独的excel工作表上输出Powershell域搜索

在单独的excel工作表上输出Powershell域搜索,powershell,Powershell,我正在执行一个getadcomputer,并试图迭代一个循环,该循环从各个房间提取计算机名。我正在尝试将每个房间输出到不同的Excel表 我正在运行PowerShell版本5: $results = for($room=102; $room -le 110; $room++) { Get-ADComputer -SearchBase $oubase -Properties Name, Description -Filter * | Where-Object {$_.des

我正在执行一个
getadcomputer
,并试图迭代一个循环,该循环从各个房间提取计算机名。我正在尝试将每个房间输出到不同的Excel表

我正在运行PowerShell版本5:

$results = for($room=102; $room -le 110; $room++) {
    Get-ADComputer -SearchBase $oubase -Properties Name, Description -Filter * |
        Where-Object {$_.description -clike "*RM $Room"}
}

$results | 
    Select-Object Name, Description |
        Export-CSV '\\Desktop\Room_Hosts.csv' -NoTypeInformation -Encoding UTF8 -Append

我需要做什么来修复Excel工作表输出?

您的帖子说您需要Excel工作表,但您的代码正在输出到CSV。无法将第二张图纸添加到CSV。每个计算机对象可以导出不同的CSV文件

$results = for($room=102; $room -le 110; $room++) {
    Get-ADComputer -SearchBase $oubase -Properties Name, Description -Filter * |
        Where-Object {$_.description -clike "*RM $Room"}
}

$results | 
    Select-Object Name, Description | Foreach-Object {
        $_ | Export-CSV -Path ("\\Desktop\{0}.csv" -f $_.Name) -NoTypeInformation -Encoding UTF8 -Append
如果问题是获取域名,您可以向
Select Object
命令添加一些代码

$results = for($room=102; $room -le 110; $room++) {
    Get-ADComputer -SearchBase $oubase -Properties Name,Description,DNSHostName -Filter * |
        Where-Object {$_.description -clike "*RM $Room"}
}

$results | 
    Select-Object Name,Description,@{n='Domain';e={$_.DNSHostName -Replace $("{0}." -f $_.Name}} |
        Export-CSV '\\Desktop\Room_Hosts.csv' -NoTypeInformation -Encoding UTF8 -Append
检索计算机对象域的说明:

DNSHostName
属性包含计算机对象的FQDN。因此,您只需要删除该字符串的主机名部分。在这里,我们只需将主机名和下面的
字符替换为零。主机名从计算机对象的
Name
属性中检索。
-f
运算符用于简单地将
字符附加到名称中。
选择对象
使用哈希表计算域值并将其存储在名为domain的属性中

或者,您可以应用上面的相同概念来获取域名,但使用计算机对象的CanonicalName和
-Split
运算符

$results = for($room=102; $room -le 110; $room++) {
    Get-ADComputer -SearchBase $oubase -Properties Name,CanonicalName,Description -Filter * |
        Where-Object {$_.description -clike "*RM $Room"}
}

$results | 
    Select-Object Name,Description,@{n='Domain';e={($_.CanonicalName -Split "/")[0]}} |
        Export-CSV '\\Desktop\Room_Hosts.csv' -NoTypeInformation -Encoding UTF8 -Append

您需要创建一个Excel COM对象,并从该对象访问其属性以操作Excel。在TechNet:和谷歌PSExcel上看看这个。RamblingCookie Monster有一个名为PSExcel的模块,它可以帮你完成一些繁重的工作