In my last post in this series on scripting user management (see Part 1, Part 2, Part 3, and Part 4 for reference), I left off with a couple different ways to set the Home Folder attribute, using
But I thought it was important to spend a moment and stress that when you’re scripting these changes, it’s all about what you *have* available to use as the basis of your queries and changes. What I mean is this: If you only have the
samAccountName (often called the User ID), you make the query/change one way; but if you have the
CN (known as the User Name), then you do it another way. Let me show you some examples…
As shown in Part 4, if you have the CN — as
DSMod requires — you can just make the call directly:
dsmod user "cn=Jeremy Pavlov,ou=Demo,dc=CoretekServices,dc=local" -hmdrv H: -hmdir "\\MyCompany.org\DFSPath\Homes\$username$"
But what if you don’t know the
CN, and all you have is the
samAccountName? Then in this case, you must use the
samAccountName to first *get* the
CN, then pipe the
CN through to the
DSMod command like this:
dsquery user -samid "JPavlov" | dsmod user -hmdrv H: -hmdir "\\MyCompany.org\DFSPath\Homes\$username$"
In the above example, we’re using
dsquery to simply retrieve the
samAccountName, as represented by the
samid flag; which returns a perfectly-formatted
CN that is used as input for the
DSMod. The bottom line is that you can make the change no matter which format you have the User name!
On the PowerShell side of things, you have a similar flexibility. The PowerShell example I used in Part 4 utilized the
samAccountName (as represented by the
-identity flag) instead of the
CN, like this:
Set-ADUser -identity "jpavlov" -homeDrive h: -homeDir "\\MyCompany.org\DFSPath\Homes\jpavlov"
But if you only have the
CN to start with, then we have to go fishing. We need to do a
Get-ADUser with the
-like option, and stuff it in a variable, prune that variable down to just what we want, and then pass it on to the
Set-ADUser command. Here’s one example how to get it done, like this:
$Dude = Get-ADUser -Filter 'Name -like "Jeremy Pavlov"' $DudeSamId = $Dude.SamAccountName Set-ADUser -identity $DudeSamId -homeDrive h: -homeDir "\\MyCompany.org\DFSPath\Homes\$DudeSamId"
And with that, we’ll press pause, until next time…
Next time… Let’s wrap this scripting up… See you then!