 |
|
Active directory проблема
Нужно изменить этот код так,чтобы искал не пользователя и группу,а группу>всех пользователей в ней>вложенные группы>пользователей вложенной группы и так далее.
Наставник вообще не чего объяснять не хочет.(
Скрытый текст
Код:
import-module ActiveDirectory
Function Get-UserMembership
{
Param($UserAccount)
Process
{
Try
{
$Groups = (Get-ADUser -Identity $UserAccount -Properties MemberOf | `
Select-Object MemberOf).MemberOf
}
Catch
{
Return $Nothing
}
$GroupItems = @()
ForEach ($Group in $Groups)
{
$var = $group.split(",")
$var1 = $var[0]
$ADGroup = $var1.Substring(3)
$GrpItems = New-Object -TypeName PSObject -Property @{
Memberof = $ADGroup}
$GroupItems += $GrpItems
}
Return $GroupItems | Sort memberOf
}
}
Function Get-UserMembership_ByName
{
Param($UserName)
Process
{
Try
{
$ResultNumber = (Get-ADUser -Filter {Name -eq $UserName} | Measure-Object).Count
}
Catch
{
Return $Nothing
}
If ($ResultNumber -eq 0)
{
Write-Host "There is no such user in the system."
Return $Nothing
}
ElseIf ($ResultNumber -ge 2)
{
Write-Host "There are several users in the system with the provided name." `
"Please use the user account way."
Return $Nothing
}
Else
{
$Groups = (Get-ADUser -Filter {Name -eq $UserName} -Properties memberof | `
Select-Object MemberOf).memberof
$GroupItems = @()
ForEach ($Group in $Groups)
{
$var = $group.split(",")
$var1 = $var[0]
$ADGroup = $var1.Substring(3)
$GrpItems = New-Object -TypeName PSObject -Property @{
Memberof = $ADGroup}
$GroupItems += $GrpItems
}
Return $GroupItems | Sort memberOf
}
}
}
$UserAccount = $Nothing
$UserAccount = Read-Host 'What is the user account? (Type nothing to search by a user name)'
If ($UserAccount -eq '')
{
$UserAccount = Read-Host 'What is the user name? (Last name and first name)'
$Result = UserMembership_ByName $UserAccount | Sort Memberof
}
Else
{
$Result = Get-UserMembership $UserAccount | Sort Memberof
}
If ($Result -eq $Nothing)
{
Write-Host "Nothing is found. The result file is not created."
}
Else
{
$OutFile = (Get-Childitem env:USERPROFILE).Value + "\Desktop\$UserAccount.csv"
$Result | Export-Csv $OutFile -Delimiter "t" -Encoding UTF8
Write-Host "The result is in $OutFile file."
}
|
Код:
Get-ADGroupMember Administrators -Recursive
|
Цитата:
Цитата Kazun
Get-ADGroupMember Administrators -Recursive »
|
А куда это вписывать?
|
В командную строку PowerShell. В код скрипта PowerShell.
|
Цитата:
Цитата Kazun
Get-ADGroupMember Administrators -Recursive »
|
Я попробовал создать новый скрипт и это использовать,но вывод вообще не тот,что надо.
Заместо "Administrators", что можно ещё вписать?(просто он выдаёт трёх реальных пользователей и потом какие-то группы)
А мне надо получить группа-пользователи-вложенные группы-пользователи вложенных групп.
|
1) Заместо "Administrators" - да, любую группу можно указать
2) (просто он выдаёт трёх реальных пользователей и потом какие-то группы) - Вранье, прежде чем писать, иногда лучше проверять, глупо выглядит. С параметром Recursive - группы никогда не возвращаются.
https://gallery.technet.microsoft.co...group-15f725f2 - Get nested group membership - function
Get-ADNestedGroupMembers Administrators | Out-GridView
|
Время: 15:26.
© OSzone.net 2001-