IBM Support

Incoming Remote Command (RUNRMTCMD) with Windows Vista, 7, 8.x, 10, and beyond

Troubleshooting


Problem

Effective April 30, 2019, IBM® withdrew support for 5770-XE1 IBM i Access for Windows™  7.1.  IBM i Access for Windows 7.1. was delivered with IBM i 7.3, 7.2, and 7.1.  Extended support is not available.
The  IBM i Access for Windows product contained a function called RUNRMTCMD, which allowed a user logged on to the IBM i to send a PC command to a PC on the network.
IBM i Access Client Solutions, the replacement product for IBM i Access for Windows, does not include a RUNRMTCMD product.
At the current time, there is no supported RUNRMTCMD product available.
This document discusses the changes made to Windows Vista and newer Windows Operating systems that restricted how a service program interacts with the Windows desktop and users, therefore effecting the use of the RUNRMTCMD function.

Environment

IBM i V7R1, V7R2, or V7R3 servers. Windows Vista, 7, 8.0, 8.1, or 10 operating systems.

Resolving The Problem

Microsoft made many changes to Windows behaviors in Windows Vista and newer. One of these changes affects the way that service programs are allowed to interact with the desktop user. In Windows XP and prior, the IBM i Access for Windows Remote Command service can be configured to interact with the desktop. To do this, open the Windows Services management console (click Start > Run, and type services.msc and press OK). Then find the Incoming Remote Command (IRC) service; the name will depend on the version of client you have installed. In V7R1, the IRC is named "Cwbrxd" (see Figure 1a). Double click this service to open the property window. On the General tab you may set the "Startup type:" to Automatic, so that the IRC service is started when the PC is started (see Figure 1b). If you need to have the IRC service interact with the PC desktop, then click on the 'Log On' tab and select the options under the 'Log on as:' heading for 'Local System account'. Then check the box to 'Allow service to interact with desktop' (see Figure 1c). After making this change, the service must be stopped and restarted; this can be done from the General tab of the service properties window.

NOTEs:
1. IBM i Access for Windows V7R1 is supported on Microsoft Windows operating systems such as Vista, 7, 8.0, and 8.1, provided Microsoft is also actively supporting these operating systems, complete details available in Windows lifecycle fact sheet. For complete list of IBM i Access for Windows support is available at: Using IBM i Access with Windows OSs.
2. Interaction with desktop on Windows Vista, 7, and 8.x has been restricted by the Microsoft Services and may not work. For complete details, review IBM Technote N1018661: Sysinternals Tool Aids Incoming Remote Command Interaction With Vista Desktop.
3. IBM i Access for Windows V7R1 is not supported on Microsoft Windows 10 operating system.

V7R1:
V7R1 IRC name (CWBRXD) listed under Windows Service.
V7R1 IRC Windows Service settings under the General tab.

V7R1 IRC Windows Service settings under the Log On tab.

Once the remote command service is configured to interact with the desktop, any programs run through the REXEC utility or RUNRMTCMD on i5/OS will cause the program to start up on the desktop of the logged on Windows user when you are using older versions of Windows. With Windows Vista/7/8.x, no service program can ever really interact that seamlessly with the desktop. Microsoft was seeking to improve the security of Windows with Vista/7/8.x and, as part of this, they chose to separate system services from user applications. Rather than having an application pop up on the desktop when invoked through remote command, it will cause a dialog to open that alerts the user that there is a service program that is trying to interact with them (see Figure 2). In order to view the program, the user must click on the 'Show me the message' link in this window. Closing the window will cause the program that is running (if the user gets this message, the program has actually started) to remain running with no way for the user to easily end it. This can cause the RUNRMTCMD program to remain running because it is waiting for the command that was started to exit before it returns. In order to end the program in Windows and allow the RUNRMTCMD command to end, you have to end the program that was started through the Windows task manager. To do this, press Ctrl+Alt+Esc to open the task manager, click on the processes tab, and look for the program that was started through RUNRMTCMD. If the program is listed more than once, look for the one with the user name 'SYSTEM' and end that process. If the user presses the 'Remind me in a few minutes' option, the window will close, the RUNRMTCMD will appear to hang (it runs until the windows program it started ends, so that the output of that program can be logged to a spooled file), and the 'Interactive services dialog detection' window will pop up again in a few minutes.

The Windows Vista 'Interactive services dialog detection' window


The Interactive Services Detection is also a Windows service. It must be started in order for the mechanism described above to work. If the service has been disabled, it will not start. Without this service, there is no way for a service program to interact with a user. You can view and modify the properties of this service in the services management console too (see Figure 3).
Windows Services management console, showing the Interactive Services Detection service.

The description text on this service follows; it warns that disabling this service will render service programs incapable of interacting with Windows users:

"Enables user notification of user input for interactive services, which enables access to dialogs created by interactive services when they appear. If this service is stopped, notifications of new interactive service dialogs will no longer function and there may no longer be access to interactive service dialogs. If this service is disabled, both notifications of and access to new interactive service dialogs will no longer function."

Another big change that users notice is that when they click the 'Show me the message' option, it does not simply show the program on the current desktop. Windows Vista/7/8.x has a different interpretation of what it means to 'interact with the desktop' than older versions of Windows did. In Windows Vista/7/8.x, the user will be taken to a blank blue or grey screen with the service program, perhaps a windows console screen which was used to start the service program and there will be a window titled, 'Interactive services dialog detection'. There is no desktop, no menu, and no way to 'interact' with your normal desktop. The only choices the user has here are to use the program that was started, close the program, and to click the 'Return now' option on the 'Interactive services dialog detection' window. This is the only way to get back to the Windows desktop. If you click this link without closing the program, then the window in Figure 2 will still be on the desktop, and you can use it to go back to the service program. If you close the service program and click the 'return now' link, then the service program has ended and the window in Figure 2 will no longer be available. It is not possible to provide a picture of this dialog box or the 'desktop' because in this restricted environment, screen captures do not work.

There are no circumventions or ways to 'work around' these behaviors, other than the one mentioned in the NOTEs of this document. If the new mechanism is not acceptable to the Windows user, they can contact Microsoft to request a design change to Windows or they can revert to an older version of Windows such as Windows XP.

Alternately, you can install IBM i Access Client Solutions, which does not have support for RUNRMTCMD, and use STRPCCMD to submit the command to the PC. However STRPCCMD can only access the PC client from which the STRPCCMD was issued.  Additionally it can only run interactively and not programatically.
Another alternative is to use OpenSSH.   This option is documented in IBM Technical Note 'Remote Command Execution from IBM i to Microsoft Windows Open SSHD' which is found online here:
In addition, a Request For Enhancement (RFE) has been created: RUNRMTCMD equivalent command for IBM i Access Client Solutions. You may place your vote for such a feature being made available in IBM i Access Client Solutions.

[{"Type":"MASTER","Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.1.0"}]

Document Information

Modified date:
18 May 2020

UID

nas8N1021806