JobOwner in the spool .SHD (StreamServe 4.1.2 SP2 / Exstream 16.6.2)

BrunoPDI
BrunoPDI Member
edited December 5, 2024 in Exstream #1

Hello everyone,

Sorry for my english level.

I would like to get in my spool files .SHD the owner of my document created by Streamserve. But I have the account from the service startup configuration of my Control Center (Système streamservice) wich appears in the file :

When I change the account in the service startup configuration, I have the same in the file...

I found a solution with the SetJobOwner function but it doesn't work (log(0,CurrJobOwner()); is correct, but the ouput connector doesn't use it).

The help says : "You also need to specify the keyword SetJobOwner on the Custom tab for the output connector."

Is it the custom tab in the Runtime Ouput Connector Settings ?

When I write SetJobOwner, the service doesn't start.

Which sentence must I write ?

I tried also to use setJobOwner() and log() in a script before from the Job End, but no log appears.

I have no more idea, and get the same issue in Exstream 16.6.2

Thank you for your lights

Regards

Bruno

Best Answers

  • Vyv
    Vyv Member
    #2 Answer ✓

    Salut Bruno, well this is quite intriguing... I attempted to use the@PJL SET USERNAME command within a PCLXT driver to insert a PJL user name into the spool file. Initially, the username changed to my specified value for about a second, but then it reverted to the service account name. I also experimented with other properties like JOBOWNERID and USERID, but encountered the same issue.

    To troubleshoot, I modified the driver and disabled the local spooler to generate an "undeliverable" file. This allowed me to verify that the correct value was being stored, which it was. However, when I sent the job through the spooler, the correct name appeared briefly before changing back to the service account.

    Additionally, I tried using the set receiver command at runtime and the SetJobOwner() function in various script locations with an actual AD user, but I couldn't get the value to change. It's been a while since I successfully implemented Follow-Me printing using SetJobOwner(), so I might be overlooking something.

    The issue could also be related to how the data is received. For example, directory input with a file will capture the user ID associated with the file or the user linked to a Service connector header property. However, for TCP input (which I assume you're using), there is no user associated with the TCP stream, making it ineffective in that scenario.

    I suspect there might be enhanced security measures at the Windows level that are overriding these values. Unfortunately, I don't have admin access to the system I'm using, nor do I have access to the print servers, so I can't explore more detailed control settings.

    It's understandable that impersonating other users should be restricted in today's security environment, but it would be convenient to continue using the methods we're accustomed to.

    Has anyone else got something for us?

  • stig_2018
    stig_2018 Member
    #3 Answer ✓

    Hi.

    I remember this as an 'old issue'…:

    "If streamserve is installed on 2008 R2 or newer, then the FollowMe printer/queue should be set up locally on streamserve…. Otherwise, ‘jobOwner’ will be overwritten by serviceAccount. All printing that should go via FollowMe, sholud use the 'local queue' on streamserve server…"

    //Stig :-)

Answers

  • Vyv
    Vyv Member

    Hi there,

    Try writing a script on the Before Message script of your message:

    SetJobOwner(“the name you want”);

    or

    SetJobOwner($JobOwner);

    (Just ignore the issue of repeat values if your prints have many documents - it is OK to set it to the same value many times).

    That should do it.

    This is also how you do the "follow-me" printing user ID allocation.

    Please let us know if it works.

  • BrunoPDI
    BrunoPDI Member
    edited January 2 #5

    Hello,

    Thank you for your answer, and happy new year :)

    I have used the sejobowner() method in a Before Mesasge script.

    My owner changed well in the log, but the streamservice login still appears in the file .SHD

    So it appears also here :

    The owner setted in my before message script is not used.

    Do you have an other suggestion to follow ?

    Thanks for your help

    Bruno

  • Vyv
    Vyv Member
    #6 Answer ✓

    Salut Bruno, well this is quite intriguing... I attempted to use the@PJL SET USERNAME command within a PCLXT driver to insert a PJL user name into the spool file. Initially, the username changed to my specified value for about a second, but then it reverted to the service account name. I also experimented with other properties like JOBOWNERID and USERID, but encountered the same issue.

    To troubleshoot, I modified the driver and disabled the local spooler to generate an "undeliverable" file. This allowed me to verify that the correct value was being stored, which it was. However, when I sent the job through the spooler, the correct name appeared briefly before changing back to the service account.

    Additionally, I tried using the set receiver command at runtime and the SetJobOwner() function in various script locations with an actual AD user, but I couldn't get the value to change. It's been a while since I successfully implemented Follow-Me printing using SetJobOwner(), so I might be overlooking something.

    The issue could also be related to how the data is received. For example, directory input with a file will capture the user ID associated with the file or the user linked to a Service connector header property. However, for TCP input (which I assume you're using), there is no user associated with the TCP stream, making it ineffective in that scenario.

    I suspect there might be enhanced security measures at the Windows level that are overriding these values. Unfortunately, I don't have admin access to the system I'm using, nor do I have access to the print servers, so I can't explore more detailed control settings.

    It's understandable that impersonating other users should be restricted in today's security environment, but it would be convenient to continue using the methods we're accustomed to.

    Has anyone else got something for us?

  • BrunoPDI
    BrunoPDI Member
    edited January 3 #7

    Thank you for your feedback, this is exactly what I mean.

    In parallel I have worked on an other solution :

    I send my spool to a logical/ghost printer created on our uniflow printer server.

    From this printer, I have an HMI to read the job name (changed by setDescriptionJob) with regular expression.

    I can change the owner by this way and sent the spool to the uniflow server.

    In theory.

    Work in progress so

    Thanks again Vyv

  • stig_2018
    stig_2018 Member
    #8 Answer ✓

    Hi.

    I remember this as an 'old issue'…:

    "If streamserve is installed on 2008 R2 or newer, then the FollowMe printer/queue should be set up locally on streamserve…. Otherwise, ‘jobOwner’ will be overwritten by serviceAccount. All printing that should go via FollowMe, sholud use the 'local queue' on streamserve server…"

    //Stig :-)

  • Vyv
    Vyv Member

    Thanks Stig (fun meeting you last year in my hoods). This information is golden - high five on that…..

    It means that you need to install all of the printers on your StreamServe server to get it to work.

    Bruno - I would continue to develop your 'user reallocation printing service’ if I were you as the thought of making your server a print server too is just too much to handle.

    For many Exstream / StreamServe users out there, there are many additional services made to handle digital signatures, PDF/UA remediation, PDF merging, clever file handling and things like print shop management - so creating another one for your printing (so that you can print exactly the way you want) is quite natural in my opinion.

  • Thank you Stig for these information.

    Well, it's a 2008 R2, so I'm exactly in taht case.

    I understand your advice Vyv, I will try with only one printer (the logical one I talked before).

    But, what do you mean by FollowMe printer/queue ? Is it in the connector or queue properties :

    Can I configure it in Design Center or in the Control Center ?

    Thanks for your lighting.

  • Vyv
    Vyv Member

    Follow-Me printing is a system outside of StreamServe / Exstream - it allows users to pull stored prints to any printer that they identify themselves at. Used in many different types of industries - often (but not always) where printed material is confidential.

  • Ah ok, we have Uniflow (a Canon solution) which is similar.

    I print from streamserve to the digital uniflow printer, and after that I can print physicaly from any Canon printers with my user code.

    So if I understand, I install my printer in local (not as a share) and I configure streamserve to send directly via the output connector ?

  • Vyv
    Vyv Member

    Correct - but you will have to do it for all printers. How many do you have?

    This in effect is turning your StreamServe Server into a Printer Server. Do you want that administration/taxation?

  • I'll ask to my infra administrator if it possible.

    Thank both of you for your help.

    I'll give you more news soon.

  • Vyv
    Vyv Member

    I would like to see a service/function where we can get this to work. I’ll take a look around and see what comes up.

  • BrunoPDI
    BrunoPDI Member
    edited January 8 #16

    As you told me Vyv, "Bruno - I would continue to develop your 'user reallocation printing service’ if I were you as the thought of making your server a print server too is just too much to handle."

    Finally we have make the choice to use the Job Description to forward the user account.

    My entry printer reads the job name with regular expression and send the spool to the uniflow printer server with the good user account.

    Thanks again for your help Vyv, I appreciated our exchange

    And thanks Stig for remembering this old problem.

    See you