The management shell is the only way to import a site without, restoring from a backup, or recovering data from an unattached database.
Here’s what you do to copy sites around:
login into your source server with an account that has WSS_Admin_WPG (content db where site resides), SharePoint_Shell_Access (config db and Admin db), and SA (SQL Server role) on the Backend database.
Open the management shell as an admin
enter this command, where the URL is the URL to the site you wish to export, complete with all users, versions, and security settings:
Make sure the path is a shared location.
Export-SPweb URL -Path e:\thisIsWhere_Istore_my_contentMigrationpackage\filename_of_contentMigrationPackage.cmp -includeusersecurity -includeversions All -noFileCompression
copy the .cmp file (Note: I’m not sure if .cmp stands for content migration package; but that’s what it seems to do.)
over to the target server, and into a shared path, a path that is shared out to the account that you used to export the SharePoint web.
Create a blank site, based on the custom site template known as… wait for it… “Select Template Later”
That step is key, unless you know the exact template that the source site was built from, you should select the “< Select Template Later>” off the custom tab
Now on the target server, logged in with an account that is a member of the local group WSS_Admin_WPG and SA on the Backend database run this:
Import-SPweb URL -Path e:\PathToWhereICopiedTheCMP\NameOfCMP.cmp -force -includeUserSecurity - noFileCompression -updateVersions append