Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dodane elementy schematu są trwałe. Nie można usunąć obiektów attributeSchema i classSchema. W systemie rozproszonym trudno jest zagwarantować, że nie ma wystąpień danej klasy lub atrybutu. Usunięcie definicji klasy lub atrybutu uszkodzi istniejące wystąpienia tej klasy lub atrybutu.
Istniejącą klasę lub atrybut można wyłączyć, oznaczając ją jako "nieistniejącą". Nie ma to wpływu na istniejące wystąpienia klasy lub atrybutu tak oznaczone, ale uniemożliwia tworzenie nowych wystąpień.
Podczas wyłączania klas schematów i atrybutów obowiązują następujące ograniczenia:
- Nie można wyłączyć klasy lub atrybutu kategorii 1.
- Nie można wyłączyć atrybutu, który jest członkiem klasy, która nie jest również wyłączona. Jest to spowodowane tym, że atrybut może być wymagany dla klasy (nie jest wyłączony) i wyłączenie atrybutu uniemożliwia tworzenie nowych wystąpień klasy.
Aby wyłączyć atrybut, ustaw atrybut isDefunct obiektu schematu atrybutu attributeSchema na TRUE. Po wyłączeniu atrybutu nie można utworzyć nowych wystąpień atrybutu. Aby ponownie włączyć atrybut, ustaw isDefunct atrybut na FALSE.
Aby wyłączyć klasę, ustaw atrybut isDefunct obiektu classSchema na TRUE. Gdy klasa jest wyłączona, nie można utworzyć nowych wystąpień klasy. Aby ponownie włączyć klasę, ustaw atrybut isDefunct na FALSE.
Ustawianie obiektów schematu jako nieistniejącego może być przydatne w środowiskach produkcyjnych. Gdy wersja testowa rozszerzenia schematu nie jest już wymagana, oznacz ją jako nieistnieną. Można go przywrócić, usuwając atrybut isDefunct lub ustawiając wartość atrybutu na wartość FALSE. Chroni to również przed niezamierzonym usunięciem obiektu schematu, ustawiając go jako nieistniejącego, ponieważ można łatwo cofnąć operację.
Należy pamiętać, że serwer usługi Active Directory nie usuwa istniejących wystąpień atrybutu lub klasy, gdy obiekt schematu jest przestarzały. Jeśli usuniesz właściwość isDefunct, wszystkie wystąpienia staną się prawidłowe, normalne obiekty ponownie.
Poniższa lista zawiera inne konsekwencje oznaczania atrybutu schema lub obiektu schematu klasy jako wycofany z użytku:
- Dodawanie lub modyfikowanie wystąpienia kończy się niepowodzeniem.
- Kody błędów zachowują się tak, jakby nieistnieła klasa nigdy nie istniała.
- Wyszukiwanie i usuwanie zachowują się tak, jakby żadne obiekty schematu nie zostały zdezaktualizowane.
- Zezwalaj tylko na usuwanie całego atrybutu z obiektu.
Poniższa lista zawiera dodatkowe opcje w środowisku produkcyjnym w celu zmniejszenia wpływu nieistniejących rozszerzeń schematu:
- Usuń wszystkie wartości atrybutów mayHave z nieistniejącej klasy.
- Zmniejsz rozmiar wszystkich musiHave wartości atrybutów z nieistniejącej klasy.
- Usuń nieistniejącego atrybutu z wykazu globalnego.
- Usuń nieistniejącego atrybutu z dowolnego indeksu.
Inne opcje usuwania niepożądanych zmian schematu w środowisku produkcyjnym są przeznaczone dla deweloperów do używania prywatnego kontrolera domeny do testowania. W takim przypadku można wykonać następujące czynności:
- Zresetuj serwer Active Directory, używając Dcpromo.exe do zdegradowania kontrolera domeny. Po zakończeniu obniżania poziomu ponownie użyj Dcpromo.exe, aby podwyższyć poziom serwera z powrotem do kontrolera domeny. Deweloper może następnie użyć skryptów LDIF do ponownego załadowania wszystkich wymaganych klas, atrybutów i wystąpień obiektów.
- Użyj Ntbackup.exe, aby wykonać kopię zapasową stanu systemu dla dostępnej partycji dysku. Uruchom ponownie w trybie awaryjnym/przywracania usług katalogowych, aby przeprowadzić przywracanie.
W przypadku systemów operacyjnych Windows Server 2003, gdy oznaczysz klasę lub atrybut jako nieaktualne, możesz natychmiast ponownie wykorzystać wartości ldapDisplayName, schemaIdGuid, OID i mapiID defektnego elementu schematu przy tworzeniu nowej klasy lub atrybutu zastępującego go. Nieaktywna wersja klasy lub atrybutu jest zachowywana w kontenerze schematu, ale jest ukryta w przystawce MMC. Aby ponownie uaktywnić stary element schematu, ustaw isDefunct na wartość FALSE.
Poniższy przykład kodu LDIF pokazuje, jak zmodyfikować atrybut isDefunct i zmienić RDN, aby nie pomylić go z nową klasą, którą tworzysz, aby ją zastąpić.
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modify
replace: isDefunct
isDefunct: TRUE
-
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modrdn
newrdn: cn=MyClassOld
deleteoldrdn: 1
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
Użyj następującego polecenia, aby uruchomić przykład kodu LDIF dla lasu dla komputera z systemem operacyjnym Windows Server 2003.
ldifde /i /f rdn.ldf /c "DC=X" "dc=mydomain,dc=com"
(Gdzie "DC=X" jest stałą)