<div class="content" name="NetrRemoveAlternateComputerName2" uuid="89588615-f39c-4a23-b640-577cdff2bd73"><p>The <b>NetrRemoveAlternateComputerName</b> method removes an
alternate name for a specified server.<a id="Appendix_A_Target_165"></a><a aria-label="Product behavior note 165" href="def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_165" data-linktype="relative-path">&lt;165&gt;</a></p><dl>
<dd>
<div><pre> unsigned long NetrRemoveAlternateComputerName2(
   [in] handle_t RpcBindingHandle,
   [in, string, unique] wchar_t* ServerName,
   [in, string, unique] wchar_t* AlternateName,
   [in, string, unique] wchar_t* DomainAccount,
   [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD_AES EncryptedPassword,
   [in] unsigned long Reserved
 );
</pre></div>
</dd></dl><p><b>RpcBindingHandle:</b> An <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a> binding <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_5044babb-08e3-4bb9-bc12-fe8f542b05ee" data-linktype="relative-path">handle</a> (<a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a>).</p><p><b>ServerName: </b>This parameter has no effect on
message processing in any environment. The client MUST set this parameter to a
value that resolves to the IP protocol layer destination address of the RPC
packets it transmits (<a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a>
section <a href="../ms-rpce/7063c7bd-b48b-42e7-9154-3c2ec4113c0d" data-linktype="relative-path">2.1.1.2</a>).
The server MUST ignore this parameter.</p><p><b>AlternateName: </b>A pointer to a string that
specifies the alternate name to remove. The name MUST be a valid <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_604dcfcd-72f5-46e5-85c1-f3ce69956700" data-linktype="relative-path">DNS</a> host name <a href="https://go.microsoft.com/fwlink/?LinkId=90264" data-linktype="external">[RFC1035]</a>.</p><p><b>DomainAccount: </b>A pointer to a string that
specifies the account name in the <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca" data-linktype="relative-path">domain</a> to use when
connecting to a <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_76a05049-3531-4abd-aec8-30e19954b4bd" data-linktype="relative-path">domain
controller</a>. This parameter is optional. If this parameter is NULL, the
caller&#39;s account name MUST be used. If this parameter is specified, the format
MUST be one of the following:</p><ul><li><p><span><span>  </span></span>&lt;NetBIOSDomainName&gt;\&lt;UserName&gt;</p>
</li><li><p><span><span>  </span></span>&lt;FullyQualifiedDNSDomainName&gt;\&lt;UserName&gt;</p>
</li><li><p><span><span>  </span></span>&lt;UserName&gt;@&lt;FullyQualifiedDNSDomainName&gt;</p>
</li></ul><p><b>EncryptedPassword: </b>An optional pointer to a <b>JOINPR_ENCRYPTED_USER_PASSWORD_AES</b>
structure (section <a href="b3b6d235-29e8-44ec-a723-8fb06a0799d8" data-linktype="relative-path">2.2.5.19</a>)
that specifies the encrypted password to use with the <i>DomainAccount</i>
parameter. If the <i>DomainAccount</i> parameter is NULL, the caller&#39;s <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_88d49f20-6c95-4b64-a52c-c3eca2fe5709" data-linktype="relative-path">security context</a> MUST be
used, and this parameter MUST be ignored.</p><p><b>Reserved: </b>A 32-bit bitfield that SHOULD be set
to zero.</p><dl>
<dd>
<table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>IU</td>
 </tr>
</tbody></table>
</dd>
<dd>
<p>Where the bits are defined as:</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>IU NET_IGNORE_UNSUPPORTED_FLAGS</td>
  <td>If 1, the server MUST ignore the values of the other bits in this field. If 0, the values of the other bits in this field MUST be 0; otherwise, the server MUST return ERROR_INVALID_FLAGS.&lt;166&gt;</td>
 </tr></tbody></table>
</dd></dl><p><b>Return Values: </b>When the message processing
result matches the description in column two of the following table, this
method MUST return one of the following values (<a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
section <a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a>).</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value/code</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>NERR_Success 0x00000000</td>
  <td>The operation completed successfully.</td>
 </tr><tr>
  <td>ERROR_ACCESS_DENIED 0x00000005</td>
  <td>Access is denied.</td>
 </tr><tr>
  <td>ERROR_NOT_SUPPORTED 0x00000032</td>
  <td>This method is not supported by this server.</td>
 </tr><tr>
  <td>ERROR_INVALID_PASSWORD 0x00000056</td>
  <td>The specified network password is not correct.</td>
 </tr><tr>
  <td>ERROR_INVALID_PARAMETER 0x00000057</td>
  <td>One of the function parameters is not valid.</td>
 </tr><tr>
  <td>ERROR_INVALID_NAME 0x0000007B</td>
  <td>An invalid name parameter is specified.</td>
 </tr><tr>
  <td>ERROR_INVALID_FLAGS 0x000003EC</td>
  <td>The Reserved parameter contains an invalid value.</td>
 </tr><tr>
  <td>ERROR_NOT_FOUND 0x00000490</td>
  <td>AlternateName was not found in the current list of alternate names.</td>
 </tr><tr>
  <td>RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7</td>
  <td>The RPC protocol sequence is not supported.</td>
 </tr><tr>
  <td>RPC_S_CALL_IN_PROGRESS 0x000006FF</td>
  <td>A remote procedure call is already in progress.&lt;167&gt;</td>
 </tr><tr>
  <td>DNS_ERROR_INVALID_NAME_CHAR 0x00002558</td>
  <td>The Internet host name contains an invalid character.</td>
 </tr></tbody></table>
</dd></dl><p>Any other return value MUST conform to the error code
requirements in <b>Protocol Details</b> (section <a href="aeea622a-ea3e-40cc-a9b1-b4a2a3b2bf6b" data-linktype="relative-path">3</a>).</p><p>Unless otherwise noted, if the server encounters an error
during message processing, the server SHOULD revert any state changes made,
MUST stop message processing, and MUST return the error to the caller.<a id="Appendix_A_Target_168"></a><a aria-label="Product behavior note 168" href="def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_168" data-linktype="relative-path">&lt;168&gt;</a></p><p>The following definitions are used in the specification of
message processing that follows.</p><ul><li><p><span><span> 
</span></span><i>OldAlternateNames</i>: MUST be a tuple entry for <b>alternate-computer-names</b>
(section <a href="b1cb0684-fdeb-4fa2-8e12-c124ef64025f" data-linktype="relative-path">3.2.1.2</a>).</p>
</li><li><p><span><span> 
</span></span><i>PasswordString</i>: A <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_409411c4-b4ed-4ab6-b0ee-6d7815f85a35" data-linktype="relative-path">UTF-8</a> string containing a
password in <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_f6e0fdd0-cbc1-4c9d-93b8-f25125f9c5ef" data-linktype="relative-path">cleartext</a>.</p>
</li><li><p><span><span> 
</span></span><i>DomainControllerString</i>: A UTF-8 string that contains the
name of a domain controller in the domain that the server is joining.</p>
</li><li><p><span><span> 
</span></span><i>DomainControllerConnection</i>: An ADCONNECTION_HANDLE (<a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a>
section <a href="../ms-dtyp/5faf669e-34a9-471b-aaff-8591b9650189" data-linktype="relative-path">2.2.2</a>)
to a domain controller.</p>
</li><li><p><span><span> 
</span></span><i>WritableDomainControllerDN</i>: A UTF-8 string that contains
the DN of the nTDSDSA object (<a href="../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a" data-linktype="relative-path">[MS-ADTS]</a>
section <a href="../ms-adts/8ebf2419-1169-4413-88e2-12a5ad499cf5" data-linktype="relative-path">6.1.1.2.2.1.2.1.1</a>)
for the domain controller named in <i>DomainControllerString</i>.</p>
</li><li><p><span><span> 
</span></span><i>ReadOnlyDomainControllerConnection</i>: An ADConnection
([MS-ADTS] section <a href="../ms-adts/e3681987-53c1-4dd7-930f-15f537046d55" data-linktype="relative-path">7.3</a>) to
a read-only domain controller.</p>
</li><li><p><span><span> 
</span></span><i>LdapResultMessages</i>: A list of LDAPMessage (<a href="https://go.microsoft.com/fwlink/?LinkId=90325" data-linktype="external">[RFC2251]</a>) containing
results from an operation performed on DomainControllerConnection.</p>
</li><li><p><span><span> 
</span></span><i>ComputerAccountDN</i>: A UTF-8 string that contains the DN of
the computer account.</p>
</li><li><p><span><span> 
</span></span><i>ComputerAccountExtendedDN</i>: A UTF-8 string that contains
the extended DN ([MS-ADTS] section <a href="../ms-adts/57056773-932c-4e55-9491-e13f49ba580c" data-linktype="relative-path">3.1.1.3.4.1.5</a>)
of the computer account.</p>
</li><li><p><span><span> 
</span></span><i>IsRODC</i>: A Boolean that is TRUE if the server is a
read-only domain controller (<a href="../ms-drsr/f977faaa-673e-4f66-b9bf-48c640241d47" data-linktype="relative-path">[MS-DRSR]</a>
section <a href="../ms-drsr/b5e068cf-1b68-479b-9c7f-98f081223d25" data-linktype="relative-path">5.7</a>),
and FALSE otherwise.</p>
</li></ul><p>The following statements define the sequence of message
processing operations.</p><ol><li><p><span>    </span>The server MUST
retrieve the RPC protocol sequence used for the current call ([MS-RPCE] section
<a href="../ms-rpce/0ceefe4c-0d7a-423f-bcd0-54e821767f89" data-linktype="relative-path">3.1.3.4.1</a>),
specifying the server binding handle maintained by the RPC runtime ([C706]
section 6.2.1). If that RPC protocol sequence is not <b>NCACN_NP</b>, the
server SHOULD return RPC_S_PROTSEQ_NOT_SUPPORTED.<a id="Appendix_A_Target_169"></a><a aria-label="Product behavior note 169" href="def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_169" data-linktype="relative-path">&lt;169&gt;</a> </p>
</li><li><p><span>    </span>The server MUST
check that the caller has been granted access rights using the algorithm in the
<b>Access Control Abstract Data Model</b> (section <a href="c5b75090-3de2-404f-8de1-d5ca3fc38a70" data-linktype="relative-path">3.2.1.1</a>), with <i>Access
Request mask</i> initialized to <b>WKSTA_NETAPI_CHANGE_CONFIG</b>; if not, the
server MUST return ERROR_ACCESS_DENIED.</p>
</li><li><p><span>    </span>The server
SHOULD<a id="Appendix_A_Target_170"></a><a aria-label="Product behavior note 170" href="def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_170" data-linktype="relative-path">&lt;170&gt;</a> return ERROR_NOT_SUPPORTED if
the server is a client <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_dcea8721-5213-4954-bc73-d75ad6cb5591" data-linktype="relative-path">SKU</a>
configuration.</p>
</li><li><p><span>    </span>The server
invokes <b>AmIRodc</b> ([MS-DRSR] section 5.7), storing the result in <i>IsRODC</i>.</p>
</li><li><p><span>    </span>If <i>EncryptedPassword</i>
is NULL or <i>DomainAccount</i> is NULL, <i>PasswordString</i> MUST be NULL.
Otherwise, the server MUST decrypt and decode the <i>EncryptedPassword</i>
(section 2.2.5.19). <i>PasswordString</i> MUST equal the decrypted and decoded
value. The decrypted buffer is represented as a <b>JOINPR_USER_PASSWORD</b>
structure (section <a href="6320ca78-6492-4eaf-ad95-a558ad399383" data-linktype="relative-path">2.2.5.17</a>).
The value of the <b>Length</b> member MUST be less than 513; otherwise, message
processing is stopped, and the server MUST return ERROR_INVALID_PASSWORD.</p>
</li><li><p><span>    </span>The server MUST
validate <i>AlternateName</i>. The validation [RFC1035] is performed in the
following order. Specifically, the name MUST NOT:</p>
<ul><li><p><span><span>  </span></span>Be
longer than 255 octets.</p>
</li><li><p><span><span>  </span></span>Contain
a label longer than 63 octets.</p>
</li><li><p><span><span>  </span></span>Contain
two or more consecutive dots.</p>
</li><li><p><span><span>  </span></span>Begin
with a dot.</p>
</li></ul></li><li><p><span>    </span>ERROR_INVALID_NAME
MUST be returned if any condition in the preceding group is violated.
Otherwise, <i>AlternateName</i> validation continues. The name MUST NOT:</p>
<ul><li><p><span><span>  </span></span>Contain
a space.</p>
</li><li><p><span><span>  </span></span>Contain
any of the following characters:</p>
<div><pre> { | } ~ [ \ ] ^ &#39; : ; &lt; = &gt; ? @ ! &#34; # $ % ^ ` ( ) + / , *
</pre></div>
</li></ul></li><li><p><span>    </span>DNS_ERROR_INVALID_NAME_CHAR
MUST be returned if any condition in the preceding group is violated.
Otherwise, <i>AlternateName</i> validation continues.</p>
<ul><li><p><span><span>  </span></span>The
server MUST locate the tuple <i>OldAlternateNames</i> in <b>alternate-computer-names</b>,
where <i>OldAlternateNames</i>.FQDN MUST equal <i>AlternateName</i>.</p>
</li><li><p><span><span>  </span></span><i>OldAlternateNames</i>.NetBIOS
MUST equal <i>AlternateName</i> converted to a <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_0334e0bd-2755-42f6-aeff-2d4a22bf4abf" data-linktype="relative-path">NetBIOS name</a>.<a id="Appendix_A_Target_171"></a><a aria-label="Product behavior note 171" href="def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_171" data-linktype="relative-path">&lt;171&gt;</a> If tuple <i>OldAlternateNames</i>
cannot be found the server MUST return ERROR_NOT_FOUND.</p>
</li></ul></li><li><p><span>    </span>The server MUST
impersonate the client by invoking the <b>StartImpersonatingClient</b> task
(section <a href="719ae534-d5d7-4c42-9989-d63e0676fad1" data-linktype="relative-path">3.2.4.29.6</a>).
If this operation fails, the server MUST return an error.</p>
</li><li><p><span>  </span>If <i>OldAlternateNames</i>
is found, <i>OldAlternateNames</i> MUST be removed from the list in <b>alternate-computer-names</b>
persisted locally so that the set of <a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_b86c44e6-57df-4c48-8163-5e3fa7bdcff4" data-linktype="relative-path">NetBIOS</a> and Internet host
names currently assigned to this computer can be resolved on the network (<a href="https://go.microsoft.com/fwlink/?LinkId=90260" data-linktype="external">[RFC1001]</a> and <a href="https://go.microsoft.com/fwlink/?LinkId=90234" data-linktype="external">[NIS]</a>). If the removal
is not successful, steps 11 through 21 are not processed and the server MUST
return an error after processing steps 22 and 23.</p>
</li><li><p><span>  </span>If the server is not joined
to a domain ([MS-ADTS] section <a href="../ms-adts/e5dd47ea-3ff5-451c-b6fe-c3bda5591402" data-linktype="relative-path">6.4</a>),
proceed to step 22. Otherwise, the server MUST make the following update in the
domain.</p>
</li><li><p><span>  </span>The server MUST locate a
writable domain controller for the domain to which the computer is joined, by
invoking the <b>DsrGetDcNameEx2</b> method on the local <a href="../ms-nrpc/ff8f970f-3e37-40f7-bd4b-af7336e4792f" data-linktype="relative-path">[MS-NRPC]</a>
server specifying the following parameters:</p>
<ul><li><p><span><span>  </span></span><i>ComputerName</i>
= NULL</p>
</li><li><p><span><span>  </span></span><i>AccountName</i>
= <b>ComputerNameNetBIOS </b>(section <a href="e0b508bc-764d-48b7-b44b-4f93c3d5cf8c" data-linktype="relative-path">3.2.1.5</a>)</p>
</li><li><p><span><span>  </span></span><i>AllowableAccountControlBits</i>
= ADS_UF_WORKSTATION_TRUST_ACCOUNT | ADS_UF_SERVER_TRUST_ACCOUNT ([MS-ADTS]
section <a href="../ms-adts/dd302fd1-0aa7-406b-ad91-2a6b35738557" data-linktype="relative-path">2.2.16</a>)</p>
</li><li><p><span><span>  </span></span><i>DomainName</i>
= <b>DomainNameFQDN </b>(section 3.2.1.5)</p>
</li><li><p><span><span>  </span></span><i>DomainGuid</i>
= NULL</p>
</li><li><p><span><span>  </span></span><i>SiteName</i>
= NULL</p>
</li><li><p><span><span>  </span></span><i>Flags</i>
= (J | B) ([MS-NRPC] section <a href="../ms-nrpc/fb8e1146-a045-4c31-98d1-c68507ad5620" data-linktype="relative-path">3.5.4.3.1</a>).</p>
<p>If a domain controller
cannot be located, steps 13 through 21 are not processed and the server MUST
return an error after processing steps 22 and 23.</p>
<p>Otherwise, <i>DomainControllerString</i>
MUST equal the string name of the returned writable domain controller.</p>
</li></ul></li><li><p><span>  </span>The server invokes <b>LDAP
Bind</b> (section <a href="54bb5e23-7947-4516-a04a-d354b11f6207" data-linktype="relative-path">3.2.4.29.2</a>)
with the following parameters:</p>
<ul><li><p><span><span>  </span></span><i>DomainControllerBindTarget</i>:
DomainControllerString</p>
</li><li><p><span><span>  </span></span><i>AccountNameForBind</i>:
AccountName</p>
</li><li><p><span><span>  </span></span><i>PasswordForBind</i>:
PasswordString</p>
</li><li><p><span><span>  </span></span><i>Encrypt</i>:
FALSE</p>
</li><li><p><span><span>  </span></span><i>DisallowReferrals</i>:
TRUE</p>
<p>The result is stored in <i>DomainControllerConnection</i>.
If the LDAP bind returns an error, steps 14 through 21 are not processed, and
the server MUST return the error after processing steps 22 and 23.</p>
</li></ul></li><li><p><span>  </span>If <i>IsRODC</i> is TRUE,
the server invokes <b>LDAP Bind</b> with the following parameters:</p>
<ul><li><p><span><span>  </span></span><i>DomainControllerBindTarget</i>:
<b>ComputerNameNetBIOS</b></p>
</li><li><p><span><span>  </span></span><i>AccountNameForBind</i>:
AccountName</p>
</li><li><p><span><span>  </span></span><i>PasswordForBind</i>:
PasswordString</p>
</li><li><p><span><span>  </span></span><i>Encrypt</i>:
FALSE</p>
</li><li><p><span><span>  </span></span><i>DisallowReferrals</i>:
TRUE</p>
<p>The result is stored in <i>ReadOnlyDomainControllerConnection</i>.
If the LDAP bind is not successful, steps 15 through 21 are not processed and
the server MUST return an error after processing steps 22 and 23.</p>
</li></ul></li><li><p><span>  </span>The server invokes <b>Query
Computer Account DN for the Local Machine</b> (section <a href="c2058c35-790a-4fa9-b8c4-14b19447985e" data-linktype="relative-path">3.2.4.29.1</a>), specifying
DomainControllerString for the <i>DomainControllerQueryTarget</i> parameter,
storing the result in ComputerAccountDN. If the query returns an error, steps
16 through 21 are not processed and the server MUST return the error after
processing steps 22 and 23.</p>
</li><li><p><span>  </span>The server invokes the
&#34;Performing an LDAP Operation on an ADConnection&#34; task of [MS-ADTS]
section <a href="../ms-adts/b2131a85-4a8c-4f48-a610-6a4b7a701627" data-linktype="relative-path">7.6.1.6</a>
with the following parameters:</p>
<ul><li><p><span><span>  </span></span><i>TaskInputADConnection</i>:
DomainControllerConnection</p>
</li><li><p><span><span>  </span></span><i>TaskInputRequestMessage</i>:
<a href="3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_45643bfb-b4c4-432c-a10f-b98790063f8d" data-linktype="relative-path">LDAP</a> modifyRequest
message ([RFC2251] section 4.6) as follows:</p>
<ul><li><p><span><span> 
</span></span>Object: ComputerAccountDN</p>
</li><li><p><span><span> 
</span></span>The modification sequence has one list entry, set as follows:</p>
<ul><li><p><span><span> 
</span></span>First list entry</p>
<ul><li><p><span><span> 
</span></span>operation: delete</p>
</li><li><p><span><span> 
</span></span>modification:</p>
<ul><li><p><span><span> 
</span></span>type: msDS-AdditionalDnsHostName</p>
</li><li><p><span><span> 
</span></span>vals: OldAlternateNames.FQDN</p>
</li></ul></li></ul></li></ul></li><li><p><span><span> 
</span></span>controls: Sequence of one Control structure, as follows:</p>
<ul><li><p><span><span> 
</span></span>controlType: LDAP_SERVER_PERMISSIVE_MODIFY_OID ( [MS-ADTS]
section <a href="../ms-adts/49cdb1e3-3baa-4c7c-8cde-7c26b13d3ba7" data-linktype="relative-path">3.1.1.3.4.1.8</a>)</p>
</li><li><p><span><span> 
</span></span>criticality: FALSE</p>
</li></ul></li></ul></li><li><p><span><span>  </span></span><i>TaskOutputResultMessages</i>:
LDAPResultMessages</p>
<p>If the LDAP operation
returns an error, steps 17 through 21 are not processed and the server MUST
return the error after processing steps 22 and 23.</p>
</li></ul></li><li><p><span>  </span>If <i>IsRODC</i> is TRUE,
the server invokes the &#34;Performing an LDAP Operation on an
ADConnection&#34; task of [MS-ADTS] section 7.6.1.6:</p>
<ul><li><p><span><span>  </span></span><i>TaskInputADConnection</i>:
DomainControllerConnection</p>
</li><li><p><span><span>  </span></span><i>TaskInputRequestMessage</i>:
LDAP SearchRequest message ([RFC2251] section 4.5.1) as follows:</p>
<ul><li><p><span><span> 
</span></span>baseObject: DN of the rootDSE (empty string)</p>
</li><li><p><span><span> 
</span></span>scope: base</p>
</li><li><p><span><span> 
</span></span>filter: ObjectClass=*</p>
</li><li><p><span><span> 
</span></span>attributes: dsServiceName</p>
</li><li><p><span><span> 
</span></span>derefAliases: neverDerefAliases</p>
</li><li><p><span><span> 
</span></span>typesOnly: FALSE</p>
</li></ul></li><li><p><span><span>  </span></span><i>TaskOutputResultMessages</i>:
LDAPResultMessages</p>
</li></ul><p>The server MUST process the results
returned from the DC in LDAPResultMessages. For the entry (SearchResultEntry,
[RFC2251] section 4.5.2) returned by the search in LDAPResultMessages, the
WritableDomainControllerDN MUST equal the value of the attribute dsServiceName.
If the LDAP operation returns an error, steps 18 and 19 are not processed and
processing continues at step 20.</p>
</li><li><p><span>  </span>If <i>IsRODC</i> is TRUE,
the server invokes the &#34;Performing an LDAP Operation on an
ADConnection&#34; task of [MS-ADTS] section 7.6.1.6 with the following
parameters:</p>
<ul><li><p><span><span>  </span></span><i>TaskInputADConnection</i>:
DomainControllerConnection</p>
</li><li><p><span><span>  </span></span><i>TaskInputRequestMessage</i>:
LDAP SearchRequest message ([RFC2251] section 4.5.1) as follows:</p>
<ul><li><p><span><span> 
</span></span>baseObject: ComputerAccountDN</p>
</li><li><p><span><span> 
</span></span>scope: base</p>
</li><li><p><span><span> 
</span></span>filter: ObjectClass=*</p>
</li><li><p><span><span> 
</span></span>attributes: distinguishedName, serverReferenceBL</p>
</li><li><p><span><span> 
</span></span>derefAliases: neverDerefAliases</p>
</li><li><p><span><span> 
</span></span>typesOnly: FALSE</p>
</li><li><p><span><span> 
</span></span>controls: Sequence of one Control structure, as follows:</p>
<ul><li><p><span><span> 
</span></span>controlType: LDAP_SERVER_EXTENDED_DN_OID ([MS-ADTS] section
3.1.1.3.4.1.5)</p>
</li><li><p><span><span> 
</span></span>criticality: TRUE</p>
</li></ul></li></ul></li><li><p><span><span>  </span></span><i>TaskOutputResultMessages</i>:
LDAPResultMessages</p>
<p>The server MUST process the
results returned from the DC in LDAPResultMessages. For the entry
(SearchResultEntry, [RFC2251] section 4.5.2) returned by the search in
LDAPResultMessages, ComputerAccountExtendedDN MUST equal the value of the
attribute distinguishedName unless distinguishedName contains the character
&#39;;&#39;.  If &#39;;&#39; is present, ComputerAccountExtendedDN MUST equal distinguishedName
truncated at the first occurrence of the character &#39;;&#39;, exclusive of the &#39;;&#39;
itself. If the LDAP operation returns an error, step 19 is not processed and
processing continues at step 20.</p>
</li></ul></li><li><p><span>  </span>If <i>IsRODC</i> is TRUE,
the server invokes the &#34;Performing an LDAP Operation on an
ADConnection&#34; task of [MS-ADTS] section 7.6.1.6 with the following
parameters:</p>
<ul><li><p><span><span>  </span></span><i>TaskInputADConnection</i>:
ReadOnlyDomainControllerConnection</p>
</li><li><p><span><span>  </span></span><i>TaskInputRequestMessage</i>:
LDAP modifyRequest message ([RFC2251] section 4.6) as follows:</p>
<ul><li><p><span><span> 
</span></span>Object: DN of the rootDSE (empty string)</p>
</li><li><p><span><span> 
</span></span>The modification sequence has one list entry, set as follows:</p>
<ul><li><p><span><span> 
</span></span>First list entry</p>
<ul><li><p><span><span> 
</span></span>operation: replace</p>
</li><li><p><span><span> 
</span></span>modification:</p>
<ul><li><p><span><span> 
</span></span>type: replicateSingleObject ([MS-ADTS] section <a href="../ms-adts/d3d19d15-8427-4d4d-8256-d5fb11333292" data-linktype="relative-path">3.1.1.3.3.18</a>)</p>
</li><li><p><span><span> 
</span></span>vals: WritableDomainControllerDN:ComputerAccountExtendedDN</p>
</li></ul></li></ul></li></ul></li></ul></li><li><p><span><span>  </span></span><i>TaskOutputResultMessages</i>:
LDAPResultMessages</p>
<p>If the LDAP operation
returns an error, processing continues as if it had succeeded.</p>
</li></ul></li><li><p><span>  </span>The server invokes <b>LDAP
Unbind</b> (section <a href="ed6bf2f1-8c20-4d7f-85c0-a7643190b3ac" data-linktype="relative-path">3.2.4.29.3</a>)
with ADConnectionToUnbind set to DomainControllerConnection.</p>
</li><li><p><span>  </span>If <i>IsRODC</i> is TRUE,
the server invokes <b>LDAP Unbind</b> with ADConnectionToUnbind set to
ReadOnlyDomainControllerConnection.</p>
</li><li><p><span>  </span>The server MUST stop
impersonating the client by invoking the <b>StopImpersonatingClient</b> task
(section <a href="cf258b4a-d66b-4407-85f7-aac7823ec0aa" data-linktype="relative-path">3.2.4.29.7</a>).</p>
</li><li><p><span>  </span>If an error occurred while
processing steps 12 through 16, the server adds <i>OldAlternateNames</i> to the
list in <b>alternate-computer-names</b> persisted locally.</p>
</li></ol><p>If no errors occur, the server MUST return NERR_Success.</p></div>