Files
MacAdmin/Jamf Pro/Scripts/config_SMBProtocol.sh
Zack T 306033d686 v2.0 = Made as a JSS Parameter Script
+ Adjusted script to allow it to be configured by a JSS Script Parameter.
+ Accounted for different OS Versions and how SMB is configured in each.
2017-08-29 11:15:04 -07:00

83 lines
2.5 KiB
Bash

#!/bin/bash
###################################################################################################
# Script Name: config_SMBProtocol.sh
# By: Zack Thompson / Created: 7/3/2017
# Version: 2.0 / Updated: 7/19/2017 / By: ZT
#
# Description: This script allows the configuration of the SMB Protocol on a Mac.
#
###################################################################################################
/bin/echo "Configuring the SMB Protocols allowed on this Mac..."
##################################################
# Define Variables
OSVersion=$(/usr/bin/sw_vers -productVersion | /usr/bin/awk -F . '{print $1"."$2}')
if [[ $OSVersion == 10\.12 ]]; then
smbKey="sprotocol_vers_map"
smbValue="${smbKey}=${6}"
elif [[ $OSVersion == 10\.11 || $OSVersion == 10\.10 ]]; then
smbKey="smb_neg"
smbValue="${smbKey}=${5}"
elif [[ $OSVersion == 10\.9 ]]; then
smbKey="smb_neg"
smbValue="${smbKey}=${4}"
else
/bin/echo "This OS only supports SMBv1."
exit 0
fi
##################################################
# Check if file exists.
if [[ -e /etc/nsmb.conf ]]; then
# If it exists, check if the SMB Protocol is already set.
nsmbSMBProtocol=$(/bin/cat /etc/nsmb.conf | /usr/bin/grep $smbKey)
# Check if Protocol is currently configured.
if [[ -n $nsmbSMBProtocol ]]; then
# If it is currently configured...
# Backup file.
/bin/mv /etc/nsmb.conf /etc/nsmb.conf.orig
# Remove configuration from original file and redirect the output to proper file.
/usr/bin/awk "!/$smbKey/" /etc/nsmb.conf.orig > /etc/nsmb.conf
fi
# If/once the Protocol is not configured....
# Check if default section is defined.
nsmbContents=$(/bin/cat /etc/nsmb.conf | /usr/bin/grep "default")
# Does default section exist?
if [[ $nsmbContents == "[default]" ]]; then
# If it is not empty...
# Backup file.
/bin/mv /etc/nsmb.conf /etc/nsmb.conf.bak
# Insert configuration into contents of backup file and redirect the output to proper file.
/usr/bin/awk '/default/ {print; print $smbValue;next}1' /etc/nsmb.conf.bak > /etc/nsmb.conf
else
# If the defaults section does not exist...
# Insert the defaults section and the configuration.
/bin/echo '[default]' >> /etc/nsmb.conf
/bin/echo "$smbValue" >> /etc/nsmb.conf
fi
else
# If the file does not exist...
# Create the file.
/usr/bin/touch /etc/nsmb.conf
# Insert the defaults section and the configuration.
/bin/echo '[default]' >> /etc/nsmb.conf
/bin/echo "$smbValue" >> /etc/nsmb.conf
fi
/bin/echo "Configuration Complete!"
exit 0