-
Notifications
You must be signed in to change notification settings - Fork 56
/
Рекурсия - вывод членов гурппы с подгруппами.ps1
64 lines (62 loc) · 1.7 KB
/
Рекурсия - вывод членов гурппы с подгруппами.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
cls
$Otstup = 0
$FileList = "D:\List.csv"
If (Test-Path $FileList) {Del $FileList}
$str = ""
function recurs
{
param ($Group)
$GroupLowLevel = Get-ADGroupMember $Group | Where {$_.objectClass -like "group"} # получаем список групп
$UsersLowLevel = Get-ADGroupMember $Group | Where {$_.objectClass -like "user"} # получаем список пользователей
Add-Content -Path $FileList -Value ($str+"@"+$Group)
# $str+$Group
If (($GroupLowLevel -ne $null) -or ($UsersLowLevel -ne $null))
{
$Otstup++
# $Otstup
$str = ""
For ($CountOtstup=0; $CountOtstup -lt $Otstup; $CountOtstup++)
{
$str+=";"
}
If ($UsersLowLevel -ne $null)
{
$Z = $UsersLowLevel.Count # количество пользователей
If ($Z -gt 0) # если в списке пользователей больше одного
{
For ($i=0; $i -lt $UsersLowLevel.Count; $i++)
{
Add-Content -Path $FileList -Value ($str+$UsersLowLevel[$i].name)
# $UsersLowLevel[$i].name
}
}
Else
{
Add-Content -Path $FileList -Value ($str+$UsersLowLevel.name)
# $str+$UsersLowLevel.name
}
}
If ($GroupLowLevel -ne $null)
{
$Z = $GroupLowLevel.Count # количество групп
If ($Z -gt 0) # если в списке групп больше одной группы
{
For ($i=0; $i -lt $GroupLowLevel.Count; $i++)
{
# $GroupLowLevel[$i].name
recurs ($GroupLowLevel[$i].name)
}
}
Else
{
Add-Content -Path $FileList -Value ($str+$GroupLowLevel.name)
# $str+$GroupLowLevel.name
}
}
}
Else
{
$Otstup = $Otstup-1
}
}
Recurs "Департамент информационных технологий_стр"