First, the code for Create MySites Web Application and Create MySites Site Collection must be commented out in the function CreateUserProfileServiceApplication as this code will only create a path based site collection. Alternatively the MySite Host can be created during the web application provisioning if its included in the site collections list.
The second issue is the site URL is not detected properly as the script uses the following logic to determine the mysite URL:
$mySiteWebApp = $xmlinput.Configuration.WebApplications.WebApplication | Where {$_.type -eq "MySiteHost"}
$mySiteURL = $mySiteWebApp.url
$mySitePort = $mySiteWebApp.port
This URL is the host name site collection URL not the MySite URL.
Comments: ** Comment from web user: platinumdogs **
HNSC site collections ARE are a supported approach with Mysites, the 1 web app approach works just fine. I've setup both 2010 and 2013 environments in this way using AutoSPInstaller.
I used the 'Portal' type web application for the 1 web app including a managedpath of personal, my edited web app/user profile service app configuration is;
```
<WebApplications AddURLsToHOSTS="true">
<WebApplication type="Portal"
name="Portal"
applicationPool="SharePoint Default Web Applications"
url="http://sp2013"
port="80"
UseHostHeader="false"
AddURLToLocalIntranetZone="true"
GrantCurrentUserFullControl="true"
useClaims="true"
useBasicAuthentication="false"
useOnlineWebPartCatalog="false">
<Database>
<Name>Portal_Content</Name>
<DBServer></DBServer>
<DBAlias Create="false"
DBInstance="SERVER\INSTANCE"
DBPort="" />
</Database>
<ManagedPaths>
<ManagedPath relativeUrl="help" explicit="true" />
<ManagedPath relativeUrl="personal" explicit="false" />
</ManagedPaths>
<SiteCollections>
<SiteCollection siteUrl="http://sp2013"
HostNamedSiteCollection="false"
Owner="xxxxxxxxxxxxx"
Name="Portal Home"
Description="Portal Home Site"
CustomDatabase=""
SearchUrl="http://search.pdogs.local"
CustomTemplate="false"
Template=""
LCID="1033"
Locale="en-gb"
Time24="true">
</SiteCollection>
<SiteCollection siteUrl="http://team.pdogs.local"
HostNamedSiteCollection="true"
Owner="xxxxxxxxxxxxx"
Name="Portal Home"
Description="Portal Home Site"
CustomDatabase=""
SearchUrl="http://search.pdogs.local"
CustomTemplate="false"
Template="STS#0"
LCID="1033"
Locale="en-gb"
Time24="true">
</SiteCollection>
<SiteCollection siteUrl="http://my.pdogs.local"
HostNamedSiteCollection="true"
Owner=“xxxxxxxxxxxxx”
Name="My Site Host"
Description="My Site Host"
CustomDatabase=""
SearchUrl="http://search.pdogs.local"
CustomTemplate="false"
Template="SPSMSITEHOST#0"
LCID="1033"
Locale="en-gb"
Time24="true">
</SiteCollection>
</SiteCollections>
</WebApplication>
</WebApplications>
<UserProfileServiceApp Provision="true"
Name="User Profile Service Application"
ProxyName="User Profile Service Application"
MySiteHostLocation="http://my.pdogs.local"
MySiteManagedPath="personal"
EnableNetBIOSDomainNames="false"
StartProfileSync="true"
CreateDefaultSyncConnection="false"
SyncConnectionAccount=“xxxxx”
SyncConnectionAccountPassword=“xxxxx” >
<Database>
<ProfileDB>Profile</ProfileDB>
<SyncDB>Sync</SyncDB>
<SocialDB>Social</SocialDB>
<DBServer></DBServer>
<DBAlias Create="false"
DBInstance="SERVER\INSTANCE"
DBPort="" />
</Database>
</UserProfileServiceApp>
```
About the only thing this doesn't do is assign the search crawl account permissions on the User Profile Service Application