Jump to content

Programmers invitation


Recommended Posts

Hello there!

I am working hard on SDS (currently build 0006) and I am looking for some developers that would like to help.

Who I need?

a.) someone to create GUI. I began with .NET, however I dont want to leave core developement.

b.) someone to help me with core - it is based on batches+FS...

c.) someone to write packages/plugins... This is quite simple and only requirement is to have good ideas.

EDIT:

d.) as client I am using kTool from Kenedy. So I would also invite someone with knowledge of AutoIt.

e.) heh, I almost forgot - if there is any volunteer to take care of documentation, it would be great :)

f.) I am looking for people who have ideas how to make SDS better solution...

Now some details about SDS - SDS is free&easy deployment solution... Right now it is functional, however I need to debug it a little before first public beta test.

Please, help me if you can... I think this could be useful for many administrators (not for me, I am using USD :))

Edited by Martin Zugec
Link to comment
Share on other sites


Is the project currently running with command line. I have no problem creating a GUI for a command line program (just need to know the switches and a graphic of the layout concept would be nice). I can send you a program or two I have written with GUI's.

I use a C++ library called wxWigets (used to be wxWindows). This is a cross compatible C++ library that is free to use, and is also easy to use.

Link to comment
Share on other sites

2phkninja: That would be great! Could you please upload it somewhere (I got quite aggressive AV protection ;))...

You dont need to cooperate with command line - just "import" the directory structure...

My ICQ is 137412582, pls contact me directly, I will explain further...

Link to comment
Share on other sites

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/board/index.php?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

Link to comment
Share on other sites

This is example. On this picture you can see active job AdobeReader (JobState Running). This job is associated with computers on right (pc####).

Green ones were successful, red failed (in fact I forced that computer to fail), blue means the installation is running right now.

The last three computers were not activated yet, because they are turned off. When user turns them on, Adobe Reader will be automatically installed.

BTW this is alpha GUI, I am not GUI programmer, so excuse the layout :)

Martin

post-13057-1126621892_thumb.png

Link to comment
Share on other sites

I will now talk about Default packages.

You can see them in Main.ini... What are they?

Default packages are in my opinion really nice idea, that make SDS open to further modifications... We can say they are acting like plugins...

There are two different default package types - Start and End. The default packages are "around" every job - for example if you run job AdobeReader, all SDS.Global.DefaultPackages.Start.# will be performed BEFORE AdobeReader and all SDS.Global.DefaultPackages.End.# will be performed AFTER AdobeReader.

As I said it is quite useful for plugin functions - for example I am using

SDS.Global.DefaultPackages.Start.3=Command:Disable_Input

and

SDS.Global.DefaultPackages.End.3=Command:Enable_Input

This will perform command Disable_Input before installation and enable input after installation.

This example will block user input (mouse+keyboard) for duration of installation.

In fact DefaultPackages are really easy to implement/understand...

Any questions?

Link to comment
Share on other sites

Hey Martin go to this web page it explains all the varibles for this script

Hey Script Guys

Const FILE_SHARE = 0

Const MAXIMUM_CONNECTIONS = 25

strComputer = "atl-ws-01"

Set objWMIService = GetObject _

    ("winmgmts:\\" & strComputer & "\root\cimv2")

Set objNewShare = objWMIService.Get("Win32_Share")

errReturn = objNewShare.Create _

    ("C:\Public", "PublicShare", FILE_SHARE, _

        MAXIMUM_CONNECTIONS, "Public share for Fabrikam employees.")

Go to this web page for the varibles and stuff for this script.

Hey Script Guys

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set objNewJob = objWMIService.Get("Win32_ScheduledJob")

errJobCreated = objNewJob.Create _

    ("Cleanup.exe", "********123000.000000-420", _

        True , 1 OR 4 OR 16, , , JobID)

Wscript.Echo errJobCreated

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...