type=page
status=published
title=setup-local-dcom
next=setup-ssh.html
prev=set-log-levels.html
~~~~~~

= setup-local-dcom

[[setup-local-dcom-1]][[GSRFM893]][[setup-local-dcom]]

== setup-local-dcom

Sets up DCOM on a host

[[sthref2066]]

=== Synopsis

[source]
----
asadmin [asadmin-options] setup-local-dcom [--help]
[--verbose={false|true}]
--force={false|true}
----

[[sthref2067]]

=== Description

The `setup-local-dcom` subcommand sets up the Distributed Component
Object Model (DCOM) remote protocol on the host where the subcommand is
run. The DCOM remote protocol is available only on Windows systems.

This subcommand must be run by the operating-system-level administrator
user on the host where DCOM is being set up. Before running this
command, ensure that items in the Windows operating system are set as
described in "link:ha-administration-guide/ssh-setup.html#GSHAG449[
Windows Operating System Settings]" in
{productName} High Availability Administration Guide.

Setting up DCOM on a host ensures that scripts can be run on the host
from a remote host. To run scripts on the host from a remote host, the
Windows user must be allowed full control over some Windows registry keys.

In some versions of Windows, only the user `NT SERVICE\TrustedInstaller`
has full control over these Windows registry keys. If the version of
Windows on a host is configured in this way, this subcommand modifies
these keys to allow full control over them for the Windows user.

[CAUTION]
====
This subcommand might modify the permissions of some keys in the Windows
registry. Before running this command, back up the Windows registry.
====

By default, the subcommand prompts you to confirm that you want to
update the Windows registry. To run the subcommand without being
prompted, set the `--force` option to `true`.

This subcommand is supported in local mode only.

[[sthref2068]]

=== 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.
`--verbose`::
`-v`::
  Specifies whether the subcommand displays information about the
  operations that are performed to set up DCOM on the host. +
  Possible values are as follows:

  `false`;;
    No information about the operations that are performed to set up
    DCOM is displayed (default).
  `true`;;
    The subcommand displays information about the operations that are
    performed to set up DCOM on the host.

`--force`::
`-f`::
  Specifies whether the subcommand prompts you to confirm that you want
  to update the Windows registry. +
  Possible values are as follows:

  `false`;;
    You are prompted to confirm that you want to update the Windows
    registry (default).
  `true`;;
    The subcommand forcibly updates the Windows registry without
    prompting you.

[[sthref2069]]

=== Examples

[[GSRFM737]][[sthref2070]]

==== Example 1   Setting Up DCOM on a Host

This example sets up DCOM on the host where the subcommand is run.

[source]
----
asadmin> setup-local-dcom
Caution: This command might modify the permissions of some keys in the Windows
registry.
Before running this command, back up the Windows registry.
The modification allows the Windows user full control over these keys.

Are you sure that you want to edit the Windows registry? If so, type yes in full: yes
Command setup-local-dcom executed successfully.
----

[[GSRFM894]][[sthref2071]]

==== Example 2   Forcibly Setting Up DCOM on a Host

This example sets up DCOM without prompting for confirmation that the
user wants to update the Windows registry.

[source]
----
asadmin> setup-local-dcom --force=true
Command setup-local-dcom executed successfully.
----

[[sthref2072]]

=== Exit Status

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

[[sthref2073]]

=== See Also

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

"link:ha-administration-guide/ssh-setup.html#GSHAG449[Windows Operating System Settings]" in {productName} High Availability Administration Guide


