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 \{product---name} 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)]


