Skip to main content
Question

Mac mapping drive script


Forum|alt.badge.img+6

Hi Everyone

Do anyone have best mapping drive script that could share with me. I would like script that do similar like windows mapping script.
that is when a user loggin (using windows AD account) Mac then it auto mount that user home drive and staff share
Please forgive me to ask a basic question because i am a newbie to the Mac world.

Cheers

7 replies

bentoms
Forum|alt.badge.img+35
  • Legendary Contributor
  • 4331 replies
  • March 13, 2012

I've an applescript app that maps drives & printers based on group membership.

http://macmule.com/2011/09/08/how-to-map-drives-printers-based-on-ad-group-membership-on-osx/


Forum|alt.badge.img+20
  • Valued Contributor
  • 732 replies
  • March 13, 2012

I use the drive mapping script from JAMF and an Extension Attribute + Smart Folder to map them to an AD group.


Forum|alt.badge.img+4
  • Contributor
  • 10 replies
  • March 13, 2012

Hi Matt, where do I find the JAMF mapping script and Extension Attribute?


Forum|alt.badge.img+5
  • Contributor
  • 54 replies
  • March 14, 2012

Jeff, I believe Matt's referring to the mountNetworkShare.sh script in the Resource Kit. I've used a variant of that with good effect.

Cheers.


georgecm12
Forum|alt.badge.img+12
  • Valued Contributor
  • 183 replies
  • March 14, 2012

Here's ours:

#!/bin/bash 
currentuser=$USER 
smbhome="$(dscl '/Active Directory/All Domains' -read /Users/$currentuser SMBHome)" 
if [ $? != "0" ] ; then 
        echo could not get smb home.  Offline? 
        exit 
fi 

smbhome=$(echo $smbhome|awk -F ': ' '{printf $2}'|perl -p -e 's/([^\\:A-Za-z0-9-._~])/sprintf("%%%02X", ord($1))/seg'|sed -e 's/\\///g') 


if [ "$smbhome" == '' ] ; then 
        echo could not get smb home.  Not defined for user $currentuser? 
        exit 
fi 
out='<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
        <key>URL</key> 
        <string>smb:'$smbhome'</string> 
</dict> 
</plist>' 
echo $out > ~/Q-Drive.inetloc 

/Library/Application Support/Q-Drive/seticon -d /Library/Application Support/Q-Drive/Q-drive.icns /Users/$USER/Q-Drive.inetloc

/Library/Application Support/Q-Drive/dockutil --add ~/Q-Drive.inetloc

mkdir /Volumes/$currentuser
mount_smbfs $smbhome /Volumes/$currentuser

exit 0

A bit of an explanation is needed for a bit of this. What this script does is check Active Directory for their SMB home folder. Once obtained, it writes out an .inetloc shortcut file and places it into the user's local home directory.

It then uses a program called "seticon" that I found, part of a larger set of tools called "osxiconutils," to change the icon for the file, as we wanted the shortcut to be easily identifiable. (Seticon is very old. It required recompiling to even work on current systems, and even then it throws errors in the console about deprecated methods... but it still works as of 10.6.8.)

It then uses another old utility, dockutil, to add the item to the dock.

Finally (phew!) it mounts the drive using mount_smbfs.

This script has adequately handled even odd Windows home folders that have unusual characters or spaces in them. I make no claims that it will handle every instance, but so far, it does pretty well.


Forum|alt.badge.img+6
  • Author
  • Contributor
  • 14 replies
  • March 17, 2012

Cool thank you all


queenwood
Forum|alt.badge.img+3
  • New Contributor
  • 4 replies
  • June 18, 2015

Sorry to reopen.

But why is it accepted that a MAC OS X 10.7.4 through to our latest 10.10.3 can't automount the network Home Directory?
I am on the phone to Apple now but I don't hold much help.
When I visit the Directory Utility under users and look at the Local/Default I note the entry OriginalHomeDirectory is <home_dir><url>smb://servername/level1/</url><path>level2/level3/userhome/</path><home_dir>
but in the Active Directory the entry HomeDirectory is
<home_dir><url>smb://servername/level1/level2/level3/userhome</url><path>/</path><home_dir>
The issue is that the regular user doesn't have permission to //servername/path1/ but they do
to servername/level1/level2/level3/userhome/ I know the network admins are loath to change the permission to give all users access to the higher directory path but that is the only way to make it work on the apple (without scripts are mods on the mac).
If this worked then having a script to create the link is unnessisary.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings