Tomasz Chmielewski wrote:
sbotsford wrote:
I'm flummoxed.
On one group of hosts wpkg works. On another, it doesn't, and I get
the following message:
Using Profile: Inspiron
profile: Inspiron profileNode:
Object doesn't support this method or property
command line:
cscript wpkg.js /synchronize /debug
Inspiron is defined in hosts.xml
I don't know what it means, but it would be interesting to find out.
Google gives a couple of answers when you search for "Object doesn't
support this method or property", but mostly it deals with JScript used
for web pages.
1) Could you send me your profiles.xml, hosts.xml and packages.xml?
Added as attachments
2) What version of WPKG do you use? Could you try the latest testing
(0.9.8-test2)?
This is the first thing I tried. Identical behaviour. Scripten is
version 5.6 from the link on the wpkg web page.
3) do you still get this error when you use same profile + packages, but
for a different host?
No. If I run wpkg for the classes of machines lab* it does what I
expect. (Not all of what I want, yet, but it works and installs the
3-4 packages I've got working properly.)
From your message this is something being spewed out by cscript, and
not by wpkg itself. This by itself is helpful. Are there alternate
js interpreters that give better debugging info?
***
My next step will be to remove the packages from that profile. See if
I can narrow it down. I'm betting on a stupid syntax error in my xml
files.
***
On debugging. dviPS, part of the TeX distribution has one of the best
debugging interfaces I've run into. With it you gave debug what
amounted to a bit field.
debug = 1 Specials
debug = 2 paths
debug = 4 fonts
debug = 8 pages
... and so on.
Summing them up allowed you to pick combinations.
Suppose on wpkg it was something like:
debug = 1 XML parsing (Show parse tree?)
debug = 2 Consistency checking. (Prints out if host file contains
profiles that aren't in profiles, if profiles reference packages that
aren't in packages.
debug = 4 Detailed package checking. (Verifies the existence of
paths, and commands)
debug = 8 Print the command about to be executed, wait for keypress,
print exit status.
debug = 16 Put the interpreter into some form of debug mode
Now, I haven't the experience with either XML, JS, or winsnooze to say
if any these are good ideas. Maybe they will spark your ideas.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Lists host names and associated profile. This file can be edited
directly, or even created automatically depending on your
environment.
For more info, see http://wpkg.org/index.php/Category:Documentation
-->
<wpkg>
<host name="lab-1*" profile-id="lab" />
<host name="lt-*" profile-id="laptop" />
<host name="bandersnatch" profile-id="Inspiron" />
<host name="jabberwocky" profile-id="jabberwocky" />
<!-- This one will match all hosts that were not matched before.
For more info on regexp matching, see the documentation on http://wpkg.org/index.php/Regular_expression_support -->
<host name=".+" profile-id="common" />
</wpkg>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Available package database.
This is a list of all packages that can be deployed to workstations.
Each package has the following attributes:
id A unique identifier representing the package. Should be
short and to the point.
name Longer textual description of the package. This should be
the full product name.
revision User created integer to represent the "version" of the
specific package. Should be incremented when creating a new
release.
reboot If "true" system reboots when done installing, removing or
upgrading the package.
priority Specifies a numeric value that determines in what order a
package will be installed.
The following additional elements can or must be included within a package:
depends Specifies that this package depends on another package and
optionally version. Either that package must be installed or
must be installable.
install Contains command(s) to be run when the package is to be
installed.
remove Contains command(s) to be run when the package is to be
removed.
upgrade Contains commands(s) to be run when the package is already
installed, but the new revision number is greater than the
old revision number.
env Sets an environmental variable to the specified value.
THIS IS A SAMPLE FILE
For more info, see http://wpkg.org/index.php/Category:Documentation
TEMPLATE: Cut & paste in appropriate section.
<package
id="XXX"
name="XXX"
revision="XXX1"
reboot="XXXfalse"
priority="XXX0" >
<check
type="registry"
condition="exists"
path="HKLM\Software\wpkg\full\key\not\part\of\it" />
<check
type="file"
condition="exists"
path="C:\wpkg\wpkg.bat" />
<check
type="uninstall"
condition="exists"
path="WPKG 0.6-test1" />
<install
cmd='msiexec /i (path to msi)'>
<exit code="0" />
</install>
<remove cmd='msiexec /x (path to msi)' />
<upgrade cmd='msiexec /i (path to msi)' />
</package>
-->
<packages>
<package
id="changename"
name="Run computer name check"
revision="1"
reboot="true"
priority="0" >
<install
cmd='perl startup'>
<exit code="0" />
</install>
<remove cmd='msiexec /x (path to msi)' />
<upgrade cmd='msiexec /i (path to msi)' />
</package>
<package
id="W2K-SP4"
name="Windows 2000 service pack 4"
revision="4"
reboot="true"
priority="100" >
<check
type="uninstall"
condition="exists"
path="Windows 2000 SP 4" />
<install
cmd='msiexec /i /qb %WPKG%/MicroSoft/W2KSP4_EN.EXE)'>
<exit code="0" />
</install>
<remove cmd='msiexec /x (path to msi)' />
<upgrade cmd='msiexec /i (path to msi)' />
</package>
<package
id="K9"
name="NTP Time Synchronization Client"
revision="1"
reboot="false"
priority="0" >
<check
type="file"
condition="exists"
path="%SYSTEMROOT%\system32\k9nt.exe" />
<install
cmd='\\conan\Installers\wpkg\k9-install.bat'>
<exit code="0" />
</install>
<remove
cmd='\\conan\Installers\wpkg\k9-remove.bat' />
</package>
<package
id="INSP1300Chipset"
name="Inspiron Chipset Package"
revision="1"
reboot="false"
priority="100" >
<install
cmd='%HDWRINSP%/ChipSet/install.bat ' />
</package>
<package
id="INSP1300Audio"
name="Inspiron Audio Drivers"
revision="1"
reboot="false"
priority="0" >
<check
type="uninstall"
condition="exists"
path="SigmaTel Audio" />
<install cmd='%HDWRINSP%/Audio/install'/>
</package>
<package
id="INSP1300Video"
name="Inspiron Video Drivers"
revision="1"
reboot="false"
priority="0" >
<check
type="uninstall"
condition="exists"
path="Intel(R) Graphics Media Accelerator Driver for Mobile" />
<install cmd='%HDWRINSP%/Audio/install'/>
</package>
<package
id="INSP1300Wireless"
name="Inspiron Wireless Drivers"
revision="1"
reboot="false"
priority="0" >
<check
type="uninstall"
condition="exists"
path="Intel(R) Graphics Media Accelerator Driver for Mobile" />
<install cmd='%HDWRINSP%/Network-Wirelss/install.bat'/>
</package>
<package
id="msoffice-XP"
name="Microsoft Office XP"
revision="1"
reboot="true"
priority="0">
<check
type="uninstall" condition="exists"
path="Microsoft Office Professional Edition XP" />
<install
cmd='msiexec /i "%INST%\OfficeXP\PRO.MSI" /q allusers=1 ADDLOCAL=ALL'>
<exit code="0" />
</install>
<remove cmd='MsiExec.exe /q /x{90110407-6000-11D3-8CFE-0150048383C9}' />
<upgrade cmd="" />
</package>
</packages>
<?xml version="1.0" encoding="UTF-8"?>
<!-- System profile database.
Lists profiles available to the systems. A profile represents a certain
selection of packages from the packages database. Profiles can depend on
other profiles, the end result being the sum of all required packages.
THIS IS A SAMPLE FILE
For more info, see http://wpkg.org/index.php/Category:Documentation
-->
<profiles>
<!-- Describe package groups -->
<!-- Package Category 1 Hardware specific profiles -->
<profile id="Inspiron" >
<package package-id="INSP1300Chipset" />
<package package-id="INSP1300Audio" />
<package package-id="INSP1300Wireless" />
</profile>
<!-- Package Category 2 Application Groups -->
<profile id="netapps" >
<package package-id="thunderbird" />
<package package-id="firefox" />
<package package-id="opera" />
<package paakage-id="flash" />
<package paakage-id="shockwave" />
<package paakage-id="javaruntime" />
</profile>
<profile id="photo" >
<package package-id="photoshop" />
<package package-id="nikonview" />
</profile>
<profile id="words" >
<package package-id="MSOffice" />
<package package-id="MathEdit" />
<package package-id="AcrobatRdr" />
</profile>
<profile id="remadm" >
<package package-id="K9" />
<package package-id="VNC" />
<package package-id="Cygwin" />
</profile>
<profile id="TLE" >
<package package-id="TLE7" />
<package package-id="TLE8" />
<package package-id="TLE9" />
<package package-id="TLE10" />
<package package-id="TLE11" />
</profile>
<!-- Package Category 3 Computer groups. -->
<!-- This one renames the computer according to it's IP address -->
<profile id="jabberwocky" >
<package package-id="jabberwocky" />
</profile>
<profile id="common">
<depends profile-id="netapps" />
<depends profile-id="photo" />
<depends profile-id="words" />
<depends profile-id="remadm"/>
</profile>
<!-- assign packages groups to machine groups -->
<profile id="lab">
<depends profile-id="common" />
<package package-id="TLE" />
</profile>
<profile id="staff">
<depends profile-id="common" />
<package package-id="renweb" />
<package package-id="eqnedit" />
</profile>
<profile id="staff-lap">
<depends profile-id="staff" />
<package package-id="smartboard" />
</profile>
<profile id="student-lap">
<depends profile-id="common" />
</profile>
</profiles>