I've been trying to write a script to move user profile directories, and so far not so good. Made the mistake of allowing windows to create the profile dir in the user's homedir, and am attempting to rectify after the fact. really do not want to go from machine to machine to deal with this manually as it's monumentally inefficient.

Some symptoms are the inability to manage the profile on the workstation - in my computer->properties->advanced->user profiles, copy and delete are greyed out for the affected account, even for local admin.

I've tried to use the root postexec in smb.conf from the homes stanza to trigger the move when the user logs off. Everything moves but seem to be having the above issues with the profiles once they move.

using smb-tools to update ldap with the correct profile path, but I'm wondering if something in the ntuser.dat or some other binary file needs to be changed as well.

"windows is so cool" ([EMAIL PROTECTED]&@&!~)

Depending on primary group membership the users profile is moved to the appropriate server

Here's the script.

#!/bin/bash
# this script is called by samba's root postexec from the user's home directory. # it checks to see if the user's profile is in the users home dir. If so, it is # moved to the samba/profiles directory, and ldap is updated to reflect the change
# if the user has no profile directory, one is created.
# JD 4/2/2008
if ( [ -z $1 ] || [ -z $2 ] ); then
       echo ""
echo "****************************************************************************" echo "* Moves user profiles from their home directory to the profile directory on" echo "* //staff or //teach, depending on group membership, and updates their LDAP"
       echo "* entry accordingly"
echo "****************************************************************************"
       echo ""
       echo "usage: profiles.sh <userid> <group>"
       echo ""
else

       if [ $2 = "staff" ]; then
               server="staff"
       elif [ $2 = "teachers" ]; then
               server="teach"
       elif [ $2 = "students" ]; then
               server="teach"
       else exit
       fi

# echo "$server is the server" >> /net/staff/home/samba/netlogon/scripts/profiles.txt
       if [ ! -d /net/$server/home/samba/profiles/$1 ]; then
               if [ -d /net/$server/home/$1/profile ]
               then
echo "$1 Needs to have their profile moved" >> /net/staff/home/samba/netlogon/scripts/profiles.txt
                       smbldap-usermod -F "\\\\$server\\profiles\\$1" $1
mv /net/$server/home/$1/profile /net/$server/home/samba/profiles/$1 echo "$(date) Profile moved for $1" >> /net/staff/home/samba/netlogon/scripts/profiles.txt
               else
echo "$(date) $1 has no existing profile directory" >> /net/staff/home/samba/netlogon/scripts/profiles.txt
                       mkdir /net/$server/home/samba/profiles/$1
                       chown $1:$2 /net/$server/home/samba/profiles/$1
                       smbldap-usermod -F "\\\\$server\\profiles\\$1" $1
echo "$(date) Profile directory created for $1" >> /net/staff/home/samba/netlogon/scripts/profiles.txt
               fi
       fi
fi

-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to