Monday, July 11, 2016

FactoryTalk by Rockwell Automation

FactoryTalk is a suite of software for machine process monitoring and control.  It can be configured to provide customised solutions via its client/server/database software architecture.

Client side items for installation can be numerous and be of significant size.  For a suite of software the installation seems fragmented and poorly planned apparently without a silent install options (the patches did).  It is a mixture of MSIs, GUI driven setup shell executable programs (which call extracted MSIs), configuration tools, runtimes, redistributables, and batch file driven patches.

Sequencing with App-V 5.1 did not produce a working package, possibly due to "DCOM Subsystems detected" A launch error appeared when a launch was attempted
FactoryTalk View SE Client
"The software requires personalized information that cannot be read. Please contact Rockwell Technical Support."

One possible approach to packaging is to turn on MSI logging in the registry and then run an interactive installation.  By checking the logs and the MSIInstaller event sources in the Application Event logs, it is possible to create a list of the MSIs which have been called.  Some of the MSIs are harder to obtain because they are not in the source but extracted temporarily into the temp folder at install time.  This requires that an interactive installation is activated and the temp MSI folders are copied.  The next stage is to collect the MSIs together and create master cmd script to call them in the required order with any patches.

Directory Server and Activation server are configured in the registry at respectively
HKLM\SOFTWARE\Rockwell Software\RNA\Directory
HKLM\SOFTWARE\Rockwell Software\FactoryTalk Activation\ClientSearchPath

This is a clip from the master cmd installer.  This shows how the %~dp0 is used with call commands to activate the batch file driven patching before continuing with other MSI commands.

msiexec /i "%~dp0\3. FTView\FTAE\FTAE.msi" TRANSFORMS="%~dp0\3. FTView\FTAE\FactoryTalkCCCS_70000_s1.mst" TFLCTPSERVER=PDC2CTP001 /qn /l*v c:\Source\Installlogs\FactoryTalk_CCCS_70000_s1_I_SFTAE.log /norestart

::Stage five
cd "%~dp0"
cd "5. FTView-Patches-Jul.01.2013"
call InstallAllPatches.bat /S
cd..


Check the InstallAllPatches.bat file for location that you want to modify such as the log file output location.

An uninstall master cmd file can be roughly the reverse of the install.  Some of the uninstalls may not be required because the install routine may have MSIs upgrading previous ones.  Also you may wish to leave isntalled the MSIs with common or runtime components.

Thursday, June 30, 2016

George and Zippy


Zippy: Oh Geoffrey! How can I get a silently self extracting exe file ?

Geoffrey: Well Zippy, you could use 7zip which is a free download from http://www.7-zip.org/.

7Zip has an option to create a self extracting exe file.  With the -y command parameter it will silently extract in its current folder location.  It also has great compression !

Zippy: Oh Thank You Geoffrey.

Bungle: But I already have a licensed copy of WinZip installed.  How can I do that with WinZip Geoffrey?

Geoffrey: Well Bungle, with a WinZip self extracting exe file you need to use the command parameters /auto <folder>.  If you use .\ for the folder it will extract in to the current location.

Bungle: Oh Thank You  Geoffrey.

George:  Is there a way to silently unzip a zip file Geoffrey ?

Geoffrey: Well George, there is.  You can use a vbscript to do that, but be careful; if your zip file is large it will take a very long time.

George: Oh Dear.

Geoffrey: If you did want to do it though it would look something like this:

Dim WshShell, strCurDir, cmdint
 

Set WshShell = CreateObject("WScript.Shell")

strCurDir    = WshShell.CurrentDirectory

'The location of the zip file.
ZipFile=strCurDir & "\battest.Zip"

'The folder the contents should be extracted to.
ExtractTo = strCurDir

'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)

Set fso = Nothing
Set objShell = Nothing


Zippy: Well I'm much cleverer than all of you because I know how to use powershell, so there.

Zippy: (Quietly to Geoffrey) Geoffrey, can powershell create and extract zip files?

Geoffrey: Yes it can Zippy.  Powershell v5 has cmdlets to do it.  Here are the cmdlets and parameters

# Create a zip file with the contents of C:\Stuff\
Compress-Archive -Path C:\Stuff -DestinationPath archive.zip

# Add more files to the zip file
# (Existing files in the zip file with the same name are replaced)
Compress-Archive -Path C:\OtherStuff\*.txt -Update -DestinationPath archive.zip

# Extract the zip file to C:\Destination\
Expand-Archive -Path archive.zip -DestinationPath C:\Destination

Bungle: Geoffrey, Geoffrey, someone's sent me a zip file but my normal zip tool won't open it.  7-zip tells me the compression method is "pkAES-256-Cert Deflate".

Geoffrey: Oh dear, Bungle.  I'm afraid you'll have to probably have find an unzip tool that supports that compression method.  That looks like they might have used PKWare SecureZip to create that file.  You'll need to install that software before you can unzip it.

and in case you don't know who Geoffrey, George, Zippy and Bungle are......
https://www.youtube.com/watch?v=wqZ2RFgkuoA

Monday, June 27, 2016

ClickOnce

Some products may use a downloadable eXtensible Application Markup Language (XAML) Browser Application (XBAP) also known as ClickOnce. This uses the C:\Windows\syswow64 or System32\PresentationHost.exe, which is part of the .NET, to provide the runtime environment. The file resources for the application are automatically downloaded to %LOCALAPPDATA%\APPS\2.0

Security certificates are used to assess security and if the requirements are not met the user is prompted to confirm running the application.













When a ClickOnce application is being launched on a user's desktop the first time, the .NET Framework runtime will first check to ensure that the application manifests have not been tampered with since they were signed with whatever publisher certificate was used for signing. If they pass that check, the runtime will then look into the Trusted Root Certification Authority store and see if the certificate for the issuer of the publisher's certificate is installed in that store. It will then look at who the publisher on the certificate is, and see if their certificate is in the Trusted Publishers store. If those two things are true, then by default the user will not be prompted, and the application will be granted whatever privileges are specified in the application manifest file.  from - https://msdn.microsoft.com/en-us/library/ms996418.aspx

More information
https://msdn.microsoft.com/en-us/library/z17ceyya%28v=vs.80%29.aspx 

https://msdn.microsoft.com/en-us/library/t71a733d(VS.100).aspx 

https://leastprivilege.com/2006/02/18/beware-be-aware-of-clickonce-default-settings/ 

https://robindotnet.wordpress.com/2013/02/24/windows-8-and-clickonce-the-definitive-answer-2/

 http://www.informit.com/articles/article.aspx?p=691085&seqNum=2

click once

Friday, May 27, 2016

IE launching outside the bubble on Citrix


https://trentent.blogspot.co.uk/2013/01/internet-explorer-popping-up-outside.html

This post revealed the cause of a scenario where an application was attempting to launch a html file in Internet Explorer (IE) but failing.  IE launched its normal home page instead.  On Windows 7 IE launched inside the bubble with the html file correctly displayed.

We determined that on citrix the browser was indeed launching outside the bubble and therefore unable to see the required html file.

Changing the user classes registry key in the bubble did not work.  Setting the user classes registry key for that users session did work though.  This avoids changing the key for the entire machine which may impact the way the citrix server is designed to work.

Use caution. This change impacts the way that citrix is designed to launch IE, it could have wider unforeseen consequences.




Tuesday, May 17, 2016

Outlook Navigation View - Folders Contacts


In the navigation bar on the left hand side of outlook, there are buttons at the bottom, Mail Calendar etc

If you have psts open which contain folders, the folder are only visible to browse from the Folders List view.

If the user click the mail view, mail looks pretty much the same but the psts look empty !  This can cause mild panic.

Do not panic, simply switch back to folder view mode, a lower down option on the Navigation Bar.


keywords
contacts folders missing pst new folder

Tuesday, April 26, 2016

Windows8 Hyper-V and VMWare Workstation Player 12.0


Although VMWare Workstation Player 12 will install on a Windows 8 PC with the Hyper-V feature enabled, it will not launch a virtual machine (VM) that is created until the Hyper-V Platform subfeature is unchecked and the PC rebooted several times.

Thursday, April 21, 2016

Manual Connection Group Configuration


Use the following XML to generate the Connection Group definition XML file

<?xml version="1.0" encoding="UTF-8"?>
<AppConnectionGroup AppConnectionGroupId="06DACB3C-10E8-444F-A3FB-646F695BD21D" VersionId="5E9249E4-0D2C-4F8C-8BB2-708288294FD4" Priority="0" DisplayName="<NAME>" xmlns="http://schemas.microsoft.com/appv/2010/virtualapplicationconnectiongroup">
<Packages>
<Package PackageId="a3020438-47ff-4041-9c03-b78255c82c10" VersionId="5b2ba854-92d9-4c4b-b855-837748349f29">
</Package>
<Package PackageId="aaea7d7c-79e0-43f8-88eb-4ae8f6d0692e" VersionId="e3b074a5-51ff-4d4c-8dc0-6a15ad6a37e6">
</Package>
</Packages>
</AppConnectionGroup>


Add-AppvClientConnectionGroup -path <path to xml file>

Once the packages in the connection group are published, then the connection group can be enabled

Enable-AppvClientConnectionGroup <NAME> 


The following message can appear when a connection group in enabled
 
The application failed to launch.
This may be due to a network failure
 


This can be caused by the Advanced settings inside the packages not being the exactly the same. 

Connection Group Reference

See this article for the "Laws of Connection Groups"
http://virtualvibes.co.uk/advanced-connection-groups-the-sanity-check/ 

http://virtualvibes.co.uk/app-v-management-server-or-configuration-manager-2012-a-feature-comparison/


Config XML details
https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/appv-v5/about-the-connection-group-file