NAME
Sys::Manage::Desktops - Centralised management for desktop computers
SYNOPSIS
- Script
-
use Sys::Manage::Desktops;
my $s =Sys::Manage::Desktops->new(-option=>value,..);
$s->set(-option=>value,..); # See
Script Configuration
$s->{
-dla
} =[{-option=>value,..} # SeeAssignment Parameters
,...];
$s->Run(@ARGV); # See
Command line
- Command line
-
perl
Script
.pl run-mode argscommand line may be used (with appropriate run mode) as
startup
,shutdown
,logon
,logoff
script.Maintenance command line 'perl
Script
.plrefresh
' is to be used against management computer only.See
Run Modes
.
DESCRIPTION
- Description
-
This is a core module for script implementing assignments of commands to be executed on desktop computers.
The
Script
may define and organise commands or scripts to be executed everystartup
,logon
,logoff
,shutdown
, as described with-under
. Commands may be addressed to particular computers, users, groups. User will not be asked to agree with anystartup
,logon
,logoff
,shutdown
.The
Script
may provide assignments of commands to be executed once,-under
'system
' or 'user
', within appropriateRun Modes
:startup
,logon
,runapp
,agent
. Assignments may be addressed to particular computers, users, groups. The assignments to be executed will be listed for user to agree. The assignments will be executed only when user agrees (or-atoy
). The execution of assignment may interact with user.The recurrent and non-recurrent assignments are unified and may be distinguished with
-under
value: Recurrent assignments:startup
,logon
,logoff
,shutdown
. Non-recurrent assignments: 'system
', 'user
'.The organising means includes lists of assignments to be previously executed (
-doid
); computers, users and groups assignments to executed for (-nodes
,-users
).The debug and correcting means includes time-based redo of assignment (
-doop
); agent remote activation and changing periodicity (agent say
).This module does not assumes anything about repository of commands or scripts.
Sys::Manage::Cmd module implements assignments, but synchronous and without interaction to user.
RUN MODES
- Run Modes
-
Maintenance or management run modes:
query
to list assignments;refresh
to be used against manager computer only;agent say
to be used from manager side.Desktop or agent run modes may be used against desktop or agent system:
startup
,logon
,agent
,runapp
,logoff
,shutdown
.Scriptic run modes may be used to define or organise appropriate scripts:
startup
,logon
,logoff
,shutdown
for desktop or agent system. See alsostartup1
andlogon1
Script Modes
.Run modes to check or execute assignments (with appropriate
Assignment Modes
) on desktop or agent system:startup
andagent
to executesystem
assignments;logon
andrunapp
to checksystem
and to executeuser
assignments.Windows 95/98:
startup
executed inlogon
;agent
,logoff
,shutdown
unimplemented.Windows 2000/XP: all
Run Modes
implemented;agent
uses 'at' Scheduler commands, may be activated via 'startup period
' command line. - agent (start | stop | loop | apply) ?minutes
-
Periodical agent operation.
system
assignments may be executed.user
assignments may be checked, if possible.This item is very platform dependent, see
Limitations, Bugs, Problems
. - agent say
- agent say node ?minutes
- agent say node -redo assignmentId
- agent say node -unreg assignmentId
- agent say node agent action...
-
Activate agent from manager via Sys::Manage::Conn(
-conn
). Default action is 'agent
loop'. Immediate actions '-redo' and '-unreg' may be used instead of assignment with-doop
=> [[-redo=>id] || [-unreg=>id]]. Seeagent
for other actions available, i.e. 'agent
stop'. - logoff
-
Execute logoff scripts
- logon
-
Execute
logon
scripts (-under
=> 'logon
'), then user level assignments (-under
=> 'user
') may be executed. Complete with post-logon scripts (-under
=> 'logon1
'). - query
-
query runmode|'undef'|'' ?node|'undef' ?user|'undef'
Queries assignments database, displays result. Maintenance run mode.
- refresh
- refresh pressing
-
Maintenance run mode, to be executed against manager only. Refreshes application startup scripts, etc. See also
runapp
,-mcf
,-fresh
. - runapp
-
Application startup operation. The
Script
is called if-fresh
from application startup script generated byrefresh
for-mcf
.system
anduser
assignments will be checked,user
assignments may be executed. - shutdown
-
Execute shutdown scripts
- startup
-
Execute startup scripts (
-under
=> 'startup
'), then system level assignments (-under
=> 'system
') may be executed. Complete with post-startup scripts (-under
=> 'startup1
'). - startup period
- startup agent
- startup agent start period
-
Execute
startup
, startagent
, if appropriate.
SCRIPT MODES
- Script Modes
-
-under
assignment parameter may be used to definestartup
,logon
,logoff
,shutdown
scripts, and also post-startup
and post-logon
scripts.Post-
startup
scripts will be executed afterstartup
scripts andstartup
system
assignments.Post-
logon
scripts will be executed afterlogon
scripts andlogon
user
assignments. - logon1
-
-under
=> 'logon1
'Post-logon scripts to complete
logon
process. - startup1
-
-under
=> 'startup1
'Post-startup scripts to complete
startup
process.
ASSIGNMENT MODES
- Assignment Modes
-
-under
assignment condition may be one ofRun Modes
,Script Modes
, orAssignment Modes
.Assignments under
Run Modes
andScript Modes
are executed at each run of theScript
.Assignments under
Assignment Modes
are executed once during appropriateRun Modes
:startup
,logon
,agent
,runapp
.System level assignments (
-under
=> 'system
') will be executed before user level assignments (-under
=> 'user
') if possible (this is platform dependent).See also
Description
,Run Modes
. - system
-
-under
=> 'system
'The assignment should be executed under
system
session with considerable permissions. Users profiles may be affected via something likew32regenu
. - user
-
-under
=> 'user
'The assignment should be executed under
user
session with permissions of the user and user's profile available.
SCRIPT CONFIGURATION
- Script Configuration
-
Maintenance run mode (
refresh
) may need special values for:-dirmcf
.The most commonly used parameters are:
-banner
,-support
,-mgrcall
,-dirmcf
,-dhu
,-dhn
,-dla
,-xnodes
,-xusers
- -atoy
-
=> 30 # sec
User assent timeout during
startup
andlogon
. User can agree immediate or agree will be implied past timeout. -
=> "Centralised management for desktop computers\n"
Text to display starting execution. See also
-lang
,-support
. - -conn
-
=> empty || {-option => value} || config file name
Configuration for Sys::Manage::Conn object to be used for
agent say
. - -dhn
-
=> undef || {node name => [group names]}
Node groups database, used to match assignment
-nodes
. If undefined, OS system catalogue may be used and slow performance. If-dla
text file, may be reassigned from its-dhn
rows when matched. See also-dhu
. - -dhu
-
=> undef || {user name => [group names]}
User groups database, used to match assignment
-users
. If undefined, OS system catalogue may be used and slow performance. If-dla
text file, may be reassigned from its-dhu
rows when matched. See also-dhn
. - -dircrs
-
=> $ENV{SystemRoot} .'\\' .$s->{-prgcn} || '/var/' .$s->{-prgcn}
Path to
system
client/agent registrations of assignments. Eachsystem
assignment executed will be registered as a file named according to assignment-id
under this path. An assignment may be duplicated also inward-dirmrs
. - -dircru
-
=> $ENV{AppData} .'\\' .$s->{-prgcn} || $ENV{HOME} .'/' .$s->{-prgcn}
Path to
user
client/agent registrations of assignments. Eachuser
assignment executed will be registered as a file named according to assignment-id
under this path. An assignment may be duplicated also inward-dirmru
. - -dirmcf
-
=> '%LOGONSERVER%\\NetLogon\\' .$s->{-prgcn} .'-mcf'
Path to menu command files or application startup scripts for
-mcf
andrefresh
. - -dirmls
- -dirmlu
-
=> undef || 'directory' for 'node/id' or 'node-user/id' files || file path mask 'directory/[n][-u]/[f][e]' || file path mask 'directory/[n]/[f][-ul][e]' || ...
File paths for log files on manager. Will be assigned to
$ENV{SMLOG}
forstartup
,logon
,logoff
,shutdown
scripts. Subdirectories will be created when required. Path mask may be used with symbols following:[SignValSign] - value with optional markup signs, value may be: n - node name, u - user name, us - user name or 'sys', ul - user name or getlogin(), uw - user name or getlogin() on Windows 95/98, else 'sys', f - file name (assignment id), e - file name extension, including '.'
- -dirmrs
- -dirmru
-
=> undef || see '-dirmls' and '-dirmlu'
File paths to duplicate
-dircrs
and-dircru
registrations to inform manager. Subdirectories will be created when required. See-dirmls
and-dirmlu
for path mask. Consider synchronisation procedure globing mask to be obtained using replacement of '[f][e]' symbols with '*'. Avoid mixing-dirmls
,-dirmrs
,-dirmlu
,-dirmru
files in the same directories or carefully consider naming of files. - -dla
-
=>[{id=>'identifier',...}, ...] | 'file name'
Assignments and commands database to find assignments/commands to be executed. See also
Assignment Parameters
.Assignments database may be a perl data structure (array ref) or a text file. Text database format:
# comment row ... -hostdom=>'all' | 'domainName' # domain for rows below ... -dhn=>['node name','group name',...] # node groups ... -dhu=>['user name','group name',...] # user groups ... -id=>'name' # starting assignment -attr=>value # parameter of assignment, use perl syntax for value ...
- -domain
-
=> domain name
Domain of the user current, see also
-user
. - -errhndl
-
=> 0 | 1 | sub{}
Error handler on $SIG{__DIE__}.
- -host
-
=> host name
Full DNS name of the computer current, see also
-node
- -hostdom
-
=> host domain
Domain part of the
-host
. - -lang
-
=> 'en' | 'ru'
Language of user. See also
-banner
,-support
- -mgrcall
-
=> "perl $0"
Management script call from desktop (agent) systems. To be used for
agent
andrefresh
(-mcf
,-fresh
). - -node
-
=> node name
Node name of the computer current, may be short of the
-host
. - -prgcn
-
=> 'Sys-Manage-Desktops'
Program class name, used to construct another names.
- -runmode
-
=> ''
Run mode, see
Command line
,Run Modes
. - -runrole
-
=> '' | ('mngr' | 'manager') | ('agent' | 'desktop') | 'query'
Script
run role to limitRun Modes
inRun
() to management or maintenance, agent or desktop, query. This may be useful programmatically limiting domain of theScript
for parcticular nodes (i.e.w32dcf
orw32srv
) or users. - -smtpsrv
-
=> not exists || 'smtp server name'
- -smtpeto
-
=> not exists || ['e-mail address',...]
SMTP server name (for
smtpsend
) and addressee list to receive errors. May be useful while-yerr
. - -support
-
=> "Call support or press 'Enter' finishing"
Text to display finishing with error(s). See also
-lang
,-banner
. - -user
-
=> user name
- -uadmin
-
=> is admin user?
- -usystem
-
=> is system user?
User current, see also
-domain
,-node
. - -xnodes
- -xusers
-
=> undef || 'name' || ['name',...]
Exclusive nodes and users assignments should not be executed to.
- -yasg
-
=> undef || boolean
Assume 'yes' to execute assignments during
startup
andlogon
, do not ask user. - -yerr
-
=> undef || boolean
Assume 'yes' confirming error messages, do not ask user. May be used along with
-smtpeto
.
ASSIGNMENT PARAMETERS
- Assignment Parameters
-
Assignments and commands are organised in assignments database,
-dla
.The most used parameters of assignment are:
-id
,-cmt
,-under
,-nodes
,-users
,-do
,-doid
,-doop
. - -cmt
-
=> comment string
Description of assignment.
- -cnd
-
=> empty | sub{}(self, assignment)
Execution condition. More preferred is using
-nodes
,-users
,-doid
,-doop
. - -do
-
=> empty | command line | ?! command line
Command line to be executed to apply assignment.
Optional starting char may be used to interpret exit code: '?' - success if 0, '!' - success if not 0. Default operation ignores exit code.
Embedded 'do perl-script-file' comand evaluates file given as sub{}(self, assignment). Some of
Methods
may be called. Empty result will be considered as faiure. - -doid
-
=> empty | assignment id | [assignment id,...]
Assignments to be executed before this assignment. Will be listed to user to agree.
- -doop
- -doop1
-
=> empty | [[-operation => assignment id],...]
Operations to be executed before (
-doop
) and after (-doop1
) this assignment, but not listed to user. Operations available:-unreg => id - unregister assignment
-unreg => id, time-string - unregister if registered before time specified
-redo => id, time-string - unregister and execute again, if registered before time specified
-unmenu => id - delete
-menu
and-mcf
items from menuThe
-unreg
=>(id, 'yyyy-mm-dd hh:mm:ss') and-redo
=>(id, 'yyyy-mm-dd hh:mm:ss') operations of-doop
may be used effectively in debug procedures. The assignment of this operation only will not be registered, may be executed repeatable with different time specified, will be listed to user only when applicable. - -fresh
-
=> empty | assignments overcovering
If this assignment is overcovered by newer assignments. Used only in
refresh
to include-mgrcall
into menu command files for-mcf
items. - -id
-
=> unique identifier
Unique identifier of assignment and name of registration file.
- -last
-
=> empty | true
Requests user to restart computer, breaks execution of the list of assignments.
- -mcf
-
=> empty | [{param => value,..},..]
Menu items to be creted for execution via command files. The
-mcf
optional parameter with-id
describes the name of command file within-dirmcf
. See-menu
for another details,refresh
and-fresh
for usage.This item is very platform dependent, see
Limitations, Bugs, Problems
. -
=> empty | [{parameter => value,..},..]
Menu items to be created, see also
-mcf
. 'Name' parameter contains menu item name.Platform dependent. For Windows see Win32::Shortcut and it's parameters: 'Path', 'Arguments', 'WorkingDirectory', 'Description', 'ShowCmd', 'Hotkey', 'IconLocation', 'IconNumber'. 'Name' may be started with 'Programs', 'Desktop' or 'Startup' subdirectory term. For
system
assignments will be used 'All Users' menu, foruser
assignments will be used current user menu.This item is very platform dependent, see
Limitations, Bugs, Problems
. - -nodes
-
=> empty | 'none' | 'name' | [name,...]
On which nodes (computers) assignment should be executed (except
-xnodes
). May be used group names from-dhn
. Empty value means all nodes; 'none' value allows execution only via-doid
or-doop
. - -since
-
=> empty | 'yyyy-mm-dd hh:mm:ss'
Date-time since assignment should be executed.
- -under
-
=> empty | 'system' | 'user' | 'startup' | 'logon' | 'logoff' | 'shutdfown'
How to execute assignment: at each
startup
,logon
,logoff
,shutdown
, or once underuser
orsystem
session. Empty value treated assystem
. See alsoRun Modes
,Assignment Modes
. - -users
-
=> empty | 'none' | 'name' | [name,...]
For which users assignment should be executed (except
-xusers
). May be used group names from-dhu
. Empty value means all users; 'none' value allows execution only via-doid
or-doop
.
ENVIRONMENT VARIABLES
- Environment Variables
-
May be used in command lines to be executed.
- $ENV{SMID}
-
ID of the assignment running.
- $ENV{SML1}
- $ENV{SML2}
-
First and last parts of file path to upload to manager. Obtained using
-dirmls
or-dirmlu
. Forstartup
,shutdown
,logon
,logoff
scripts this is$ENV{SMLOG}
broken on$ENV{SMID}
. - $ENV{SMLOG}
-
Registration file path and name, may be used for output of the command. May contain blanks and may need to be quoted in command lines, i.e. cmd.exe /c dir c:\\>>"%SMLOG%". For
startup
,shutdown
,logon
,logoff
scripts this is log file name formed using-dirmls
and-dirmlu
.
METHODS
- Methods
-
Useful for
Script
:new
,set
,fread
,w32dcf
/w32srv
,Run
Useful for
-do
=> 'do perl-script-file':fcopy
,fedit
;w32olenew
,w32oleget
,w32olein
;w32registry
andw32regenu
;w32wmiq
andw32wmiqf
;acRegDel
,acRegRen
,meDel
;echo
,error
; and othersMost of methods will die if fail. So, success/failure return value is often not needed.
- acReg ({assignment}) -> fwrite() | die
- acReg ({assignment}, string,...) -> fwrite() | die
-
Assignment call registration.
acReg
({assignment}) creates registration file usingfwrite
(),acReg
({assignment}, string,...) appends strings to this file. - acRegDel ({assignment}) -> unlink() | die
- acRegDel ({assignment}, ? max mtime string) -> unlink() | die
-
Assignment call registration delete. Deletes registration file using
unlink
(), returns 0 if there is nothing to be deleted. Maxmtime
of the registration file to be deleted may be specified as 'yyyy-mm-dd hh-mm-ss'; registration file will not be deleted if itsmtime
is greater then specified. - acRegRen ({assignment}, extension) -> rename() | die
-
Assignment call registration rename. Renames registration file to new extension using
rename
(). I.e.acRegRen
({...},'.err'). -
Print header.
- echo (args) -> print (args).
-
Output to user. Alike
print
(). - error (message) -> die
-
Failure exit.
- fcopy (?-opt, source file | dir | dir mask, target file | base dir | dir, condition sub(self, source, target){}) -> copied | die
- fcopy (source file, target file)
- fcopy (source file, target base dir)
- fcopy (source dir, target base dir)
- fcopy (source dir/mask, target dir)
-
Copy files and directories. Options: 'i'gnore errors; 'r'ecurse (default); 's'tat[mtime] to escape superfluous operation; 'v'erbose.
- fedit (file, sub(self, file, $_=content){} -> new content) -> fwrite() | die
-
Edit file. Loads file using
fread
(file), executes editor sub{} to achieve new content, stores content changed usingfwrite
(file). - ffind (?-opt, path, sub{}(self, full, dir, elem=$_))
- ffind (?-opt, path, false, post sub{}(self, full, dir, elem=$_))
-
File find. Post processing is to see a directory after it's contents. Options: 'i'gnore errors; 'r'ecurse (default).
- fglob (path with mask) -> (dir list) | die
-
Directory listing.
- fpthtmp (?{assignment}, ?mkdir) -> temp dir may be created
-
Path to temporary directory for
Script
or assignment. The second parameter is boolean to create directory if not exists. See alsoftmp
. - fread (?'-b', file name) -> content | die
-
Reads file, returns it's content as a scalar.
- frun (?-opt, command, arg,...) -> success
- frun (?-opt, 'do', script file, arg,...) -> result
-
Execute command or Perl script. Options: 'e'xit code / result consider; 'i'gnore errors; 'v'erbose.
- ftmp (?assignment, ?pid) -> temp file name
-
Temporary file for
Script
or assignment. See alsofpthtmp
. - fwrite (?'-b', file name, string,...) -> true | die
-
Writes strings joined with "\n" to file.
- meDel ({assignment}) -> true | die
-
Deletes user shell menu elements (
-menu
,-mcf
) for assignment. - meStore ({assignment})
-
Creates user shell menu elements (
-menu
,-mcf
) for assignment. - new (-option => value,..) -> object
-
Constructor to create new object.
- nnames () -> [node names]
-
Individual and group names of the computer.
- Run (command line args)
-
Executes
Script Configuration
assigned byScript
. - runmngr (command line args) -> as manager?
-
Tests if run as manager ('',
refresh
,query
,agent say
). - runuser (command line args) -> as user?
-
Tests if run as user (
logon
,logoff
,runapp
). - set () -> (slot names of the object)
- set (-option) -> value of the option given
- set (-option=>value,...) -> self object
-
Retrieves and sets values of the
Script Configuration
. $s->{-option} direct access may be used also, butset
additionally processes some options. - unames () -> [user names]
-
Individual and group names of the user.
- w32ADSystemInfo () -> IADsADSystemInfo object
- w32ADComputer () -> IADsComputer object
-
Windows 2000. Access to ADSI objects, see MSDN for details. Example: w32ADSystemInfo->{DomainShortName}
- w32dcf () -> netlogon scripts dir if DC
-
Windows 2000 DC. Path to 'scripts' subdirectory in 'netlogon' share if domain controller. See also
w32srv
. - w32nuse () -> 'net use' text
- w32nuse (drive) -> network path used
- w32nuse (?-opt, drive, path, ?opt,...) -> drive used
- w32nuse (?-opt, drive, '/d') -> delete drive
-
Windows 'net use' command clever execution. Options: 'i'gnore errors; 'v'erbose.
- w32olenew (progid, ?destructor) -> object | die
-
Win32. Win32::OLE->new(args) call (may be known also as 'CreateObject'). 'Scripting.FileSystemObject', 'WScript', 'WScript.Shell', 'WScript.Network' objects may be created.
- w32oleget (moniker, ?destructor) -> object | die
-
Win32. Win32::OLE->GetObject(args) call.
- w32olein (object) -> enumerated
-
Win32. Win32::OLE::in(object) call.
- w32oleerr () -> last error message string
-
Win32. Win32::OLE->LastError() formatted.
- w32registry (?key) -> {registry}
-
Win32. $Win32::TieRegistry::Registry wrapper.
- w32regenu (sub(self, key name, $_ ={key hash}, profile dir){})
-
Win32 (Windows 95 not recommended). Enumerates users registry files for sub{} given. Calls sub{} with relevant Win32::TieRegistry subtree for each user profile. May be useful for
system
assignments affecting user profiles. - w32srv () -> is Windows Server
-
Win32. Returns true for Windows server or domain controller. See also
w32dcf
. - w32umnu ('mpdiv', item name, option => value)
- w32umnu ('mpdiv', -w32umnu subdir name)
- w32umnu ('iv', filter sub{}(ffind args))
-
Win32 User Menu definition (start 'm'enu, 'p'rograms, 'd'esktop).
w32umnu
('mpd') creates a menu item from Win32::Shortcut parameters or items from subdirectory of-w32umnu
base path.w32umnu
('', sub{}) unlinks items found byffind
, but not mentioned. Additional options may be 'i'gnore errors and 'v'erbose. - w32wmiq (class | query) -> SWbemObjectSet
- w32wmiqf (class | query) -> first object
- w32wmiqf (class | query, iterator sub(self, $_ = object){})
-
Win32. Access to WMI executing query and fetching object(s) via Win32::OLE::in(
w32oleget
('winmgmts:{impersonationLevel=impersonate}!//node/root/cimv2')->ExecQuery(query | 'select * from class')). Where class may be 'Win32_OperatingSystem', 'Win32_ComputerSystem', etc, see MSDN for details. Examples: w32wmiqf('Win32_OperatingSystem')->{ProductType}, w32wmiqf('Win32_ComputerSystem')->{Model}.
EXAMPLES FOR WINDOWS
- Smserver.bat
-
Defines single management server across domain in %SMSERVER% environment variable. Should be placed inside 'Netlogon' share on domain controller.
@rem Defines single management server in the domain. @rem Smserver.bat - echoes %SMSERVER%. @rem Smserver.bat command line - executes command line with %SMSERVER% defined. @rem Use ^%SMSERVER^% notation in command line. @set SMSERVER=\\servername @if "%1" == "" @echo %SMSERVER% @if not "%1" == "" call %*
- Smserver.pl
-
Script
implementation. Should be placed inside 'Netlogon' share on domain controller.#!perl -w my $script =Win32::GetFullPathName($0); my $domain =eval('use Net::Domain; Net::Domain::hostdomain') ||Win32::DomainName() ||$ENV{USERDOMAIN}; my $spath =$script =~/^(.+?)[\\\/][^\\\/]+$/ ? $1 : $ENV{LOGONSERVER} ? "$ENV{LOGONSERVER}\\NetLogon" : "\\\\$domain\\NetLogon"; eval{require ("$spath\\Desktops.pm")} ||eval{require Sys::Manage::Desktops} ||die('Cannot load Sys::Manage::Desktops'); my $s=Sys::Manage::Desktops->new(-errhndl=>1); if (!$ENV{SMSERVER} # %SMSERVER% read || ($ARGV[0] && ($ARGV[0] =~/^(?:startup)/))) { $s->fread("$spath\\SMServer.bat") =~/set\s*SMSERVER\s*=\s*([^\r\n\s]+)/ ? $ENV{SMSERVER} =$1 : $s->error("Missing %SMSERVER%\n"); } if ($s->w32dcf()) { # DC - Run on Manager $s->set( -mgrcall=> "perl.exe \\\\$domain\\NetLogon\\" .$s->{-prgsn} ,-dirmcf => "$ENV{SMSERVER}\\SMShare" ); } else { # Agent Run $s->set( -mgrcall=> ($ENV{PERLPATH}||'') ."perl.exe $script" ,-dirmcf => "%SMSERVER%\\SMShare" ); } $s->{-runrole} =$s->w32srv() # Limit agent to desktops ? 'mngr' : ''; $s->{-dla} ="$spath\\smserver.txt"; # Assignments Database $s->Run(@ARGV); # Evaluate $ARGV[0] operation
- Group Policy
-
To configure
startup
andlogon
scripts.Security: user, computer$: Apply Options: Computer Configuration / Windows Settings / Scripts Startup = ..\..\..\..\..\Scripts\SMServer.bat perl ^%0\..\smserver.pl startup agent Computer Configuration / Administrative Templates / System / Scripts Run Startup Scripts Visible = + Maximum wait time for Group Policy scripts = (default=600 sec) User Configuration / Windows Settings / Scripts Logon = ..\..\..\..\..\Scripts\SMServer.bat perl ^%0\..\smserver.pl logon User Configuration / Administrative Templates / System / Scripts Run Logon Scripts Visible = +
LIMITATIONS, BUGS, PROBLEMS
- Limitations, Bugs, Problems
-
This module is implemented and tested with Perl 5.6.0 and 5.8.8 on Windows 2000/XP.
Implementation predominantly for Windows desktops, espacially
-menu
and-mcf
,agent
, 'w32' functions.Linking
system
anduser
assignments with-doid
or-doop
is undesirable.Mixing
system
assignments with-users
condition is undesirable, however-nodes
condition may be inuser
assignments.Startup or logon scripts may be liable to timeouts or may became hidden from user, so response timeouts used interacting with user.
See also at the top of the source code.
VERSION
- '2008-08-12'
-
Extended
fcopy
(). Documentednnames
() andunames
(). Newrunmngr
(),runuser
(),frun
(),ffind
(),w32nuse
(). - '2008-05-20'
-
Added
-hostdom
=>'all' | 'domainName' markup for-dla
text file. - '2008-03-03'
-
Publishing 0.59.
Opening of upload directory added to prevent network connection lose on Windows.
- '2007-12-27'
-
Publishing.
- '2007-11-30'
-
Testing...
- '2007-10-24'
-
Documentation written.
- '2007-10-04'
-
Started.
LICENSE
This is free software; you can use redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Andrew V Makarow <makarow at mail.com>, for zhenya
3 POD Errors
The following errors were encountered while parsing the POD:
- Around line 42:
'=item' outside of any '=over'
- Around line 80:
You forgot a '=back' before '=head1'
- Around line 1196:
You forgot a '=back' before '=head1'