﻿---
sidebar_position: 3
description: Execute command and other functions to work with SSH in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, SSH]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Execute command
 Executes the specified command



`Function ExecuteCommand(Val Connection, Val Command) Export`

  | Parameter | CLI option | Type | Required | Description |
  |-|-|-|-|-|
  | Connection | --conn | Arbitrary | &#x2714; | Existing connection or connection configuration |
  | Command | --comm | String | &#x2714; | Command text |

  
  Returns:  Map Of KeyAndValue - Processing result

<br/>



```bsl title="1C:Enterprise/OneScript code example"
    Host = "172.33.0.13";
    Port = "2222";

    UseProxy          = True;
    ProxySettings     = Undefined;
    AuthorizationType = "By login and password";

    If AuthorizationType = "By login and password" Then

        Login    = "bayselonarrend";
        Password = "12we...";

        SSHSettings = OPI_SSH.GetSettingsLoginPassword(Host, Port, Login, Password);

    ElsIf AuthorizationType = "By key" Then

        Login      = "bayselonarrend";
        PrivateKey = "./ssh_key";
        PublicKey  = "./ssh_key.pub";

        SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);

    Else

        Login       = "bayselonarrend";
        SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);

    EndIf;

    If UseProxy Then

        ProxyType = "http"; // http, socks5, socks4

        ProxyAddress  = "127.0.0.1";
        ProxyPort     = "8071";
        ProxyLogin    = "proxyuser";
        ProxyPassword = "12we...";

        ProxySettings = OPI_SSH.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);

    EndIf;

    Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);

    If OPI_SSH.IsConnector(Connection) Then
        Result = OPI_SSH.ExecuteCommand(Connection, "whoami");
    Else
        Result = Connection; // Error of connection
    EndIf;
```
 

 <Tabs>
  
    <TabItem value="bash" label="Bash" default>
        ```bash
            # JSON data can also be passed as a path to a .json file
            
            oint ssh ExecuteCommand \
             --conn "{'set':{'auth_type':'private_key','host':'172.33.0.13','port':'2222','username':'bayselonarrend','key_path':'***','pub_path':'/tmp/q44gjtnh.uew.tmp'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}}" \
             --comm "whoami"
        ```
    </TabItem>
  
    <TabItem value="bat" label="CMD/Bat" default>
        ```batch
            :: JSON data can also be passed as a path to a .json file
            
            oint ssh ExecuteCommand ^
             --conn "{'set':{'auth_type':'private_key','host':'172.33.0.13','port':'2222','username':'bayselonarrend','key_path':'***','pub_path':'/tmp/q44gjtnh.uew.tmp'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}}" ^
             --comm "whoami"
        ```
    </TabItem>
</Tabs>


```json title="Result"
{
 "exit_code": "0",
 "result": true,
 "stderr": "",
 "stdout": "bayselonarrend",
 "close_connection": {
  "result": true
 }
}
```
