type=page
status=published
title=validate-dcom
next=validate-multicast.html
prev=uptime.html
~~~~~~

validate-dcom
=============

[[validate-dcom-1]][[GSRFM796]][[validate-dcom]]

validate-dcom
-------------

Tests the connection over DCOM to a remote host

[[sthref2323]]

=== Synopsis

[source]
----
asadmin [asadmin-options] validate-dcom [--help]
[--windowsuser windows-user] [--windowsdomain windows-domain]
[--remotetestdir remote-test-directory]
[--verbose={false|true}] host-name
----

[[sthref2324]]

=== Description

The `validate-dcom` subcommand tests the connection over the Distributed
Component Object Model (DCOM) remote protocol to the remote host that is
specified as the operand of the subcommand. The DCOM protocol is
available only on Windows systems.

The prerequisites for running this subcommand are as follows:

* DCOM must be configured on the host where the domain administration
server (DAS) is running and on the remote host that is specified as the
operand of the subcommand.

* The following ports must be open on the remote host:
** DCOM port 135 or 139
** Windows Shares port 445

* The Server Windows Service is enabled on the remote host.

This subcommand verifies whether the prerequisites for creating a DCOM
node or creating a {productName} instance on a DCOM node are met. If
this subcommand fails, any attempt to create a DCOM node or create an
instance on a DCOM node will also fail.

You may run this command from any machine that can contact the DAS.

The subcommand tests the connection over DCOM to the remote host by
performing the following operations on the remote host:

* Resolving the host name
* Connecting to DCOM through port 135 or 139
* Connecting to Windows Shares through port 445
* Copying a script that is named `delete_me.bat` in the folder that is
  specified by the `--remotetestdir` option
* Running the script to obtain a listing of the folder in which the
  `delete_me.bat` was written

By default, the subcommand displays no information about the operations
that are performed to test the connection to the remote host. To display
information about these operations, set the `--verbose` option to `true`.

This subcommand is supported in remote mode only.

[[sthref2325]]

=== 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.
`--windowsuser`::
`-w`::
  The user on the remote host that is to run the process for connecting
  to that host through DCOM. The default is the user that is running the
  DAS process.
`--windowsdomain`::
`-d`::
  The name of the Windows domain that contains the user that the
  `--windowsuser` option specifies. The default is the name of the host
  on which the subcommand is run.
`--remotetestdir`::
  Specifies the folder on the remote host in which the subcommand
  creates the `delete_me.bat` file. The user that the `--windowsuser`
  option specifies must have write access to this folder. Otherwise an
  error occurs. The default is `C:\`
`--verbose`::
`-v`::
  Specifies whether the subcommand displays information about the
  operations that are performed to test the connection to the remote host. +
  Possible values are as follows:

  `false`;;
    No information about the operations that are performed to test the
    connection is displayed (default).
  `true`;;
    The subcommand displays information about the operations that are
    performed to test the connection.

+
If the `--verbose` option is true and the `AS_DEBUG` environment
    variable is set, the subcommand also displays the command line for
    each process that is running on the remote host.

[[sthref2326]]

=== Operands

host-name::
  The name of the host to which to test the connection over DCOM.

[[sthref2327]]

=== Examples

[[GSRFM834]][[sthref2328]]

==== Example 1   Testing the Connection Over DCOM to a Remote Host

This example tests the connection over DCOM to the host `wpmdl2`.

[source]
----
asadmin> validate-dcom --wpmdl2
Command validate-dcom executed successfully.
----

[[GSRFM797]][[sthref2329]]

==== Example 2   Verbosely Testing the Connection Over DCOM to a Remote Host

This example tests the connection over DCOM to the host `wpmdl2` and
displays information about the operations that are performed to test the
connection to the remote host.

[source]
----
asadmin> validate-dcom --verbose wpmdl2

Successfully resolved host name to: wpmdl2/192.168.122.106
Successfully connected to DCOM Port at port 135 on host wpmdl2.
Successfully connected to NetBIOS Session Service at port 139 on host wpmdl2.
Successfully connected to Windows Shares at port 445 on host wpmdl2.
Successfully accessed C: on wpmdl2 using DCOM.
Successfully wrote delete_me.bat to C: on wpmdl2 using DCOM.
Successfully accessed WMI (Windows Management Interface) on wpmdl2. There are 40
processes running on wpmdl2.
Successfully ran the test script on wpmdl2 using DCOM.
The script simply ran the DIR command. Here are the first few lines from the
output of the dir command on the remote machine:

C:\Windows\system32>dir C:\
 Volume in drive C has no label.
 Volume Serial Number is XXXX-XXX

 Directory of C:\

12/05/2011  10:21 AM                63 .asadminpass
02/15/2011  01:08 PM    <DIR>          aroot
12/05/2011  04:43 PM                 8 delete_me.bat
03/03/2011  10:36 AM    <DIR>          export

Command validate-dcom executed successfully.
----

[[sthref2330]]

=== Exit Status

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

[[sthref2331]]

=== See Also

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

link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:ping-node-dcom.html#ping-node-dcom-1[`ping-node-dcom`(1)],
link:update-node-ssh.html#update-node-dcom-1[`update-node-dcom`(1)]


