Following informations are for developers. It is basic of SDS implementation.
SDS
--------------------------------------------------------------------------------------------
Main component is
SDSAutomatic.cmd (a.k.a. SDSA). It is scheduled task running every minute.
SDS parse Jobs\Regular directory and check every subdirectory.
The subdirectories uses syntax JobState.JobName.
If JobState is equal to Running, SDSA enter this directory, import settings from file Job.ini and then enter subdirectory ComputerGroups.
Here it parses through all available files. That files represents computers and have extension .sds. For example pc1000.sds represents computer pc1000.
For every file/computer SDSA tries to check if computer is available (ping), if it is available, SDSA will copy SDSClient.exe to computer + ini file generated from job.ini.
Now it activate remote computer - schedule/psexec etc the execution of SDSClient.exe with .ini file as parameter.
Now lets talk about
Job.ini. This file contains informations about job.
It contains following settings:
Operation=Installation\Command\Group
Package=%packagename%
Storage=Remote\local (currently only Remote supported)
InstallationMethod=RunOnceEx\PsExec\Scheduled
Restart=No\Yes (available only for RunOnceEx installation method)
AllowDefaultPackages=Yes\No
Operation - defines operation type. Installations/Commands are the same, they are just divided because they are in different location. Groups are combination of commands/installations.
For example group DotNET_Framework consist of Installation=DotNET_Framework_1.1 and Installation=DotNET_Framework_1.1_SP1.
For installation/command you must create file Package.ini. I will describe syntax later. For Groups you must create file Group.ini with syntax
OperationType=Package.
Package - defines the name of package. For example Office20003. This is the name of directory, so SDSA will try to find %PackageDirectory%\%OperationType%\Office2003\Package.ini.
If operation type is installation/command, it will try to find package.ini, for group it will try to find Group.ini.
Storage - not implemented yet, always set to Remote.
InstallationMethod - defines method that will be used to activate SDSClient on remote computer.
Restart - only available to RunOnceEx installation method. When ROE entries are created, SDS will automatically restart computer, so you dont need to wait till user logoff/logon.
AllowDefaultPackages - default packages are created for every job. For example if you want to create some log files, you create default package. They are acting as plugins. They are defined in Main.ini.
This setting means if default packages from main.ini are allowed or not.
For syntax of
Package.ini see kTool documentation:
http://www.msfn.org/...showtopic=28393
You are defining global behavior by two configuration files: Main.ini and Paths.ini
Main.ini
; Name of the package file, that MUST be in every installation/command directory
SDS.Global.PackageFile=Package.ini
; Name of the administrator account
Secret.AdministratorAccount=uainstall
; Administrator password
Secret.AdministratorPassword=uainstall*pass
; Domain - used for autologon
SDS.Global.Domain=!UserDomain!
; How long till scheduled task will be executed on target computer. Default is 3 minutes
SDS.Global.ScheduledTimeout=1
; Default setting for remote storage - only Remote available yet, I need to work on it
SDS.Global.Parameter.DestinationStorage=Remote
; Method that should be used to deploy packages
SDS.Global.Parameter.InstallationMethod=Scheduled
; AutoRestart - this means if computer should be automatically restarted after RunOnceEx entries are created
SDS.Global.Parameter.Restart=No
; Defined if default packages should be included
SDS.Global.Parameter.DefaultPackages=Yes
; Default packages - Start. Syntax is SDS.Global.DefaultPackages.Start.%Number_of_Package%=%OperationType%:%Package_Name%
SDS.Global.DefaultPackages.Start.1=Command:Minimize_Command_Line
SDS.Global.DefaultPackages.Start.2=Command:Disable_RemoteRegistry
SDS.Global.DefaultPackages.Start.3=Command:Disable_Input
; Default packages - End. Syntax is SDS.Global.DefaultPackages.End.%Number_of_Package%=%OperationType%:%Package_Name%
; SDS.Global.DefaultPackages.End.1=Command:Disable_AutoLogon
SDS.Global.DefaultPackages.End.2=Command:Enable_RemoteRegistry
SDS.Global.DefaultPackages.End.3=Command:Enable_Input
SDS.Global.DefaultPackages.End.4=Command:Restart_Computer
Paths.ini
; General path to the package directory. You should store Commands/Installations/Groups folders inside this one (but you dont have to.
SDS.Path.PackagesStore=\\!ComputerName!\PackageStore
; Path to the installations directory. Here are stored installations for applications
SDS.Path.InstallationsStore=!SDS.Path.PackagesStore!\Installations
; Path to the logs directory
SDS.Path.LogsStore=\\!SDS.Path.ExecutionPath!\Logs
; Path to the commands directory
SDS.Path.CommandsStore=!SDS.Path.PackagesStore!\Commands
; Path to the groups directory
SDS.Path.GroupStore=!SDS.Path.PackagesStore!\Groups
; Path to the bin directory
SDS.Path.BinStore=!SDS.Path.ExecutionPath!\Internal
; Path, where packages will be stored on local computer
SDS.Path.LocalStore=c:\Program Files\SDS
; Path to the regular jobs directory
SDS.Path.JobStore=!SDS.Path.ExecutionPath!\Jobs\Regular
; Path to the internal jobs directory
SDS.Path.InternalJobStore=!SDS.Path.ExecutionPath!\Jobs\Internal
; Path to the temporary (per session) files
SDS.Path.Temporary=!SDS.Path.ExecutionPath!\Temporary
; Path to the frontend folders, which allows you to securely allow users to install software on their own PC (similar to published feature)
SDS.Path.FrontendFolders=\\!ComputerName!\SDS
Please let me know what you dont understand... I am not good at writing easy-to-understand documentation
Martin