我的powershell知识非常基础。无论如何,我正在尝试制作一个脚本,该脚本将在 Get-ADComputer 中转换来自 distinctName 的输出。
我通常情况下,使用 Get-ADComputer 查询服务器的结果,distinctName 看起来像这样,具体取决于 OU 的结构:
CN=<servername>,OU=Others,OU=Servers,OU=0180,DC=win,DC=dom,DC=<something>,DC=com
我要做的是将输出转换为两列并重新组织信息。到目前为止,我已经得到了两列排序如下所示的部分。
Name ParentContainer
------- ---------------
server1 OU=Others,OU=Servers,OU=0180,DC=win,DC=dom,DC=,DC= com
server2 OU=DRA8,OU=Servers,OU=Admins,DC=win,DC=dom,DC=,DC=com
server3 OU=Others,OU=Servers,OU=0180,DC=win,DC=dom,DC =,DC=com
server4 OU=Others,OU=Servers,OU=0180,DC=win,DC=dom,DC=,DC=com
server5 OU=Servers,OU=4611,DC=win,DC=dom,DC =,DC=com
脚本如下所示:
$list = Get-Content "C:\temp\testservers.txt"
foreach ($servers in $list)
{
Get-ADcomputer "$servers" -Properties distinguishedName,cn |
select name, @{n='ParentContainer';e={$_.distinguishedname -replace '^.+?,(CN|OU.+)','$1'}}
}
现在到棘手的部分。在“ParentContainer”列中,我希望删除所有“DC=”值,然后切换 OU,而不是上面的,它应该如下所示。
Name ParentContainer
------- ---------------
server1 OU=0180,OU=Servers,OU=Others
server2 OU=Admins,OU=Servers,OU=DRA8
server3 OU =0180,OU=服务器,OU=其他
服务器4 OU=0180,OU=服务器,OU=其他
服务器5 OU=4611,OU=服务器
这样做的原因是更容易查看 OU 结构以及服务器放置在哪个 OU 中以及 CSV 文件中。
有可能做还是我在深水中?
问候托比约恩·佩尔松