После получения SparkContext можно также использовать addPyFile
для последующего отправки модуля каждому работнику.
sc.addPyFile('/path/to/BoTree.py')
Ответ заключается в том, что существует несколько типов атрибутов на ADObject
- Default
, Extended
и Constructed
. Это некоторые примеры.
Default
свойства возвращаются во все ADObject
запросы, соответствующие определенному типу ADObject
(ADUser
имеет свой собственный набор свойств по умолчанию, ADGroup
имеет свой собственный набор и т. д.).
Extended
свойства по умолчанию не возвращаются, но неявно перечислимые статические атрибуты в атрибутах ADObject
.
Constructed
не являются статическими свойствами, а вычисляются на основе значений других атрибутов, принадлежащих ADObject
. Я не мог найти никакой информации об этом, но я полагаю, что перечисление всех атрибутов Constructed
может быть дорогостоящей операцией, поскольку значения вычисляются и, как таковые, должны быть явно запрошены с помощью параметра -Properties
командлетов Get-ADObject
.
Все это похоже на атрибут systemFlags
на ADObject
, где установлены типы атрибутов. Мое подозрение (я не очень сильно тестировал эту теорию) заключается в том, что атрибуты с флагом Constructed (4)
или Non-Replicated (2)
должны быть явно указаны для возврата из cmdlet
.
msDS-UserPasswordExpiryTimeComputed Documentation
Список всех построенных атрибутов в ADObject с использованием фильтра LDAP
Следующий код должен возвращать ВСЕ атрибуты пользователя AD (все свойства ObjectClass = user):
$properties = Get-ADObject -SearchBase (Get-ADRootDSE).SchemanamingContext -Filter {name -eq "User"} -Properties MayContain,SystemMayContain | `
Select-Object @{name="Properties";expression={$_.maycontain+$_.systemmaycontain}} | `
Select-Object -ExpandProperty Properties
Get-ADUser -Identity username -Properties $properties | fl $properties
Сначала он извлекает и сохраняет все пользовательские свойства в массив, а затем, во-вторых, свойства массив используется с Get-ADUser для извлечения всех свойств для одного пользователя (в этом примере).