type=page
status=published
title=delete-node-dcom
next=delete-node-ssh.html
prev=delete-node-config.html
~~~~~~

= delete-node-dcom

[[delete-node-dcom-1]][[GSRFM569]][[delete-node-dcom]]

== delete-node-dcom

Deletes a node that is enabled for communication over DCOM

[[sthref906]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-node-dcom [--help]
[--uninstall={false|true}] [--force={false|true}]
node-name
----

[[sthref907]]

=== Description

The `delete-node-dcom` subcommand deletes a node that is enabled for
communication over the Distributed Component Object Model (DCOM) remote
protocol from the domain. The DCOM protocol is available only on Windows
systems. This subcommand does not require DCOM to be configured.

This subcommand can delete only a node that is enabled for communication
over DCOM. The subcommand for deleting other types of nodes depends on
the type of the node:

* A node that is enabled for communication over secure shell (SSH) must
be deleted by using the
link:delete-node-ssh.html#delete-node-ssh-1[`delete-node-ssh`(1)] subcommand.
* A node that is not enabled for communication must be deleted by using the
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)] subcommand.

To determine whether a node is enabled for communication over DCOM, use
the link:list-nodes.html#list-nodes-1[`list-nodes`(1)] subcommand.

No {productName} instances must reside on the node that is being
deleted. Otherwise, the subcommand fails. Before running this
subcommand, delete any instances that reside on the node by using, for
example, the
link:delete-instance.html#delete-instance-1[`delete-instance`(1)]
subcommand or the
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)] subcommand.

This subcommand is supported in remote mode only.

[[sthref908]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--uninstall`::
  Specifies whether the {productName} software is uninstalled from
  host that the node represents. Possible values are as follows:

  `false`;;
    The {productName} software is not uninstalled from the host
    (default).
  `true`;;
    The {productName} software is uninstalled from the host. By
    default, if any node except the predefined node ``localhost-``domain
    resides on any host from which {productName} software is being
    uninstalled, the subcommand fails. +
    To uninstall the {productName} software from a host on which
    user-defined nodes reside, set the `--force` option to `true`. +
    If the `--force` option is `true`, the subcommand removes
    the entire content of the parent of the base installation directory.

`--force`::
  If `--uninstall` is true, specifies whether the subcommand uninstalls
  the {productName} software from a host even if a user-defined node
  resides on the host. Possible values are as follows:

  `false`;;
    If a user-defined node resides on a host, the software is not
    uninstalled and the subcommand fails (default). +
    If the `--force` option is `false`, the subcommand removes only the
    {productName} software files. Other content if the parent of the
    base installation directory, such as configuration files, are not removed.
  `true`;;
    The subcommand uninstalls the {productName} software from the
    host even if a user-defined node resides on the host. +
    If the `--force` option is `true`, the subcommand removes the entire
    content of the parent of the base installation directory.

[[sthref909]]

=== Operands

node-name::
  The name of the node to delete. The node must enabled for
  communication over DCOM. Otherwise, an error occurs.

[[sthref910]]

=== Examples

[[GSRFM570]][[sthref911]]

==== Example 1   Deleting a Node That Is Enabled for Communication Over DCOM

This example deletes the node `xkyd`, which is enabled for communication
over DCOM.

[source]
----
asadmin> delete-node-dcom xkyd
Command delete-node-dcom executed successfully.
----

[[sthref912]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref913]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)],
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)],
link:delete-node-ssh.html#delete-node-ssh-1[`delete-node-ssh`(1)],
link:install-node-dcom.html#install-node-dcom-1[`install-node-dcom`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:uninstall-node-dcom.html#uninstall-node-dcom-1[`uninstall-node-dcom`(1)],
link:update-node-ssh.html#update-node-dcom-1[`update-node-dcom`(1)]


