use this PowerShell Script to accomplish the task. This will attempt to join a specific OU. If the record already exists in that OU it will join the domain.
$domain= "domain.org"
$password= "<user password>" | ConvertTo-SecureString -asPlainText -Force
#enter user account that will be used to join domain
$user= "$domain\<user>"
$cred= New-Object System.Management.Automation.PSCredential($user,$password)
#edit for OU path
$oupath = 'OU=Laptops,OU=Workstations,DC=domain,DC=ORG'
#add computer to OU
Add-Computer -domainname $domain -oupath $oupath -Credential $cred -ErrorAction silentlycontinue
#add computer to domain
Add-Computer -DomainName $domain -Credential $cred
Save this powershell script as a .ps1. The create a .bat file that has the command line below. Zip those two up together.
powershell.exe -nologo -executionpolicy bypass -noprofile -file <name of your script>.ps1
If it's a brand new machine it will join the OU first. If it's a machine being reimaged it will try to join the OU, realize there's a record there, and then just join the domain. Keeping the existing record in the OU.