У меня проблема с попыткой "исправить" сценарий PS, который я получил от коллеги, чтобы получить информацию от клиента AD. Я пытаюсь получить список всех почтовых ящиков распространения и их членов. Но сценарий, который он мне дал, не работает, я пытался кое-что изменить, но, поскольку я все еще изучаю PowerShell, я застрял и действительно не понимаю, что пытается сделать его сценарий.
Groups = Get-ADGroup -Filter * -SearchBase OU=costumer,OU=companies,DC=domene,DC=oss"
$Results = foreach( $Group in $Groups ){
Get-ADGroupMember -Identity $Group | foreach {
[pscustomobject]@{
GroupName = $Group.Name
Name = $_.Name
}
}
}
$Results| Export-Csv -Path c:\data\groups.csv -NoTypeInformation? -Encoding
unicode
Когда я запускаю этот скрипт, я получаю сообщение об ошибке с самого начала из-за того, что "Группы =" не распознаются.
Итак, я изменил начало на:
Get-ADGroup -filter * -Searchbase "OU = Distribution, OU = Groups, OU = Costumer, OU = Companies, DC = Domene, DC = oss"
Это полный путь к нужным мне объектам AD, я протестировал это коммандос и получил полный список. Но я не получил информации о членах группировки. Я пробовал изменить нижнюю часть скрипта, но все время получаю сообщение об ошибке "-identity", неважно, что я напишу после этого.
Может ли кто-нибудь помочь med улучшить код, чтобы получить нужную мне информацию? А может быть, объясните, что пытается сделать этот скрипт?
Спасибо большое за помощь.
Спасибо вам за помощь! Теперь я запускаю сценарий и получаю файл .cvs. Но мне интересно, а что-то еще не так. Он должен вернуть группы в AD и членов групп, но результат, который я получаю, не такой. Я приложил снимок экрана с того момента, когда открываю это в Excel.
В моем сценарии чего-то еще не хватает для получения информации?
Я нашел способ изменить сценарий, чтобы он получил то, что мне нужно, и это сработало. Это может быть немного больше, чем просто получение информации, которая мне нужна, но я получил нужный результат. :) Спасибо!
$GruppeMedlemmer = @()
$Groups = Get-ADGroup -Filter * -properties * -SearchBase "ou=felles,OU=Groups,OU=costumer,OU=Companies,DC=domene,DC=oss"
foreach ($g in $Groups) {
$members = $g | Get-ADGroupMember
foreach ($m in $members) {
$Info = New-Object psObject
$Info | add-member -MemberType NoteProperty -Name "GroupName" -Value $g.Name
$Info | add-member -MemberType NoteProperty -Name "Description" -Value $g.description
$Info | add-member -MemberType NoteProperty -Name "Member of" -Value $g.MemberOf
$Info | Add-Member -MemberType NoteProperty -Name "Member" -Value $m.name
$GruppeMedlemmer+= $Info
}
}
$GruppeMedlemmer | Sort-Object GroupName | Export-CSV C:\temp\groupdist.csv -notype -Encoding unicode
Это должно работать:
$Groups = Get-ADGroup -Filter * -SearchBase "OU=dummy1,OU=dummy2,DC=dummy3,DC=dummy4"
$Results = foreach( $Group in $Groups ){
Get-ADGroupMember -Identity $Group | foreach {
[pscustomobject]@{
GroupName = $Group.Name
Name = $_.Name
}
}
}
$Results| Export-Csv -Path c:\data\groups.csv -NoTypeInformation -Encoding unicode
Убедитесь, что каталог C:\data
существуют