> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] 
> Behalf Of Bob
> Gervais
> Sent: Friday, November 14, 2003 5:27 AM
> To: Tim Johnson; [EMAIL PROTECTED]
> Subject: RE: How to change the uservariables in Windows 2000
> 
> 
> OK,
> 
> I've started the script with perl -d and I receive a Signal 
> SEGV: error
> on the SetEnvVar command.
> I am using Perl 5.6.1 635 on a W2K Adv. Server with SP4 thru 
> a Terminal
> Server session.

I get the same w2k/sp4/asperl5.8 807. There appears to be a 
5 character limit on the $value arg, beyond that the SEGV 
occurs. This cannot be intentional...

Behavior is unchanged regardless of $type and $timeout args.

>From the History note in the readme - 
(
#//  2003.06.17  :Date
#//  20030617    :Version
)
==========
    2003.03.14 [EMAIL PROTECTED]
        -Fixed the SetEnvVar() Perl function. It allocated a static block of memory on 
the stack to
hold the env variable. It would
            error out if the variable was larger than this default buffer size (1024 
chars). It is
now dynamically alloced from the heap.
==========
This seems not to be quite working?

> 
> All suggestions are welcome now.
> 
> Thx,
> 
> Bob
> 
> -----Original Message-----
> From: Tim Johnson [mailto:[EMAIL PROTECTED] 
> Sent: vrijdag 14 november 2003 10:26
> To: Bob Gervais; [EMAIL PROTECTED]
> Subject: RE: How to change the uservariables in Windows 2000
> 
> 
> As far as I can see that should work, unless there is somthing strange
> about doing it in a TS session.  One thing I'm noticing, 
> though, is that
> you are not checking to see if it worked, ala 
> 
> "Win32::AdminMisc::SetEnvVar("VCSID",$VCSID) || die;".
> 
> Also, you may want to rethink that last part.  A simple regex 
> will make
> your code much easier to follow:
> 
> 
> 
> #if it matches "user" followed by a number(\d) at the end($), case
> insensitive(i) if($UserLoginName =~ /user(\d)$/i){
>       #append to the end of the path
>       $ENV{PATH} .= ";D:\\User$1";
> }else{
>       #or return an error
>       print "Invalid Username";
> }
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] 
> Behalf Of Bob
> Gervais
> Sent: Friday, November 14, 2003 12:57 AM
> To: [EMAIL PROTECTED]
> Subject: How to change the uservariables in Windows 2000
> 
> 
> Hi,
>  
> I am trying to change the path in Windows 2000 (terminal 
> server session)
> on a per user basis and set a specific variable.
> I have tried to use Win32::AdminMisc, but this only changes 
> the path and
> the variable during the time the script runs.
>  
> Is there a way to set the path globally (at logon) so the user can use
> during his/her session?
>  
> Please keep in mind that I am no "real" programmer, just a sysadmin
> trying to automate some tasks with perl. 
>  
> Here is the script I wrote:
>  
> --------------------------------------------------------------
> ----------
> ---
>  
> #!perl
>  
> use win32::adminmisc;
> use win32;
> use strict;
> my $UserLoginName = $ENV{"USERNAME"};
> my $Fixed_Path = $ENV{"PATH"};
> my $VCSID = uc(substr($UserLoginName,0,3));
> Win32::AdminMisc::SetEnvVar("VCSID",$VCSID);
> my $UserPath;
>  
> for ($UserLoginName) 
>   {
>   if ($UserLoginName eq "domainuser1")     
>      {
>      $UserPath = $Fixed_Path.";d:\\User1"
>      }
>   elsif ($UserLoginName eq "domainuser2")   
>      {
>      $UserPath = $Fixed_Path.";d:\\User2"
>      }     
>   elsif ($UserLoginName eq "domainuser3")  
>      {
>      $UserPath = $Fixed_Path.";d:\\User3"
>      }     
>   elsif ($UserLoginName eq "domainuser4")   
>      {
>      $UserPath = $Fixed_Path.";d:\\User4"
>      }     
>   elsif ($UserLoginName eq "domainuser5")  
>      {
>      $UserPath = $Fixed_Path.";d:\\User5"
>      }     
>   elsif ($UserLoginName eq "domainuser6")   
>      {
>      $UserPath = $Fixed_Path.";d:\\User6"
>      }
>   };
> Win32::AdminMisc::SetEnvVar("PATH",$UserPath);
> 
>  
> --------------------------------------------------------------
> ----------
> ---
> 
> Thanx,
> 
> Bob
> 
> 
> _______________________________________________
> Perl-Win32-Admin mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
> 
> 
> _______________________________________________
> Perl-Win32-Admin mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

<<attachment: winmail.dat>>

Reply via email to