Size: a a a

PowerShellRus - о Powershell (и не только) на русском

2017 September 13

AM

Anton Masyan in PowerShellRus - о Powershell (и не только) на русском
а есть же еще много всего интересного ))
источник

AM

Anton Masyan in PowerShellRus - о Powershell (и не только) на русском
источник
2017 September 14

R

Roman in PowerShellRus - о Powershell (и не только) на русском
Пхп точно)))
источник

NK

ID:239892337 in PowerShellRus - о Powershell (и не только) на русском
источник

a

a1eXei in PowerShellRus - о Powershell (и не только) на русском
🖖
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
источник
2017 September 18

ОМ

Олег Макаров in PowerShellRus - о Powershell (и не только) на русском
Есть у кого-нибудь идеи/решения как ограничить глубину поиска "Get-ADGroup -SearchBase $ou" несколькими уровнями (2/3/n)?
-SearchScope можно указать либо искать бесконечно глубоко, либо 1 уровень...
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
Видимо, по DistinguishedName определять глубину и отсекать лишнее
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
источник

ОМ

Олег Макаров in PowerShellRus - о Powershell (и не только) на русском
Спасибо! Буду изучать
источник

SK

Sergey Korotkov in PowerShellRus - о Powershell (и не только) на русском
Олег Макаров
Спасибо! Буду изучать
плохой вариант на вскидку
Get-ADUser -Filter * -Properties CanonicalName | where { ($_.CanonicalName -split '/').Count -le 3 }
источник

ОМ

Олег Макаров in PowerShellRus - о Powershell (и не только) на русском
Sergey Korotkov
плохой вариант на вскидку
Get-ADUser -Filter * -Properties CanonicalName | where { ($_.CanonicalName -split '/').Count -le 3 }
Я как раз сначала думал о таком варианте, но не знал, как грамотно и быстро его написать :)
Спасибо!
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
Pavel Orlov
Видимо, по DistinguishedName определять глубину и отсекать лишнее
Боюсь не самый оптимальный способ хотя бы потому что вхолостую по всему домену шарашиться придётся. Вот рекурсия с отслеживанием глубины в предложенном тобой примере - самое то.
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
Все эти способы в любом случае возвращают большее количество объектов, чем требуется изначально и это, очевидно, неоптимально. В случае с группами можно сначала получить список OU без рекурсии, а потом по каждому - список групп.
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
Что-нить вроде:
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
$i=1
$OU = "OU=test,DC=tst1,dc=tst2"
$ADGroup = @()
$Depth = 3
While ($i -le $Depth) {
   
   $OU = $OU | % {Get-ADOrganizationalUnit -SearchBase $_  -SearchScope OneLevel -filter * }
   $ADGroup += $OU | % {Get-ADGroup -SearchBase $_ -SearchScope OneLevel -Filter *}
   $i++
   
}
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
Pavel Orlov
Все эти способы в любом случае возвращают большее количество объектов, чем требуется изначально и это, очевидно, неоптимально. В случае с группами можно сначала получить список OU без рекурсии, а потом по каждому - список групп.
Конечно больше, ибо ты из большего множества выбираешь меньшее или равное подмножество. Тут дело в том, что все же даже взятые группы они же не выше нужного уровня.
Кстати, Get-ADOrganizationalUnit  же контейнеры не вернет?
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
Roman Volodin
Конечно больше, ибо ты из большего множества выбираешь меньшее или равное подмножество. Тут дело в том, что все же даже взятые группы они же не выше нужного уровня.
Кстати, Get-ADOrganizationalUnit  же контейнеры не вернет?
CN=Users и CN=Computers команда Get-ADOrganizationalUnit не возвращает, да.
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
Тады можно вместо нее использовать Get-ADObject.
источник

PO

Pavel Orlov in PowerShellRus - о Powershell (и не только) на русском
$OU = $OU | % {Get-ADObject -Filter {(ObjectClass -eq "organizationalunit") -or (ObjectClass -eq "container" -and (name -eq "Users" -or name -eq "Computers"))} -SearchBase $_ -SearchScope OneLevel}
источник