If you just run the dsquery in the context of a called batch file with more than one object selected from your dsquery, you'll get "dsmove failed (user) is an unknown parameter".
I have two batches (one for computer accounts and one for user accounts) that run monthly from windows sch tasks. They have the following code:
For Computers:
for /f "Tokens=*" %%s in ('dsquery computer -inactive 5 -limit 0') do (
DSMOVE %%s -newparent "OU=Computers,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local"
)
For Users:
for /f "Tokens=*" %%s in ('dsquery user -inactive 5 -limit 0') do (
DSMOVE %%s -newparent "OU=Users,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local"
)
I have GPOs applied to those "Quarantine" OUs that have logon prompts to notify the user that the user account, or the computer account, is going to be deleted and to contact the Help Desk if they believe that is in error. The GPOs also do some lock down actions. Then I review the moved objects for manually delete if I don't see any exceptions (like a user on a long vacation, or offline, but important server).
You can change the "do" dsmove to dsrm, if you want to skip the OU move and review.
See here: Active Directory Script: DSMOVE failed