BluePrism runtime inside Citrix desktop - citrix

I am looking at an architecture where we have the BluePrism runtime running inside a Citrix Desktop.
I see plenty of articles that talk about processing a Citrix desktop as part of an automation process, but as far as I can see they talk about firing up a Citrix app from within a process. In other words they have a physical laptop that runs the BluePrism runtime, and part of the process requires it to run a citrix desktop, and automate that. I understand that this scenario is problemtic, and requires you to use Surface Automation.
In my case we have a set of physical laptops, and we would like to completely replace these laptops with VMs. So the runtime will be in the same desktop as the target apps.
Question is, does this work, or are we still faced with having to convert all our BluePrism processes to use Surface Automation to get this architecture to work?

This works with VMs and Surface Automation isn't necessary in that case. All your objects will be doing is attach the target apps by calling their runtime process names on the VM desktop, or launch them from the parent (i.e. folder in the root desktop/server) by providing the path in your application model, and then have your BP objects launch attach to them. Surface Auto may be necessary if you are planning to interact with the actual Citrix Receiver (e.g. icons), but not the apps themselves once they are active on the VM desktop. Of course, all this assuming BP will be also on the VM desktop environment.

Related

Porting a pywinauto script from Windows to X11/Xlib

In my organization, I have been using pywinauto to automate some UI procedures that could not be done using the sole command line interface.
In an effort to move away from windows, I am evaluating the effort to port the UI automation script to a Linux environment (our tool has a Linux version, including a similar GUI).
I have had a look at the python-xlib project. But I have the feeling that it is more a framework to develop native X11 applications rather than perform tests on an existing application (I could not find anything like find_window etc...).
Do you have any advice for an X11 framework to automate UI procedures?
Based on several inputs, I finally came up with the following suggestions:
use pywinauto which has some beta level of Linux support (this support is based on pyatspi2).
use directly pyatspi2 to interact with the widgets if they are exposed. To browse through the exposed widgets of the application you want to automate, you can use accerciser.
finally, many framework exist to use only click + keys + mouse locations and are based on image comparison. There are many around, I have not yet tested any of them.
Finally, since my script is meant to run in a docker environment in CI, I installed Xvfb to run the automation in headless mode, without graphics HW.

Powershell/Commandline in Modern UI

Is there (or is possible) a standard Powershell or commandline in Modern UI in Win 8.x?
It would be pretty nice to have this app "docked" on a part of screen only (for SSH, etc...) and other desktop apps still could be in fullscreen.
You couldn't do this directly. The PowerShell engine isn't available on WinRT. You might be able to do something like create a WinRT app that uses sockets to communicate to a service on the localhost that executes PowerShell for you and returns the results. That would require you to build that service and install it on machines. If this is for a Windows RT device that won't work because only Microsoft can install desktop apps.

Automatically uninstall unused applications in SCCM 2012

Is there a way to automatically uninstall unused applications in SCCM 2012?
I thought of a PowerShell script. Which lists the local installed Applications and compares to the group assigned by the user in the AD. If there is an installed application without group assignment, the application should be uninstalled.
I have had very little to do with PowerShell and want to ask if this is possible?
Thanks
First of all you need to have sofware usage metering data - corresponding feature should be enabled & configured in SCCM, probably some usage statistics can be gathered on a client side by enabling some logging/metering built into client OS (not sure about latter at the moment).
Then having software usage metering data you may establish threshold suitable for you (e.g. software is unused if it was never run at all, newer run for certain period of time etc.) and select and run uninstall of this sofware by running script against all your machines/users.
This is just an outline of how it possibly could be done.
Further reading (describe exactly asking about with use of Orchestrator Runbook Automation and ability to opt out from assigned uninstall for user):
1) Software Metering Deep Dive and Automation Part 1: Use It Or Lose It - The Basics
2) Software Metering Deep Dive and Automation Part 2: Use It Or Lose It - The Collections
3) Software Metering Deep Dive and Automation Part 3: Use It Or Lose It - The Orchestrator Runbook Automation
By the way there is a little pitfall here: software metering just track runs of app & probably time it has been running for, but this in not always equals to real application usage (it may be simple configured to autostart but ignored by user)

Simulating computer cluster on simple desktop to test parallel algorithms

I want to try and learn MPI as well as parallel programming.
Can a sandbox be created on my desktop PC?
How can this be done?
Linux and windows solutions are welcome.
If you want to learn MPI, you can definitely do it on a single PC (Most modern MPIs have shared memory based communication for local communication so you don't need additional configuration). So install a popular MPI (MPICH / OpenMPI) on a linux box and get going! If your programs are going to be CPU bound, I'd suggest only running job sizes that equal the number of processor cores on your machine.
Edit: Since you tagged it as a virtualization question, I wanted to add that you could also run MPI on multiple VMs (on VMPlayer or VirtualBox for example) and run your tests. This would need inter-vm networking to be configured (differs based on your virtualization software).
Whatever you choose (single PC vs VMs) it won't change the way you write your MPI programs. Since this is for learning MPI, I'd suggest going with the first approach (run multiple MPI programs on a single PC).
You don't need to have VMs running to launch multiple copies of your application that communicate using MPI .
MPI can help you a virtual cluster on a given single node by launching multiple copies of your applications.
One benifit though, of having it run in a VM is that (as you already mentioned) it provides sand boxing .Thus any issues if your application creates will remain limited to that VM which is running the app copy.

(yet another) problem with mapped drive via the command line

I know, I know. There are a million threads everywhere talking about problems with mapped drives. I've ready many of them but I still can's seem to wrap my head around this problem or come to a solution.
I have a build server/continuous integration server (Win 2003 running CruiseControl.NET) that listens to our source control server. When a change is detected, the build server gets the new code, compiles it, tests it and if successful, copies the files to one of our web servers. There are 6 web servers - 3 Windows 2003 boxes, 3 LAMP boxes. Each OS has a separate development, staging and production box. All 6 web servers are mapped to a different drive on the build server. I have a Windows start-up script that calls a few "NET USE" commands that set the stage for the deployments.
CCNET is the service that listens to SVN. However, CCNET calls NAnt to perform all of the actual processing and tasks (compilation, testing, copying).
When I map the drives manually and run the NAnt scripts manually, everything works beautifully. When the startup script maps the drives and CCNET triggers the NAnt, the drives are nowhere to be found. I think the problem has something to do with user accounts. CCNET runs under the LOCAL SYSTEM account. I don't know what account the startup script runs under. Obviously manual execution runs under my account.
The weirdest part is that at certain points in the past, everything was working great. I am not sure what changed. How can I get the mapped drives to be visible to all users and services? (Also, any other critique of any part of this setup/process is welcome)
The problem definitely was with user accounts. The drives were mapped under different accounts than the account CCNET was running on. Once I finally straightened everything out and got it running on the LOCAL SYSTEM account everything worked fine.