Метод JoinDomainOrWorkgroup класса Win32_ComputerSystem

Метод JoinDomainOrWorkgroup присоединяет компьютерную систему к домену или рабочей группе.

В этом разделе используется синтаксис формата управляемого объекта (MOF). Дополнительные сведения об использовании этого метода см. в разделе Вызов метода.

Синтаксис

uint32 JoinDomainOrWorkgroup(
  [in] string Name,
  [in] string Password,
  [in] string UserName,
  [in] string AccountOU,
  [in] uint32 FJoinOptions = 
);

Параметры

Имя [in]

Указывает домен или рабочую группу для присоединения. Не может иметь значение NULL.

Пароль [вход]

Если параметр UserName указывает имя учетной записи, параметр Password должен указывать на пароль, используемый при подключении к контроллеру домена. В противном случае этот параметр должен иметь значение NULL.

UserName [in]

Указатель на константную строку символов, завершающуюся null, которая указывает имя учетной записи, используемое при подключении к контроллеру домена. Необходимо указать netBIOS-имя домена и учетную запись пользователя, например Домен\пользователь. Если этот параметр имеет значение NULL, используются сведения о вызывающем объекте.

Вы также можете использовать имя участника-пользователя (UPPED) в форме user@domain.

AccountOU [in]

Указывает указатель на константную строку символов, завершающуюся null, которая содержит имя в формате RFC 1779 подразделения для учетной записи компьютера. Если этот параметр указан, строка должна содержать полный путь, в противном случае параметр Accent должен иметь значение NULL.

Пример: "OU=testOU; DC = домен; DC = домен; DC=com"

FJoinOptions [вход]

Набор битовых флагов, определяющих параметры соединения.

(0)

По умолчанию. Нет параметров присоединения.

NETSETUP_JOIN_DOMAIN (0x00000001)

Присоединяет компьютер к домену. Если это значение не указано, присоединяет компьютер к рабочей группе.

NETSETUP_ACCT_CREATE (0x00000002)

Создает учетную запись в домене.

NETSETUP_WIN9X_UPGRADE (0x00000010)

Операция соединения выполняется в рамках обновления.

NETSETUP_DOMAIN_JOIN_IF_JOINED (0x00000020)

Разрешает присоединение к новому домену, даже если компьютер уже присоединен к домену.

NETSETUP_JOIN_UNSECURE (0x00000040)

Выполняет незащищенное присоединение.

Этот вариант запрашивает присоединение к домену к предварительно созданной учетной записи без проверки подлинности с помощью учетных данных пользователя домена. Этот параметр можно использовать в сочетании с параметром NETSETUP_MACHINE_PWD_PASSED . В этом случае Пароль — это пароль предварительно созданной учетной записи компьютера.

До выпуска Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008 небезопасное присоединение не выполняло проверку подлинности на контроллере домена. Все обмен данными выполнялись с использованием сеанса со значением NULL (без проверки подлинности). Начиная с Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008, имя и пароль учетной записи компьютера используются для проверки подлинности на контроллере домена.

NETSETUP_MACHINE_PWD_PASSED (0x00000080)

Указывает, что параметр Password задает пароль учетной записи локального компьютера, а не пароль пользователя. Этот флаг действителен только для незащищенных соединений, которые необходимо указать, также задав флаг NETSETUP_JOIN_UNSECURE.

Если этот флаг установлен, то после успешной операции присоединения пароль компьютера будет установлен в значение Пароль, если это значение является допустимым паролем компьютера.

NETSETUP_DEFER_SPN_SET (0x00000100)

Указывает, что в данный момент не следует обновлять имя субъекта-службы и свойства DnsHostName объекта-компьютера.

Как правило, эти свойства обновляются во время операции соединения. Вместо этого эти свойства следует обновить во время последующего вызова метода Rename . Эти свойства всегда обновляются во время операции переименования.

NETSETUP_JOIN_DC_ACCOUNT (0x00000200)

Разрешите присоединение к домену, если существующая учетная запись является контроллером домена.

Примечание

Этот флаг поддерживается в Windows Vista и более поздних версиях.

NETSETUP_AMBIGUOUS_DC (0x00001000)

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

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_NO_NETLOGON_CACHE (0x00002000)

При присоединении к домену не создавайте кэш Netlogon.

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_DONT_CONTROL_SERVICES (0x00004000)

При присоединении к домену не запускайте службу Netlogon.

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_SET_MACHINE_NAME (0x00008000)

При присоединении к домену только для автономного присоединения задайте имя узла целевого компьютера и netBIOS-имя.

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_FORCE_SPN_SET (0x00010000)

При присоединении к домену переопределите другие параметры во время присоединения к домену и задайте имя субъекта-службы (SPN).

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_NO_ACCT_REUSE (0x00020000)

При присоединении к домену не используйте существующую учетную запись повторно.

Примечание

Этот флаг поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.

NETSETUP_IGNORE_UNSUPPORTED_FLAGS (0x10000000)

Если этот бит задан, нераспознанные флаги будут игнорироваться функцией JoinDomainOrWorkgroup , а NetJoinDomain будет вести себя так, как если бы флаги не были заданы.

Возвращаемое значение

Возвращает код системной ошибки, который может включать одно из следующих числовых значений. Любое другое значение указывает на ошибку. Дополнительные коды ошибок см. в разделе WMI Error Constants или WbemErrorEnum.

Успешно

0

5

Отказано в доступе".

87

Неправильный параметр".

110

Системе не удается открыть указанный объект.

1323

Не удалось обновить пароль.

1326

Сбой входа: неизвестное имя пользователя или неверный пароль.

1355

указанный домен не существует, либо к нему нет доступа.

2224

Учетная запись уже существует.

2691

Компьютер уже присоединен к домену.

2692

В настоящее время компьютер не присоединен к домену.

WBEM_E_ENCRYPTED_CONNECTION_REQUIRED

0x80041087

Пароль и Имя пользователя указаны, но уровень проверки подлинности не RPC_C_AUTHN_LEVEL_PKT_PRIVACY. Для Visual Basic возвращается wbemErrEncryptedConnectionRequired .

Другое

1 4294967295

Комментарии

При перемещении компьютера из домена в рабочую группу необходимо удалить компьютер из домена (с помощью вызова UnjoinDomainOrWorkgroup) перед вызовом этого метода для присоединения к рабочей группе (с вызовом JoinDomainOrWorkgroup). После вызова этого метода перезапустите затронутый компьютер, чтобы применить изменения.

UserName и Password можно оставить значение NULL. Однако проверка подлинности подключения к WMI должна быть 6 в скрипте или WbemAuthenticationLevelPktPrivacy в Visual Basic и других языках, которые могут использовать библиотекуwbemdisp.dll . Дополнительные сведения см. в разделе Настройка уровня безопасности процесса по умолчанию с помощью VBScript.

В C++ задайте проверку подлинности в RPC_C_AUTHN_LEVEL_PKT_PRIVACY в CoInitializeSecurity для всего процесса или в CoSetProxyBlanket для подключения к прокси-серверу IWbemServices . Дополнительные сведения см. в разделах Настройка проверки подлинности с помощью C++ и Настройка безопасности в IWbemServices и других прокси-серверах.

Примеры

Пример присоединения компьютера к домену PowerShell присоединяет компьютер к домену.

В следующем примере кода VBScript компьютер присоединяется к домену и создается учетная запись компьютера в Active Directory.

Const JOIN_DOMAIN             = 1
Const ACCT_CREATE             = 2
Const ACCT_DELETE             = 4
Const WIN9X_UPGRADE           = 16
Const DOMAIN_JOIN_IF_JOINED   = 32
Const JOIN_UNSECURE           = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET        = 256
Const INSTALL_INVOCATION      = 262144
strDomain   = "FABRIKAM"
strPassword = "ls4k5ywA"
strUser     = "shenalan"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & _
                            "\root\cimv2:Win32_ComputerSystem.Name='" & strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
                                                strPassword, _
                                                strDomain & "\" & strUser, _
                                                NULL, _
                                                JOIN_DOMAIN + ACCT_CREATE)

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Пространство имен
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

См. также раздел

Win32_ComputerSystem

Метод UnjoinDomainOrWorkgroup