Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Active directory проблема

Ответить
Настройки темы
PowerShell - Active directory проблема

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужно изменить этот код так,чтобы искал не пользователя и группу,а группу>всех пользователей в ней>вложенные группы>пользователей вложенной группы и так далее.
Наставник вообще не чего объяснять не хочет.(

Скрытый текст
Код: Выделить весь код
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."
}

Отправлено: 08:02, 02-10-2015

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Get-ADGroupMember Administrators -Recursive
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:52, 02-10-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Kazun:
Get-ADGroupMember Administrators -Recursive »
А куда это вписывать?

Отправлено: 08:55, 02-10-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


В командную строку PowerShell. В код скрипта PowerShell.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:20, 02-10-2015 | #4


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Kazun:
Get-ADGroupMember Administrators -Recursive »
Я попробовал создать новый скрипт и это использовать,но вывод вообще не тот,что надо.
Заместо "Administrators", что можно ещё вписать?(просто он выдаёт трёх реальных пользователей и потом какие-то группы)
А мне надо получить группа-пользователи-вложенные группы-пользователи вложенных групп.

Отправлено: 11:21, 07-10-2015 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


1) Заместо "Administrators" - да, любую группу можно указать
2) (просто он выдаёт трёх реальных пользователей и потом какие-то группы) - Вранье, прежде чем писать, иногда лучше проверять, глупо выглядит. С параметром Recursive - группы никогда не возвращаются.

https://gallery.technet.microsoft.co...group-15f725f2 - Get nested group membership - function

Get-ADNestedGroupMembers Administrators | Out-GridView

Отправлено: 10:08, 09-10-2015 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Active directory проблема

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Проблема с перемещением ADObject в Active Directory d60wizard@vk Скриптовые языки администрирования Windows 1 08-09-2014 16:02
2008 R2 - Active Directory проблема с внедрением. Proflex Windows Server 2008/2008 R2 3 01-03-2012 18:03
2008 R2 - Проблема с Active Directory; Help :D Nakamura Windows Server 2008/2008 R2 5 22-07-2011 21:12
Active directory проблема!!!! Jay_2233 Microsoft Windows NT/2000/2003 8 17-05-2006 22:05
проблема с DNS в Active Directory vagner_HATE Microsoft Windows NT/2000/2003 1 10-02-2006 10:50




 
Переход