### SUMMARY

Exception from file connectionpool.py showed with every ad-hoc command executed on Windows node connecting by WinRM and certificate. Ansible 2.8.x doesn't show this exception

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

Ansible Connection WinRM

##### ANSIBLE VERSION
```
ansible 2.9.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/etsadm/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION
```
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 30
DEFAULT_LOG_PATH(/etc/ansible/ansible.cfg) = /var/log/ansible/ansible.log
DEFAULT_ROLES_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/roles', u'/usr/share/ansible/roles']
DEFAULT_VAULT_PASSWORD_FILE(/etc/ansible/ansible.cfg) = /home/etsadm/ansible_pwd.txt
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
```

Dynamic inventory created with these variables for all nodes:

'all': {
        'vars': {
            'ansible_winrm_cert_pem': '/etc/ansible/certificado/cert.pem',
            'ansible_winrm_transport': 'certificate',
            'ansible_winrm_server_cert_validation': 'ignore',
            'ansible_winrm_cert_key_pem': '/etc/ansible/certificado/key.pem',
            'ansible_connection': 'winrm'
        }
    }

##### OS / ENVIRONMENT
RHEL 7.7 x86_64
Ansible 2.9.1
Python 2.7.5

##### STEPS TO REPRODUCE

Every ad-hoc command executed on a Windows node, connecting by WinRM and certificate,  throws an exception but command runs fine.

Example:
<!--- Paste example playbooks or commands between quotes below -->
``` ansible -m win_ping windows_node_client ```

##### ACTUAL RESULTS
```
ansible 2.9.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/etsadm/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
host_list declined parsing /etc/ansible/hosts/generaInventario.sh as it did not pass its verify_file() method
Parsed /etc/ansible/hosts/generaInventario.sh inventory source with script plugin
Loading callback plugin minimal of type stdout, v2.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/minimal.pyc
META: ran handlers
Using module file /usr/lib/python2.7/site-packages/ansible/modules/windows/win_ping.ps1
Pipelining is enabled.
<windows_node_client> ESTABLISH WINRM CONNECTION FOR USER: None on PORT 5986 TO windows_node_client
Traceback (most recent call last):
  File "/usr/lib64/python2.7/logging/__init__.py", line 851, in emit
    msg = self.format(record)
  File "/usr/lib64/python2.7/logging/__init__.py", line 724, in format
    return fmt.format(record)
  File "/usr/lib64/python2.7/logging/__init__.py", line 467, in format
    s = self._fmt % record.__dict__
KeyError: 'user'
Logged from file connectionpool.py, line 735
EXEC (via pipeline wrapper)
windows_node_client | SUCCESS => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "data": "pong"
        }
    }, 
    "ping": "pong"
}
META: ran handlers
META: ran handlers
```

result = None
            self.warning("Not prompting as we are not in interactive mode")
        
        if not result and default is not None:
            result = default
        if encrypt:
            
            from ansible.utils.encrypt import do_encrypt
            result = do_encrypt(result, encrypt, salt_size, salt)
        
        result = to_text(result, errors='surrogate_or_strict')
        if unsafe:
            result = wrap_var(result)
        return result
    @staticmethod
    def _output_encoding(stderr=False):
        encoding = locale.getpreferredencoding()
        
        
        
        if encoding in ('mac-roman',):
            encoding = 'utf-8'
        return encoding
    def _set_column_width(self):
        if os.isatty(0):
            tty_size = unpack('HHHH', fcntl.ioctl(0, TIOCGWINSZ, pack('HHHH', 0, 0, 0, 0)))[1]
        else:
            tty_size = 0
        self.columns = max(79, tty_size - 1)