none
virtualized app launches Excel outside of the VE ??? RRS feed

  • Question

  • hello all,

    wondering if someone has seen this...

    the app is teammate 8. it's a document management system that integrates with the office suite i.e., if the user wants to open an excel document from the store, the app will launch excel and show the document. it should be a pretty standard stuff

    the interesting part is that the app manages to launch excel outside of the VE Question

    i'm curious to find out how this is possible, first, and second, if there is anything i can do to prevent that.

    word is launched inside but if i use LOCALINTEGRATIONALLOWED, it too goes outside. (this flag by the way makes no difference on excel)

    the documentation for the app specifically says that all instances of excel should be closed when the app is launched. this tells me that they do some interesting stuff but what ???

    even if i create another OSD that starts excel within the VE, this still doesn't help. a new instance of excel is created outside. if one exists outside, it is ignored too.

    i have started down the path of using the debugging tools to see what i can see but i thought i wouldn't hurt to ask if someone has already had experience with this

    The Office suite is not virtualized.

    Sequencer and client: 4.1.3.15

    thanks much
    martin
    Tuesday, March 10, 2009 1:00 PM

Answers

  • Hello,

    had a similiar case with MS-regarding this and got the following advise (for a 64-bit env);

     It should be a simple enough test: rename the following two keys:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocHandler32
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocServer32

     

    The two above keys are corresponding to the OLE-object that our specific functionality were using. If those two are persistant - excel will be started from DCOM(svchost.exe ) and as you can imagine will then be executed outside of the VE.

    We didn't see the problem in a 32-bit env.

     


    /Znack
    Tuesday, July 5, 2011 1:27 PM

All replies

  • Hello

    Is there anything in Teammate 8 that would call Excel, virtual or locally installed?

    Perhaps in the registry or something that is calling Excel.  The reg entry could belong to Teammate 8.  Please give me a bit more info and I can try to help.

    Thanks
    Dan Bernhardt [MSFT]
    Tuesday, March 10, 2009 7:15 PM
    Answerer

  •  Hello Md8070,

    Is the excell which is being launched is streamed or Installed on the machine?

    You mentioned that Office suite is not streamed. So, I am assuming Excell is installed on Physical machine as well. So, If excell is on Physical machine, I don't think it will launch in VE?

    Please correct me if I am wrong. Is there a way to launch a non virtualized app in VE?

    Thanks,
    Happy learning
    Wednesday, March 11, 2009 10:03 AM
  • Dan, it's the Teammate code that invokes Excel. How, that's the million dollar question. There is nothing in the registry that can be attributed to this function/functionality.

    While troubleshooting this, I tried the following two pieces of code from within the VE (these a VB scripts executed from a command prompt)

    Code1:
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Workbooks.Add
    objExcel.Cells(1,1).Value = "Test value"
    objExcel.Visible = True
    objExcel.UserControl = True
    WScript.Sleep 3000

    Code2:
    Set WshShell = CreateObject("WScript.Shell")
    Set oExec = WshShell.Exec("c:\program files\microsoft office\office11\excel.exe h:\temp\newusers.xls")
    WScript.Sleep 3000
    WScript.Echo oExec.Status
    set wshshell=nothing

    Both start Excel normally and within the VE (this also answers weblearn's question). I can tell it's within the VE because I can click File->Open and can navigate to Q:\<asset_dir> and open an XLS file from there.

    What doesn't work is the code:
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open("h:\temp\newusers.xls")

    The second line produces the error: Microsoft Excel needs VBS macro language support to complete this action. An error occurred and this feature is no longer functioning properly.

    But if I execute this code from another sequence, it works. This tells me that there is something in this sequence that's messing up with the proper installation of Office.

    But even with all this evidence, I still don't understand how they manage to launch Excel so that it cannot access Q: drive ???



    Thanks guys

    Wednesday, March 11, 2009 3:05 PM
  • Hello,

    During sequencing, have you tried performing the actions?
    Did it generate the same error or did it succedd?

    /Znack
    Wednesday, March 11, 2009 4:25 PM
  • Hello

    I will follow-up with teh Dev team to get more information as to what might be going on.

    Thanks,


    Dan Bernhardt [MSFT]
    Wednesday, March 11, 2009 6:07 PM
    Answerer
  • launching of both Word and Excel was fine during sequencing. Closing Excel, on the other hand, produced an error: "Unable to attach to Teammate". This does not happen at run-time, or with native install.

    I have asked the vendor but they wouldn't give me any specifics. They say that at that point the Teammate plug-in in Excel cannot find Teammate for some reason.
    Thursday, March 12, 2009 1:51 PM
  • md8070 said:

    the documentation for the app specifically says that all instances of excel should be closed when the app is launched. this tells me that they do some interesting stuff but what ???


    You probably have several things going on here.  Let me provide info on the above statement part only.  You did not specify as to if existing office apps were running prior to teammate trying to run one so I don't know if this applies.

    Some applications do "insteresting stuff" when you launch a copy of an application and the user has another copy of the same application already running in their windows session.  Microsoft Office apps do "peculiarly interesting stuff", depending on the app in question.  You can see this behavior by launching two copies of the app in a natively installed environment and watching the task manager and your start bar.  Some examples:

    Word:  Two windows, two start-bar entries, one Winword.exe process
    Excel:   One Window with two spread sheets, two start-bar entries, two processes
    PowerPoint: If existing PPT does not have file open, One window with the new PPT, one start bar entry, one process
                        If existing PPT  has a file open, Two windows, two start bar entries, one process.


    What is happening in this case is that when you launch one of these apps, it does start a new exe (which if you are lucky you might see in the Task Manager - a tool to monitor launched processes is a better way to see this).  The new exe in these cases has special startup code that looks for another copy already running - and then basically passes off the request (including file parameter arguments) to the already running copy, and then shuts down the new process.  Microsoft developers chose to implement this in some office apps but not others, and then chose different behaviors when implemented depending on the nature of the app.

    By the way, the behavior differences get even wierder when you have a document open in one of these apps and do a file open to another document. 

    Not many apps have this behavior, but it can have effects on this kind of integrations.
    • Proposed as answer by Dan BernhardtEditor Monday, March 16, 2009 2:17 PM
    • Unproposed as answer by md8070 Monday, March 16, 2009 7:32 PM
    Sunday, March 15, 2009 4:54 PM
    Moderator
  • Tim Mangan said:
    You did not specify as to if existing office apps were running prior to teammate trying to run one so I don't know if this applies.

    This was specified in my first post. I have tried with both Excel running inside or outside of the VE, doesn't matter, Teammate still creates a new process.

    As to the rest of your post, here is a bit additional info if anyone is interested. Word and Excel create a new process when the respective application is started from the Start menu or from the Run command. If the "New..." button is selected on the toolbar, a new process is not created but rather a new child window is created. PowerPoint is a bit different, in that it doesn't create a new process with either method.

    For all three applications, there is an option in Options on the Tools menu called "Windows in Taskbar". If it is selected, the child windows from the same process are shown as separate tasks on the Taskbar. If it is not, there is only one task on the Taskbar and the child windows can be selected from the menu Window

    But all this still doesn't explain the behaviour I am seeing. When a third party software wants to open Excel, for example, its developers will use Object Linking and Embedding (OLE) or some other technology to create a process, the same way I am doing it with the code above. When doing that, the code can specify whether a new process should be created unconditionally, or a process should be re-used if it's already running.

    In all the years I have been working with SoftGrid, I haven't had a case where I would start an app from within the VE, and it will start outside. Now I see it's possible, just that I want to figure out how and prevent it if possible.

    Thanks



    Monday, March 16, 2009 8:00 PM
  • Have you looked at your Teammate sequence, that it doesn't contain some registry keys to be fully virtualized and/or VFS entries fully virtualized which collide with ones used by the Office?

    btw, you could try to run apimon.exe, which at least was part of the Windows resource kits (http://download.microsoft.com/download/win2000platform/apimon/1.0/nt5/en-us/apimon.exe). That way you might be able to see what calls Teammate does when it invokes those Office programs?

    br,
    Kalle

    Thursday, March 19, 2009 10:05 AM
    Moderator
  • Hello,

    I actually hit a very similiar issue.
    We are running a citrix environment with only published applications (no desktops or such).
    SAP BEX 7.1 is packaged along with a toolbar ( to maintain all opened applications in one session and executed within the same virtual environment).
    One of the applications is the Web Application Designer, which I think generates web-pages?
    Now, along with all this is Excel 2007 (no other office applications) packaged.

    So, the user states that when he opens up a "web template" and press execute which then generates a internet explorer window opening, and accessing a web-page.
    On this webpage loads of things are generated and as far as I can see, its a preview page.
    This preview page contains links to some documents, .xls, .doc etc etc. Now, Word isn't available as it isn't packaged. However Excel is. And the user states that he can not open any of the documents.
    I verified this behaviour and realised that this was the first time I had an IE window not opening "within" the virtual environment.

    As we love the toolbars I had a similiar issue where a Adobe Acrobat 9 (this program ended up not beeing virtualized) didn't start, even thought perfectly fine sequenced and tested while sequencing  - it didn't work as soon as I opened it via the published toolbar. (toolbar basically executing %PROGRAMFILES%\adobe\acrobat\acro.exe)

    How did I resolve both the issues?
    Both Acrobat 9 and IE (ie not by choice, but still) was installed in %PROGRAMFILES% - so I came to the conclusion that both of these where essentially the same error.
    Since it worked during sequencing, I thought that it must be something set by the OSD-file.
    So, by hard-coding the WORKINGDIR-tag to C:\Program files, I essentially got both of these working.
    Before it was either blank, or set to some-place within the Q: environment (as thats where the toolbar is placed, and all the office-applications etc etc - its a pretty big suite and I am longing for the 4.5 implementation at this company).

    Hope this helps you....

    /Znack
    Tuesday, March 24, 2009 9:15 AM
  • I am sequencing Teammate version 8.x since 2 years and have much experience with this application. It is a difficult application to sequence.  

    We do not have MS Office physically installed so we need to sequence MS Word, Excel and PowerPoint in the Teammate sequence to get it too work.  The application integrates Office with Teammate. It uses encryption to encrypt document in the Teammate datastore and it uses it's own dot files to integrate word documents when you launch a document from teammate. There are two programs in the Teammate BIN directory that you need to run too make sure all Office dll's are registered within the Teammate program. TMsys and tmreg. Make also sure you MS word macro security is set too low it will speed up the startup of the first Word document inmensly! If you need a recipe don't hesitate to contact me. I am also now trying too solve one issue with Teammate 8.2.1 in which the client tries to select the button Options in the spelling tab and program gets a dr watson. But we have made a call with CCH hope they have something usefull

    cheers,

    Erik
    Tuesday, March 31, 2009 1:45 PM
  • Hello,

    Perhaps this is your problem;
    http://blog.stealthpuppy.com/virtualisation/softgrid-presentation-server-internet-explorer-as-a-help-system

    It could be that you have to code an over-ride for the FTA used?

    /Znack
    Wednesday, April 1, 2009 11:54 AM
  • Hello,

    Did you get fruther with this?

    /Znack
    Thursday, August 20, 2009 8:48 PM
  • A case has been opened at Microsoft they are having the issue under investigation. No progress so far
    Friday, August 21, 2009 5:50 AM
  • Hello,

    Any follow-up on this?

    /Znack
    Monday, October 19, 2009 8:48 PM
  • Hi there,

    I would LOVE to get a hold of the/a recipe for this sequence. We are trying to sequence v8.2.x for Citrix desktop publication. MS Office 2007 is installed local on the Windows 2008 R2 Server.  I know this is an old post, but trying to find some info.

    To-date, I sequenced it, but TeamRisk and Schedule crash at start-up.  Any help would be GREATLY appreciated.

    ~Lane

     

    • Edited by WorkFaster Tuesday, January 11, 2011 11:02 PM Spelling
    Tuesday, January 11, 2011 11:00 PM
  • I am sequencing Teammate version 8.x since 2 years and have much experience with this application. It is a difficult application to sequence.  

    We do not have MS Office physically installed so we need to sequence MS Word, Excel and PowerPoint in the Teammate sequence to get it too work.  The application integrates Office with Teammate. It uses encryption to encrypt document in the Teammate datastore and it uses it's own dot files to integrate word documents when you launch a document from teammate. There are two programs in the Teammate BIN directory that you need to run too make sure all Office dll's are registered within the Teammate program. TMsys and tmreg. Make also sure you MS word macro security is set too low it will speed up the startup of the first Word document inmensly! If you need a recipe don't hesitate to contact me. I am also now trying too solve one issue with Teammate 8.2.1 in which the client tries to select the button Options in the spelling tab and program gets a dr watson. But we have made a call with CCH hope they have something usefull

    cheers,

    Erik

     

    Yes, I need a recipe please :)

     

    Wednesday, January 12, 2011 5:51 PM
  • Hello,

    had a similiar case with MS-regarding this and got the following advise (for a 64-bit env);

     It should be a simple enough test: rename the following two keys:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocHandler32
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocServer32

     

    The two above keys are corresponding to the OLE-object that our specific functionality were using. If those two are persistant - excel will be started from DCOM(svchost.exe ) and as you can imagine will then be executed outside of the VE.

    We didn't see the problem in a 32-bit env.

     


    /Znack
    Tuesday, July 5, 2011 1:27 PM
  • Hello, 

    I also have issues with TeamMate, version 12.  You can launch Word files from their "Browser" window by double-clicking on the documents, this spawns a Word process as a child of the TeamMate.exe process, and it works fine (it loads Word with the add-in I sequenced)!

    Then, from the "Review" tab in TeamMate, there's a function to generate reports. This also spawns a Word process but this time NOT as a child of the TeamMate.exe process!  So it hasn't got the sequenced add-in and it fails.

    We use App-v 5.1 on Windows 7 x64 machines with Office 2013 installed locally (not sequenced).  Any ideas?

    In the screenshots you can see the difference:

    OK 

    NOT OK

    Monday, October 9, 2017 9:49 AM
  • Hello,

    had a similiar case with MS-regarding this and got the following advise (for a 64-bit env);

     It should be a simple enough test: rename the following two keys:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocHandler32
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{00020820-0000-0000-C000-000000000046}\InprocServer32

     

    The two above keys are corresponding to the OLE-object that our specific functionality were using. If those two are persistant - excel will be started from DCOM(svchost.exe ) and as you can imagine will then be executed outside of the VE.

    We didn't see the problem in a 32-bit env.

     


    /Znack

    This post by Znack has the answer... basically the way Word is being opened will spawn it as a child process of svchost just like what you saw.  That is 'to be expected behavior', that outside of App-V doesn't cause a problem.  But since svchost.exe is already running it can't be spawned inside the VE.

    One thing you can try which did work for me was to change the COM options in your deployment.xml:

          <COM Mode="Isolated">
            <IntegratedCOMAttributes InProcessEnabled="false" OutOfProcessEnabled="false" />
          </COM>
    

    Monday, October 9, 2017 1:23 PM
  • Hello, 

    Thanks for the feedback! I already played with the different COM Mode combinations.  I never get both "Word functions" to work.  It's either one of them or none :-(

    Tuesday, October 10, 2017 12:26 PM
  • If you leave COM Mode =Isolated, does the review tab part work but not the browser piece?  If you don't want to/can't change the InprocHandler32 / InprocServer32 keys...its possible you can get around this.

    Tuesday, October 10, 2017 7:06 PM