2015-01-06 4 views
-1

Я хочу обновить атрибут netbootmachinefilepath после его очистки. Поскольку этот атрибут может быть либо не пустым, либо удаленным, мне нужно создать его снова после того, как значение было «очищено», потому что «очистка» фактически удаляет его.Создать «netbootmachinefilepath» Атрибут компьютера Active Directory

Как я могу воссоздать этот атрибут с помощью Powershell?

Я надеялся, что там будет что-то вроде

$directoryEntry.Properties.Create("netbootmachinefilepath") 
$directoryEntry.CommitChanges() 

EDIT Из-за проблем программного обеспечения на наших серверах, я не в состоянии использовать модуль ActiveDirectory.

+0

Пожалуйста, покажите еще какой-нибудь (код) контекст. Какое значение присваивается '$ directoryEntry'? Как? –

ответ

1

Это должно работать независимо от того, имеет ли атрибут ранее или нет.

$directoryEntry.Properties["netbootmachinefilepath"].Value = "yourvalue" 
$directoryEntry.CommitChanges() 

Даже $directoryEntry.Properties.Contains("netbootmachinefilepath") ложна
$directoryEntry.Properties["netbootmachinefilepath"] никогда не будет возвращать нуль. Он возвращает пустой PropertyValueCollection.

Протестировано приведенное выше код, и оно успешно установило значение, даже если оно не имеет значения раньше.

+0

Это не работает, потому что путь netbootmachinefile не существует после его очистки. –

+0

Я могу это подтвердить, потому что $ directoryEntry.Properties.Contains ("netbootmachinefilepath") равен false. –

+3

Да, '$ directoryEntry.Properties.Contains (" netbootmachinefilepath ")' return 'false', но' $ directoryEntry.Properties ["netbootmachinefilepath"] 'все равно вернет' PropertyValueCollection', который вы можете использовать для установки значения. – baldpate