Что такое метод для использования foreach в текстовом файле? - PullRequest
0 голосов
/ 24 сентября 2019

Ниже встроенных foreach команд требуется $user для получения из list.txt, выгрузки групп из AD в файл $user.txt и удаления.

Как указать $user в качестве каждой строки вlist.txt также проверяет форматирование списка внутри list.txt - это только одно имя в строке, без запятой?

foreach ($user in .\list.txt) {
    $groups = (Get-ADUser $user -Properties MemberOf).MemberOf
    Add-Content -Path C:\TEMP\RemoveGroups\$user.txt -Value $groups
    foreach ($group in $groups) {
        Remove-ADGroupMember $group -Member $user
    }

Ответы [ 2 ]

1 голос
/ 24 сентября 2019
$List = Get-Content .\List.txt
Foreach ($User in $List){
    $Groups = (Get-ADUser $user -Properties MemberOf).MemberOf

    Foreach ($GroupDN in $Groups){
        Try {
            $Group = Get-ADGroup $GroupDN
            Remove-ADGroupMember $Group -member $user -ErrorAction Stop
            $Succeed = $Succeed,$Group.Name -join ";"
        }
        Catch {
            $Failed = $Failed,$Group.Name -Join ";"
        }
    }

    $temp = New-Object psobject -ArgumentList @{
        User    = $User
        Succeed = $Succeed
        Failed  = $Failed
    }

    Export-Csv -InputObject $temp -Path C:\TEMP\RemoveGroups\Result.csv -Encoding UTF8 -NoTypeInformation -Append
}

Вы получите CSV-файл следующим образом:

Пользователь, Успешный, Неудачный

Пользователь1, Группа1; Группа2, Группа3; Группа4

пользователь 2, группа 2; группа 3, группа 1; группа 4

0 голосов
/ 24 сентября 2019

Вы можете использовать следующий код.

# Read the list of users to an array of strings.
$users = Get-Content .\list.txt
foreach ($user in $users) {
    # Validate that the username only contains a-z and 0-9.
    if ($user -match "^[a-zA-Z0-9]+$") {
        $groups = (Get-ADUser $user -Properties MemberOf).MemberOf
        Add-Content -Path C:\TEMP\RemoveGroups\$user.txt -Value $groups
        foreach ($group in $groups) {
            Remove-ADGroupMember $group -member $user
        }
    }
}
...