Jump to content

[Request Help]Error mapping home directory with PoweShell script


Recommended Posts

Posted

I'm using a script to create new users and everything is working fine however when I try and log on with a user that has been created with this script it gives me the following error:

[color=#303336][font=inherit]A [/font][/color][color=#2B91AF][font=inherit]Problem[/font][/color][color=#303336][font=inherit] has occurred and your network home directory is not available[/font][/color][color=#303336][font=inherit].[/font][/color]
[color=#303336][font=inherit]
[/font][/color][color=#2B91AF][font=inherit]This[/font][/color][color=#303336][font=inherit] may be because a network file server is offline[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]

[/font][/color][color=#2B91AF][font=inherit]You[/font][/color][color=#303336][font=inherit] have been logged on with a temporary home drive [/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]H[/font][/color][color=#303336][font=inherit][/font][/color][color=#303336][font=inherit] which may be shared [/font][/color][color=#303336][font=inherit]with other users[/font][/color][color=#303336][font=inherit].[/font][/color]

 

The script creates the user and applies the correct permissions from what I can tell.

Here's the script:

 

[color=#858C93][font=inherit]# Import active directory module for running AD cmdlets[/font][/color][color=#303336][font=inherit]
[/font][/color][color=#2B91AF][font=inherit]Import[/font][/color][color=#303336][font=inherit]-[/font][/color][color=#2B91AF][font=inherit]Module[/font][/color][color=#303336][font=inherit] activedirectory

[/font][/color][color=#858C93][font=inherit]#Store the data from ADUsers.csv in the $ADUsers variable[/font][/color][color=#303336][font=inherit]
$ADUsers [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#2B91AF][font=inherit]Import[/font][/color][color=#303336][font=inherit]-[/font][/color][color=#303336][font=inherit]csv [/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]\Create_Staff_Accounts[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]csv

[/font][/color][color=#858C93][font=inherit]#Loop through each row containing user details in the CSV file [/font][/color][color=#303336][font=inherit]
foreach [/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$User [/font][/color][color=#101094][font=inherit]in[/font][/color][color=#303336][font=inherit] $ADUsers[/font][/color][color=#303336][font=inherit])[/font][/color][color=#303336][font=inherit]
[/font][/color][color=#303336][font=inherit]{[/font][/color][color=#303336][font=inherit]
[/font][/color][color=#858C93][font=inherit]#Read user data from each field in each row and assign the data to a variable as below[/font][/color][color=#303336][font=inherit]

$Username   [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]username
$Password   [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]password
$Firstname  [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]firstname
$Lastname   [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]lastname
$OU         [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]ou [/font][/color][color=#858C93][font=inherit]#This field refers to the OU the user account is to be created in[/font][/color][color=#303336][font=inherit]
$group      [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]group
$title      [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]title
$start      [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#303336][font=inherit] $User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]start
$Homedrive  [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#7D2727][font=inherit]"H:"[/font][/color][color=#303336][font=inherit]
$UserRoot [/font][/color][color=#303336][font=inherit]=[/font][/color][color=#7D2727][font=inherit]"\\servername\st$\"
$HomeDirectory = $UserRoot + $Username

#Check to see if the user already exists in AD
if (Get-ADUser -F {SamAccountName -eq $Username})
{
    #If user does exist, give a warning
    Write-Warning "[/font][/color][color=#303336][font=inherit]A user account with username $Username already exists [/font][/color][color=#101094][font=inherit]in[/font][/color][color=#2B91AF][font=inherit]Active[/font][/color][color=#2B91AF][font=inherit]Directory[/font][/color][color=#303336][font=inherit].[/font][/color][color=#7D2727][font=inherit]"
}
else
{
   #User does not exist then proceed to create the new user account

   #Account will be created in the OU provided by the $OU variable read from the CSV file
   New-ADUser `
       -SamAccountName $Username `
       -Name "[/font][/color][color=#303336][font=inherit]$Firstname $Lastname[/font][/color][color=#7D2727][font=inherit]" `
       -UserPrincipalName "[/font][/color][color=#303336][font=inherit]$[/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$username[/font][/color][color=#303336][font=inherit])[/font][/color][color=#7D2727][font=inherit]@domain[/font][/color][color=#303336][font=inherit].[/font][/color][color=#101094][font=inherit]local[/font][/color][color=#7D2727][font=inherit]" `
       -GivenName $Firstname `
       -Surname $Lastname `
       -Enabled $True `
       -DisplayName "[/font][/color][color=#303336][font=inherit]$Firstname $Lastname[/font][/color][color=#7D2727][font=inherit]" `
       -Path $OU `
       -AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
       -Homedrive $Homedrive `
       -HomeDirectory $HomeDirectory `
       -ScriptPath "[/font][/color][color=#303336][font=inherit]logonscript[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]bat[/font][/color][color=#7D2727][font=inherit]" `
       -Description "[/font][/color][color=#2B91AF][font=inherit]Staff[/font][/color][color=#2B91AF][font=inherit]Account[/font][/color][color=#303336][font=inherit]:[/font][/color][color=#303336][font=inherit]  $[/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$title[/font][/color][color=#303336][font=inherit])[/font][/color][color=#303336][font=inherit] from[/font][/color][color=#303336][font=inherit]:[/font][/color][color=#303336][font=inherit] $[/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$start[/font][/color][color=#303336][font=inherit])[/font][/color][color=#7D2727][font=inherit]"
        #-ChangePasswordAtLogon $True `



   #Now create the home folder and set modify permissions
   Add-ADGroupMember -Identity $group -Members $Username
   Add-ADGroupMember -Identity groupname -Members $Username
   Add-ADGroupMember -Identity groupname -Members $Username
   New-Item -ItemType Directory -Path "[/font][/color][color=#303336][font=inherit]\\servername\st$\$[/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]username[/font][/color][color=#303336][font=inherit])[/font][/color][color=#7D2727][font=inherit]"
   $path = Get-Item -Path "[/font][/color][color=#303336][font=inherit]\\servername\st$\$[/font][/color][color=#303336][font=inherit]([/font][/color][color=#303336][font=inherit]$User[/font][/color][color=#303336][font=inherit].[/font][/color][color=#303336][font=inherit]username[/font][/color][color=#303336][font=inherit])[/font][/color][color=#7D2727][font=inherit]"
   $acl = (Get-Item $path).GetAccessControl('Access')
   $AR = New-Object System.Security.AccessControl.FileSystemAccessRule($Username, 'Modify', 'ContainerInherit,ObjectInherit', 'None', 'Allow')
   $acl.SetAccessRule($AR)
   Set-Acl -Path $Path -AclObject $acl





}
} [/font][/color]

Thank you for your help and support.

 

 

Posted

Is the correct path showing in the User's properties inside AD Users & Computers? Does the folder exist on the server with the permissions your script has applied?

In the second half of the script you could also just use your $HomeDirectory variable rather than concatenating the username and the server path again.

Posted
Is the correct path showing in the User's properties inside AD Users & Computers? Does the folder exist on the server with the permissions your script has applied?

In the second half of the script you could also just use your $HomeDirectory variable rather than concatenating the username and the server path again.

 

Yeh, in AD I can see the correct path in the "connect" part, the folder is also created and the permissions are correct.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...