<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adam I meant not Andrew<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> wpkg-users-bounces@lists.wpkg.org
[mailto:wpkg-users-bounces@lists.wpkg.org] <b>On Behalf Of </b>Steve Handy<br>
<b>Sent:</b> Thursday, March 27, 2008 3:10 PM<br>
<b>To:</b> 'Adam Williams'<br>
<b>Cc:</b> 'wpkg-users@lists.wpkg.org'<br>
<b>Subject:</b> Re: [wpkg-users] Can WPKG install packages while user is at
desktop - Lets move on the 2nd problem<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Sorry Andrew for the late response. I used the /force flag
in conjunction with the /synchronize /quiet command-flag and it WORKED!!!! Leon
helped me<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b>From:</b> wpkg-users-bounces@lists.wpkg.org
[mailto:wpkg-users-bounces@lists.wpkg.org] <b>On Behalf Of </b>Adam Williams<br>
<b>Sent:</b> Wednesday, March 26, 2008 7:15 PM<br>
<b>Cc:</b> 'wpkg-users@lists.wpkg.org'<br>
<b>Subject:</b> Re: [wpkg-users] Can WPKG install packages while user is at
desktop - Lets move on the 2nd problem<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>did you add the /synchronize /quiet flags?<br>
<br>
Steve Handy wrote: <o:p></o:p></p>

<pre>Well I uninstalled the Firefox, rebooted the computer, and then disconnected the network cable to prevent WPKG from installing Firefox on reboot. When I arrived back to desktop, I connected the network cable. I then ran the cscript \\Store1\WPKG\wkpg.js and still the WPKG DID NOT install the firefox package. There is no execute ="once" in my package xml file.  The reboot should have cleaned the system, but it's still not working.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>The reason I am beating this is that if a situation should arise where a user removes some software, I would want the WPKG to reinstall it on next scheduled execution of the script if they have NOT REBOOTED. This way I am so trying to make this work.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: Rainer Meier [<a
href="mailto:r.meier@wpkg.org">mailto:r.meier@wpkg.org</a>]<o:p></o:p></pre><pre>Sent: Wednesday, March 26, 2008 4:18 PM<o:p></o:p></pre><pre>To: Steve Handy<o:p></o:p></pre><pre>Cc: 'Adam Williams'; '<a
href="mailto:wpkg-users@lists.wpkg.org">wpkg-users@lists.wpkg.org</a>'<o:p></o:p></pre><pre>Subject: Re: [wpkg-users] Can WPKG install packages while user is at desktop - Lets move on the 2nd problem<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Hi Steve,<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Steve Handy wrote:<o:p></o:p></pre><pre>  <o:p></o:p></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>One more thing though. Why is it that when I uninstall the firefox, and then run the cscript \\.... /sync.., the program doesn't install.<o:p></o:p></pre><pre>    <o:p></o:p></pre></blockquote>

<pre><o:p> </o:p></pre><pre>As written already many times either you used execute="once" or the<o:p></o:p></pre><pre>checks still evaluated true. In case (parts) of an application is still<o:p></o:p></pre><pre>running it is quite common that the uninstall entry is not entirely<o:p></o:p></pre><pre>removed until the next reboot (when uninstall is finished, files are<o:p></o:p></pre><pre>removed and uninstall entry is cleanded). So WPKG might still find the<o:p></o:p></pre><pre>uninstall entries unless you reboot and therefore thinks the application<o:p></o:p></pre><pre>is still installed.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>Let's move on Rainer:<o:p></o:p></pre><pre><o:p> </o:p></pre><pre> So basically what I have I good. Great. Okay, now here is the 2nd dilemma.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>We have employees here at my organization. They have offsite laptops. Currently they use the Windows PPTP VPN client to connect to the company from outside. When they initially boot, they DO NOT HAVE a network connection established. (So  WPKG will NOT install software at this point). When they arrive at their respective desktops, they establish a network connection via Sprint broadband air cards they have. They then click the VPN icon to establish a VPN connection into the company.<o:p></o:p></pre><pre>    <o:p></o:p></pre></blockquote>

<pre><o:p> </o:p></pre><pre> > Here is where WPKG comes in, I need the WPKG to execute the cscript<o:p></o:p></pre><pre>\\Store1\WPKG\wkpg.js /Synchronize /quiet and check for packages that<o:p></o:p></pre><pre>need to be installed. (and install if necessary).<o:p></o:p></pre><pre> ><o:p></o:p></pre><pre> > How do I make this happen?<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Well, you don't need WPKG to invoke itself as you wrote. You need to<o:p></o:p></pre><pre>configure your VPN software to run WPKG when the connection is up and<o:p></o:p></pre><pre>running. I know that some VPN clients (OpenVPN for sure) allows you to<o:p></o:p></pre><pre>define some scripts to be run after connection establishment. There you<o:p></o:p></pre><pre>can simply add a batch script to execute WPKG.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Today I wrote already as an answer to another request that you might<o:p></o:p></pre><pre>simply run the WPKG service from command line instead of manually<o:p></o:p></pre><pre>invoking the wpkg.js script. Of course this only applies if you<o:p></o:p></pre><pre>installed WPKG client and the service is available. If yes, then you<o:p></o:p></pre><pre>might use the command<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>net start WpkgService<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>to run the WPKG service again. This works perfectly fine if you<o:p></o:p></pre><pre>configure WPKG client to terminate after wpkg.js terminated (see<o:p></o:p></pre><pre>configuration). If not, then you might need to execute 'net stop' before<o:p></o:p></pre><pre>to terminate the still running service:<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>net stop WpkgService<o:p></o:p></pre><pre>net start WpkgService<o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>NOTE: The user executing this commands needs privileges to start/stop<o:p></o:p></pre><pre>Windows services.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Alternatively you might execute WPKG on a regular base using the Windows<o:p></o:p></pre><pre>task scheduler (twice per day? up to you...).<o:p></o:p></pre><pre>WARNING: If you run wpkg.js manually (using 'cscript ....' then all<o:p></o:p></pre><pre>variables defined in WPKG client are not defined. You need to write a<o:p></o:p></pre><pre>small batch script which is doing this part of WPKG client if you like<o:p></o:p></pre><pre>to do so. Something like:<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>@echo off<o:p></o:p></pre><pre>set SOFTWARE=...<o:p></o:p></pre><pre>cscript ....\wpkg.js /synchronize<o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>In addition we are now eliminating the PPTP VPN client method and using a SSL VPN method where our employees are taken to a webpage via a public url <a
href="https://portal.callglobalcom.com">https://portal.callglobalcom.com</a> and thru active x components are brought "inside the company" How can WPKG work in this scenario? The SSL VPN is created by a Sonic Wall device.<o:p></o:p></pre><pre>    <o:p></o:p></pre></blockquote>

<pre><o:p> </o:p></pre><pre>Again, you need to ask your VPN provider how to implement a<o:p></o:p></pre><pre>post-connection script where you can run WPKG. Or just run it regularly<o:p></o:p></pre><pre>using the task scheduler.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Most VPN solutions should support such a requirement. If not then you<o:p></o:p></pre><pre>can go for the task scheduling option or ask users to execute the<o:p></o:p></pre><pre>software update manually after connection (which is the last option I<o:p></o:p></pre><pre>would go for).<o:p></o:p></pre><pre>If you need to use the task scheduler you can (AFAIR) create a task<o:p></o:p></pre><pre>which is run as the SYSTEM user. Just execute the 'net start<o:p></o:p></pre><pre>WpkgService' command as described above by such a task. If you do this<o:p></o:p></pre><pre>twice a day it will not affect users too much. Recent versions of WPKG<o:p></o:p></pre><pre>client also allow you to check server connectivity first. So if WPKG<o:p></o:p></pre><pre>client (invoked by 'net start WpkgService') discovers that your<o:p></o:p></pre><pre>'server.companydomain.local' does not exist, then it will even not try<o:p></o:p></pre><pre>to invoke wpkg.js and terminate immediately.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>HTH,<o:p></o:p></pre><pre>Rainer<o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>HTH,<o:p></o:p></pre><pre>Rainer<o:p></o:p></pre><pre>  <o:p></o:p></pre></div>

</body>

</html>