«

»

Jul 28 2014

Print this Post

Sequencing Adobe PhotoShop CS6

image_pdfimage_print

Adobe PhotoShop CS6 is not that difficult to sequence, there are a lot of steps needed to create that package.
In this article I will give a detailed explanation of all the steps.

The approach:

  1. Create an installation package with the Adobe Application Manager Enterprise Edition 3.1.
  2. Create an Adobe PhotoShop CS6 license file.
  3. Create a sequence from the created installation package.
  4. Implement the Adobe PhotoShop CS6 license file in the package.

Download and install Adobe Application Manager Enterprise Edition 3.1

  1. Go to Creative Suite Enterprise Deployment webpage and download Adobe Application Manager, Enterprise Edition 3.1 (Windows).
  2. Install the application.

Create the installation package with the Adobe Application Manager Enterprise Edition 3.1

Use the AAME to create the installation package. This package will be used during the sequencing process.

Start setup of Adobe Application Manager Enterprise Edition 3.1

Start setup of Adobe Application Manager Enterprise Edition 3.1

Just wait.

Just wait.

Select 'Trial package'

Select ‘Trial package’

Click 'Next'

Click ‘Next’

 Sign in with Adobe ID.

Sign in with Adobe ID.

Click ' Sign in'.

Click ‘ Sign in’.

Click 'Next'.

Click ‘Next’.

Scroll down to to bottom.

Scroll down to to bottom.

Specify installation directory.

Specify installation directory.

AMEE Checks for updates.

AMEE Checks for updates.

Click 'Build' to build the package.

Click ‘Build’ to build the package.

Just wait.

Just wait.

Just wait.

Just wait.

Click 'Close'.

Click ‘Close’.

Create the serialization file with the Adobe Application Manager Enterprise Edition 3.1

This serialization file will be used to serialize the package on each start up.

Start AMEE via Start Menu.

Start AMEE via Start Menu.

Select 'Serialization File' to create a serialization file.

Select ‘Serialization File’ to create a serialization file.

Specify directories and click 'Next'.

Specify directories and click ‘Next’.

Enter serial number and click 'Next'.

Enter serial number and click ‘Next’.

Click 'Sign In'.

Click ‘Sign In’.

Click 'close'.

Click ‘close’.

Sequence Adobe PhotoShop CS6 with the App-V 5.0 SP2 with Hotfix 4 sequencer

It is mandatory that at least this sequencer is used. The main reason is that special access permissions are required. And with the App-V 5.0 SP2 with HF4 sequencer, you can easily achieve this.

File -> Load template. This template contains settings about excluded files and registry settings.

File -> Load template. This template contains settings about excluded files and registry settings. You can find the one I use in this post.

Select the template.

Select the template.

Click 'Ok' to apply the template settings.

Click ‘Ok’ to apply the template settings.

Create new virtualization package.

Create new virtualization package.

Click 'Next'.

Click ‘Next’.

Click 'Next'.

Click ‘Next’.

Select 'Standard application' and click 'Next'.

Select ‘Standard application’ and click ‘Next’.

Select 'Perform a custom installation' and click 'Next'.

Select ‘Perform a custom installation’ and click ‘Next’.

Specify name and directory. The directory is the same as specified while creating the installation package.

Specify name and directory. The directory is the same as specified while creating the installation package.

Use msiexec to install the application

Use msiexec to install the application.

Just wait.

Just wait.

Enter exit to exit this DOS screen.

Enter exit to exit this DOS screen.

Click 'Next'.

Click ‘Next’.

Just wait.

Just wait.

Click 'Next' without starting any application.

Click ‘Next’ without starting any application.

 Just wait.

Just wait.

Click on the item.

Click on the item.

See the warning and click 'Close'.

See the warning and click ‘Close’.

Information about services. Click 'Close'.

Information about services. Click ‘Close’.

Click on the item.

Click on the item.

Click 'Close'.

Click ‘Close’.

Click 'Next'.

Click ‘Next’.

Select 'Customize' and click 'Next'.

Select ‘Customize’ and click ‘Next’.

 Just wait.

Just wait.

Start Adobe PhotoShop.

Start Adobe PhotoShop.

It is a trial package and close this screen.

It is a trial package and close this screen.

Click 'Close'.

Click ‘Close’.

Click 'Next'.

Click ‘Next’.

Allow any OS and click 'Next'.

Allow any OS and click ‘Next’.

Select 'Continue without saving' and click 'Next'.

Select ‘Continue without saving’ and click ‘Next’.

Click 'Close'.

Click ‘Close’.

Save this raw version before clean up.

Save this raw version before clean up.

Specify directory and click 'Save'.

Specify directory and click ‘Save’.

 Just wait.

Just wait.

Adding files to the script folder and cleanup of the package.

You will find 2 files in the folder ‘PhotoShopCS6ENG_Serialization’:

  1. AdobeSerialization.exe
  2. prov.xml

These files are created with the serialization tool.
I created two vbs-scripts that are used to serialize and unserialize PhotoShop CS6. However, admin rights are needed to unserialize PhotoShop CS6. When running these scripts, logfiles are created in %TEMP%\AdobeCS6Activation.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
' ================================================================================================
' Activates Adobe products
' Created by Willem-Jan Vroom
' Version history:
'
' 0.0.1
'    Initial version
'
' ================================================================================================
 
' ------------------------------------------------------------------------------------------------
' Declare the most variables. 
' ------------------------------------------------------------------------------------------------
 
  Option Explicit
 
  Dim objShell                          : set objShell                      = WScript.CreateObject("WScript.Shell")
  Dim objLogFileFSO                     : Set objLogFileFSO                 = CreateObject("Scripting.FileSystemObject")
  Dim objFSO                            : Set objFSO                        = CreateObject("Scripting.FileSystemObject")
 
  Dim CurrentDir                        : CurrentDir                        = Left(Wscript.ScriptFullname, InstrRev(Wscript.ScriptFullname, "\"))
  Dim strLogLocation                    : strLogLocation                    = objShell.ExpandEnvironmentStrings("%TEMP%") & "\AdobeCS6Activation"
  Dim strCommand                        : strCommand                        = ""
  Dim valResult                         : valResult                         = ""
  Dim strOutputFile                     : strOutputFile                     = strLogLocation & "\Activate_Adobe_CS6_" & Replace(FormatDateTime(Now(), 2),"/","-") & ".log"
  Dim objLogFile
 
  Const ForAppending         = 8
 
' ------------------------------------------------------------------------------------------------
' Create the log location (if not exists)
' Open the logfile.  
' ------------------------------------------------------------------------------------------------
 
  CreateFolderStructure(strLogLocation)
  OpenLogFile()
  WriteToLog "- ACTION: script started."
  WriteToLog " "
 
' ------------------------------------------------------------------------------------------------
' Create the activation stringte execute
' ------------------------------------------------------------------------------------------------
 
  strCommand = chr(34) & CurrentDir & "AdobeSerialization.exe" & chr(34)
  strCommand = strCommand & " --tool=VolumeSerialize --provfile="
  strCommand = strCommand & chr(34) & CurrentDir & "prov.xml" & chr(34)
 
  WriteToLog("Runnig command: " & strCommand)
  valResult = objShell.Run(strCommand,6,True)
  WriteToLog("Result: " & valResult)
 
' ------------------------------------------------------------------------------------------------
' Close the log file
' ------------------------------------------------------------------------------------------------
 
  CloseLogFile()  
 
Sub CreateFolderStructure(strFolderNameToBeCreated)
 
' ------------------------------------------------------------------------------------------------
' Subroutine: CreateFolderStructure(strFolderNameToBeCreated)
' Creates the map as mentioned in strFolderNameToBeCreated.
' ------------------------------------------------------------------------------------------------
 
  Dim arrFoldersTMP : arrFoldersTMP = split (strFolderNameToBeCreated,"\")
  Dim strFolder  : strFolder  = ""
  Dim objFolderTMP
 
  For Each objFolderTMP in arrFoldersTMP
      strFolder = strFolder & objFolderTMP
      If NOT objFSO.FolderExists(strFolder) Then
             objFSO.CreateFolder(strFolder)
      end If
      strFolder = strFolder & "\"
  Next
 
End Sub
 
Sub OpenLogFile() 
 
' ------------------------------------------------------------------------------------------------
' Subroutine: OpenLogFile() 
' The name of the logfile is mentinoed in the variabele strOutputFile.
' ------------------------------------------------------------------------------------------------
 
  If objLogFileFSO.FileExists(strOutputFile) Then
     Set objLogFile = objLogFileFSO.OpenTextFile(strOutputFile, ForAppending)
         Else
     Set objLogFile = objLogFileFSO.CreateTextFile(strOutputFile)
  End If
 
End Sub
 
Function WriteToLog(sLogMessage)
 
' ------------------------------------------------------------------------------------------------
' Function: WriteToLog(sLogMessage)
' Writes an entry 'sLogMessage' in the logfile.
' ------------------------------------------------------------------------------------------------
 
  if instr(sLogMessage, "- ACTION: ") = 0 then sLogMessage = "          " & sLogMessage
  objLogFile.WriteLine("Time: " & now & "  " & sLogMessage)
 
End Function
 
Sub CloseLogFile()
 
' ------------------------------------------------------------------------------------------------
' Subroutine: CloseLogFile()
' Close the log file.
' ------------------------------------------------------------------------------------------------
 
  WriteToLog "- ACTION: script ended."
  objLogFile.Close
  Set objLogfileFSO = Nothing
 
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
' ================================================================================================
' De-activates Adobe products
' Created by Willem-Jan Vroom
' Version history:
'
' 0.0.1
'    Initial version
'
' ================================================================================================
 
' ------------------------------------------------------------------------------------------------
' Declare the most variables. 
' ------------------------------------------------------------------------------------------------
 
  Option Explicit
 
  Dim objShell                          : set objShell                      = WScript.CreateObject("WScript.Shell")
  Dim objLogFileFSO                     : Set objLogFileFSO                 = CreateObject("Scripting.FileSystemObject")
  Dim objFSO                            : Set objFSO                        = CreateObject("Scripting.FileSystemObject")
 
  Dim CurrentDir                        : CurrentDir                        = Left(Wscript.ScriptFullname, InstrRev(Wscript.ScriptFullname, "\"))
  Dim strLogLocation                    : strLogLocation                    = objShell.ExpandEnvironmentStrings("%TEMP%") & "\AdobeCS6Activation"
  Dim strCommand                        : strCommand                        = ""
  Dim valResult                         : valResult                         = ""
  Dim strOutputFile                     : strOutputFile                     = strLogLocation & "\De-Activate_Adobe_CS6_" & Replace(FormatDateTime(Now(), 2),"/","-") & ".log"
  Dim objLogFile
 
  Const ForAppending         = 8
 
' ------------------------------------------------------------------------------------------------
' Create the log location (if not exists)
' Open the logfile.  
' ------------------------------------------------------------------------------------------------
 
  CreateFolderStructure(strLogLocation)
  OpenLogFile()
  WriteToLog "- ACTION: script started."
 
' ------------------------------------------------------------------------------------------------
' Create the activation stringte execute
' ------------------------------------------------------------------------------------------------
 
  strCommand = chr(34) & CurrentDir & "AdobeSerialization.exe" & chr(34)
  strCommand = strCommand & " --tool=UnSerialize --leid=Photoshop-CS6-Win-GM --deactivate --removeSWTag"
 
  WriteToLog("Runnig command: " & strCommand)
  valResult = objShell.Run(strCommand,6,True)
  WriteToLog("Result: " & valResult)
 
' ------------------------------------------------------------------------------------------------
' Close the log file
' ------------------------------------------------------------------------------------------------
 
  CloseLogFile()  
 
Sub CreateFolderStructure(strFolderNameToBeCreated)
 
' ------------------------------------------------------------------------------------------------
' Subroutine: CreateFolderStructure(strFolderNameToBeCreated)
' Creates the map as mentioned in strFolderNameToBeCreated.
' ------------------------------------------------------------------------------------------------
 
  Dim arrFoldersTMP : arrFoldersTMP = split (strFolderNameToBeCreated,"\")
  Dim strFolder  : strFolder  = ""
  Dim objFolderTMP
 
  For Each objFolderTMP in arrFoldersTMP
      strFolder = strFolder & objFolderTMP
      If NOT objFSO.FolderExists(strFolder) Then
             objFSO.CreateFolder(strFolder)
      end If
      strFolder = strFolder & "\"
  Next
 
End Sub
 
Sub OpenLogFile() 
 
' ------------------------------------------------------------------------------------------------
' Subroutine: OpenLogFile() 
' The name of the logfile is mentinoed in the variabele strOutputFile.
' ------------------------------------------------------------------------------------------------
 
  If objLogFileFSO.FileExists(strOutputFile) Then
     Set objLogFile = objLogFileFSO.OpenTextFile(strOutputFile, ForAppending)
         Else
     Set objLogFile = objLogFileFSO.CreateTextFile(strOutputFile)
  End If
 
End Sub
 
Function WriteToLog(sLogMessage)
 
' ------------------------------------------------------------------------------------------------
' Function: WriteToLog(sLogMessage)
' Writes an entry 'sLogMessage' in the logfile.
' ------------------------------------------------------------------------------------------------
 
  if instr(sLogMessage, "- ACTION: ") = 0 then sLogMessage = "          " & sLogMessage
  objLogFile.WriteLine("Time: " & now & "  " & sLogMessage)
 
End Function
 
Sub CloseLogFile()
 
' ------------------------------------------------------------------------------------------------
' Subroutine: CloseLogFile()
' Close the log file.
' ------------------------------------------------------------------------------------------------
 
  WriteToLog "- ACTION: script ended."
  objLogFile.Close
  Set objLogfileFSO = Nothing
 
End Sub
The files created by the Adobe Serialization Tool.

The files created by the Adobe Serialization Tool.

Select the files to be added in the Scripts folder.

Select the files to be added in the Scripts folder.

Click 'Browse'.

Click ‘Browse’.

Select the file to be added.

Select the file to be added.

Click 'Ok'.

Click ‘Ok’.

The final result.

The final result.

One virtual service.

One virtual service.

Select 'Allow virtual application full write permissions to the virtual file system'

Select ‘Allow virtual application full write permissions to the virtual file system’

Shortcuts and FTA Updated.

Shortcuts and FTA Updated.

If needed update the location in the Start Menu.

If needed update the location in the Start Menu.

Go to 'Tools' -> 'Options'.

Go to ‘Tools’ -> ‘Options’.

Unselect 'Append Package Version to Filename'.

Unselect ‘Append Package Version to Filename’.

Click 'Ok'.

Click ‘Ok’.

Save the final version.

Save the final version.

Specify directory and save.

Specify directory and save.

Just wait.

Just wait.

Modify the Deployment Config XML file

The Adobe_PhotoShop_CS6_ENG_DeploymentConfig.xml needs to be modified so that serialize.vbs is started when PhotoShop.exe is started and that unserialize.vbs is started when PhotoShop.exe process stops.

Perform the following steps:

  1. Create a copy of ‘Adobe_PhotoShop_CS6_ENG_DeploymentConfig.xml’ and rename that copy to ‘Adobe_PhotoShop_CS6_ENG_DeploymentConfig (Scripts).xml’
  2. In the ‘Adobe_PhotoShop_CS6_ENG_DeploymentConfig (Scripts).xml’ look for:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
        <!-- User Scripts Example - customize and uncomment to use user scripts -->
        <!--
     
        <UserScripts>
          <StartProcess RunInVirtualEnvironment="true">
            <Path>VFS\ProgramFilesX86\App\dosomething.exe</Path>
            <Arguments>-WithArgs</Arguments>
            <Wait RollbackOnError="true"/>
            <ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
          </StartProcess>
          <ExitProcess>
            <Path>VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
            <Arguments>-WithArgs</Arguments>
            <Wait RollbackOnError="false"/>
            <ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
          </ExitProcess>
     
          <StartVirtualEnvironment  RunInVirtualEnvironment="true">
            <Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\DoSomething.exe</Path>
            <Arguments>-WithArgs</Arguments>
            <Wait RollbackOnError="true"/>
          </StartVirtualEnvironment>
     
          <TerminateVirtualEnvironment>
            <Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
            <Arguments>-WithArgs</Arguments>
          <Wait RollbackOnError="false"/>
          </TerminateVirtualEnvironment>
          <PublishPackage>
            <Path>\\server\share\foobar.exe</Path>
            <Arguments>-WithArgs</Arguments>
            <Wait RollbackOnError="true" Timeout="30"/>
          </PublishPackage>
          <UnpublishPackage>
            <Path>\\server\share\barfoo.exe</Path>
            <Arguments>-WithArgs</Arguments>
            <Wait RollbackOnError="false" Timeout="30"/>
          </UnpublishPackage>
        </UserScripts>
     
        -->

    And replace that with:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
        <!-- User Scripts Example - customize and uncomment to use user scripts -->
     
        <UserScripts>
          <StartProcess RunInVirtualEnvironment="true">
            <Path>wscript.exe</Path>
            <Arguments>serialize_v001.vbs</Arguments>
            <Wait RollbackOnError="true"/>
            <ApplicationId>[{AppVPackageRoot}]\Adobe Photoshop CS6\Photoshop.exe</ApplicationId>
          </StartProcess>
          <ExitProcess>
            <Path>wscript.exe</Path>
            <Arguments>unserialize_v001.vbs</Arguments>
            <Wait RollbackOnError="false"/>
            <ApplicationId>[{AppVPackageRoot}]\Adobe Photoshop CS6\Photoshop.exe</ApplicationId>
          </ExitProcess>
     
        </UserScripts>

Deployment on the client

Make sure that EnablePackageScripts has been enabled on the client. Otherwise the application will not run. You can deploy the application with the App-V 5.0 Management Console or with Powershell. In both scenarios apply the new deploymentconfig.xml.

Test on the client

Photoshop is visible in the user interface.

Photoshop is visible in the user interface.

Start PhotoShop via Start Menu.

Start PhotoShop via Start Menu.

If PhotoShop starts, then the serialization worked fine.

If PhotoShop starts, then the serialization worked fine.

Via Help.

Via Help.

You find details about the serialziaton in the TEMP folder.

You find details about the serialziaton in the TEMP folder.

Adobe PhotoShop has been loaded for 100%.

Adobe PhotoShop has been loaded for 100%.

Known issues

0x0DF01625-00000534  Not the correct client is used. Please use App-V 50 SP2 with HF4.

0x0DF01625-00000534
Not the correct client is used. Please use App-V 50 SP2 with HF4.

0x79100710-0000000DMake sure that PackageScripts has been enabled on the client.

0x79100710-0000000D
Make sure that PackageScripts has been enabled on the client.

Permanent link to this article: https://www.vroom.cc/wordpress/sequencing-adobe-photoshop-cs6/

  • Raghu

    Hi Willem,

    I have sequenced Adobe Illustrator CS6 application as per your suggestion in the blog. Below are details.
    App-V Sequencer Version : 5.1.85.0
    App-V Client Version : 5.1.86.0

    On launching the shortcut- Adobe Illustrator CS6, we are facing the issue.
    Error Code: “0x0DF01725-00000534”.
    Can you please help on this to solve the issue.

    Thanks in advance.
    Raghu

    • wjhvroom

      Hello,

      See https://www.vroom.cc/wordpress/error-the-application-failed-to-launch-0x0df01625-00000534/.

      Please make sure that the computer is member of a domain.

      • raghu

        Hi Willem,

        will it work i deploy the sequenced pacakge from SCCM 2012?

        Thanks in advance.
        Raghu

        • wjhvroom

          If the computer is member of the domain and packagescripts are enabled, then it will work. 🙂

          • Raghu

            Hi Willem,

            Thanks for the response.

            I have deployed the application from SCCM 2012 and the application is working fine as expected, but is taking too much time on first launch approx. 20 to 25 mins.

            Can you please help on this to reduce the time on first launch.

            Thanks in advance.
            Raghu

          • wjhvroom

            Hello Raghu,

            That is extremely long… I have no idea why it takes such a long time. Please check the event viewer for details. Check also the sccm logfiles in c:windowsccmlogs.

            Regards…. Willem

  • Robert

    This recipe is well written. I will be sequencing Photoshop soon. You talk of a template but don’t mention what is in the template for exclusions. Could you post that here?