Script to find the user account


Recommended Posts

Hi Guys,

I have recently taken over a network where it appears the user folders are never maintained, would someone be able to code a script for me that will list the folders that dont have a user account in AD, and possibly move the folders around according to the OU structure.

Link to comment
https://www.neowin.net/forum/topic/666588-script-to-find-the-user-account/
Share on other sites

... oh wow

i'm not sure if this can be done

Sure it can :) ... With a bit of work!

I have recently taken over a network where it appears the user folders are never maintained, would someone be able to code a script for me that will list the folders that dont have a user account in AD...

You're in luck as I've just gone through this exercise for our organisation specifically to identify orphaned home directories and how much space they were consuming. You should be able to easily adapt this VB script :) Just change the strHomeDirPath & strDomain variables and run it from a Command Prompt (e.g., cscript myvbscript.vbs)...

' Force explicit variable declaration
Option Explicit

' Required to catch & continue on from errors
On Error Resume Next

' Declare and initialise constants
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_1779 = 1
Const ADS_NAME_TYPE_NT4 = 3

' Declare variables
Dim objFSO, objFolder, objSubFolder, colSubFolders, objNameTranslate, objUser
Dim strDomain, strHomeDirPath, strUserName, strUserNameDN
Dim intFolderSize

' Initialise variables
strHomeDirPath = "D:\Home\"
strDomain = "MYDOMAIN"
Set objNameTranslate = CreateObject("NameTranslate")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strHomeDirPath)
Set colSubFolders = objFolder.SubFolders

' Output the column headings for our .csv formatted dump
WScript.Echo "Folder Name"& "," & "AD User Name" & "," & "Folder Size" & "," & "Valid/Invalid AD User"

' Loop through all home directories
For Each objSubFolder in colSubFolders
	' Get the folder name (i.e., username)
	strUserName = objSubFolder.Name

	' Translate the username to a distinguished name
	objNameTranslate.Init ADS_NAME_INITTYPE_GC, ""
	objNameTranslate.Set ADS_NAME_TYPE_NT4, strDomain & "\" & strUserName
	strUserNameDN = objNameTranslate.Get(ADS_NAME_TYPE_1779)

	' Get the folder size in megabytes with 1 decimal point
	intFolderSize = Round(objSubFolder.Size / 1024 / 1024, 1)

	' Check if translation failed (i.e., user does not exist in Active Directory)
	If Err.Number <> 0 Then
		' The user no longer exists in Active Directory; don't do anything
		WScript.Echo strUserName & "," & "," & intFolderSize & "," & "invalid"
	Else
		' The user exists in Active Directory; bind to the user using the LDAP provider and get their Display Name
		Set objUser = GetObject("LDAP://" & strUserNameDN)
		WScript.Echo strUserName & "," & objUser.displayName & "," & intFolderSize & "," & "valid"
	End If

	' Clear any errors before looping again
	Err.Clear
Next

' Object destruction
Set objFSO = Nothing
Set colSubFolders = Nothing
Set objFolder = Nothing
Set objSubFolder = Nothing
Set objNameTranslate = Nothing
Set objUser = Nothing

' Quit
WScript.Quit

That'll give you a comma separated file which you can import into Excel (or Numbers if you're a Mac fan given your signature? :p) if you need to produce a report/manipulate the data further - or you could directly send the output to a file to make it easier to work with immediately e.g., cscript myvbscript.vbs > myoutputfile.csv. If you're wanting to move/delete the orphaned home directories right away, just add the required code into the Else branch of the If/Else statement.

As for the second part of your request...

... possibly move the folders around according to the OU structure

I'm not entirely sure what you want to do here. Are you asking whether you can use a script to move a user's home directory to another folder based on the user's Organisational Unit? Or...?

Edited by fault
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Your favorite clickbait gets a clickbait feature? Shame on you!
    • Try asking people. They are using it, even the non tech ones.
    • Report: iPhone Air isn't dead, and a second-generation model is planned for 2027 by Hamid Ganji Image via Apple Since the launch of the iPhone Air, we’ve heard conflicting rumors and speculation about the fate of Apple's ultra-thin iPhone. As it turns out, Apple is not going to ditch the Air model from its lineup, and a second generation is already planned for next year. As reported by Bloomberg’s Mark Gurman, citing people familiar with the matter, the second-generation iPhone Air is planned for spring 2027 and is poised to receive notable upgrades. The upgraded model, codenamed V62, will reportedly feature an additional rear camera for ultrawide photography. The new camera system is said to be in advanced testing within Apple. Gurman also says the second-generation iPhone Air could offer better battery life, either through a larger battery or software improvements. The overall design of the device is expected to remain unchanged. A single rear camera and below-average battery life were among the biggest drawbacks of the first-generation iPhone Air despite its $999 price tag. Hopefully, the next iPhone Air will fare better. Gurman also added that the device will be powered by the A20 Pro processor. The release of the second-generation iPhone Air in spring 2027 aligns with previous reports that Apple is shaking up the iPhone release cycle. Accordingly, the iPhone 18 Pro, iPhone 18 Pro Max, and the company’s first foldable iPhone are expected to launch in September 2026, followed by the iPhone 18 and the new iPhone Air roughly six months later. The 20th-anniversary iPhone is also reportedly planned for fall 2027. Meanwhile, if you’re planning to buy the refreshed iPhone Air, Apple might surprise you with a new price tag. As we reported today, CEO Tim Cook confirmed that price increases are on the way due to rising memory chip costs and a severe shortage. With that in mind, analysts estimate that the base iPhone 18 Pro could cost as much as $1,399 this year. The current $999 iPhone Air may not be immune to those price hikes.
    • I thought you could sign up using alt email?
  • Recent Achievements

    • Week One Done
      Classifyskilleducation earned a badge
      Week One Done
    • One Month Later
      eurospharma62 earned a badge
      One Month Later
    • Week One Done
      With What earned a badge
      Week One Done
    • Week One Done
      Harris Gilbert earned a badge
      Week One Done
    • One Month Later
      Vincian earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      545
    2. 2
      +Edouard
      168
    3. 3
      PsYcHoKiLLa
      80
    4. 4
      ATLien_0
      64
    5. 5
      neufuse
      64
  • Tell a friend

    Love Neowin? Tell a friend!