{"id":875,"date":"2026-10-19T13:00:00","date_gmt":"2026-10-19T13:00:00","guid":{"rendered":"https:\/\/vpslake.com\/blog\/?p=875"},"modified":"2026-10-19T13:00:00","modified_gmt":"2026-10-19T13:00:00","slug":"reset-windows-password","status":"publish","type":"post","link":"https:\/\/vpslake.com\/blog\/2026\/10\/19\/reset-windows-password\/","title":{"rendered":"How to Reset a Windows Server 2012 R2 Password"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When you need to reset Windows password access on a Windows Server 2012 R2 VPS, use its VNC console and Windows Recovery Environment instead of reinstalling the server. The recovery, password change, cleanup, and verification normally take about 15 minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>A Windows Server 2012 R2 VPS with the local account you are authorized to recover. The procedure is for local accounts, not domain accounts.<\/li>\n\n\n<li>Access to the <a href=\"https:\/\/vpslake.com\/buy-windows-rdp\">VPSLake Windows RDP service<\/a>, the <a href=\"https:\/\/my.vpslake.com\" target=\"_blank\" rel=\"noopener\">VPSLake client area<\/a>, the VPS control panel (Virtualizor), and its VNC console.<\/li>\n\n\n<li>Permission to power-cycle the VPS and attach or detach virtual CD\/DVD media.<\/li>\n\n\n<li>A Windows Server 2012 R2 installation ISO. If the server disk uses VirtIO and is invisible in recovery, you also need a matching VirtIO driver ISO.<\/li>\n\n\n<li>A strong, unique replacement password ready to enter at the console. Do not paste it into a ticket, chat, article, or command that records shell history.<\/li>\n\n\n<li>The server should not be protected by BitLocker unless you have its recovery key; WinRE cannot edit a locked volume without it.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Boot into Windows Recovery Environment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WinRE provides a command prompt before Windows signs in, so you can work on the installed system while the locked account is offline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the VPSLake client area, open the service and launch its VPS control panel. In <strong>Virtualizor \u2192 ISO\/Media<\/strong> or the equivalent virtual CD\/DVD control, mount the Windows Server 2012 R2 ISO, then open <strong>Virtualizor \u2192 VNC<\/strong> and reboot the VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the boot prompt, choose the virtual CD\/DVD drive. On Windows Setup, select the language and keyboard layout, then open <strong>Repair your computer \u2192 Troubleshoot \u2192 Advanced options \u2192 Command Prompt<\/strong>. If the prompt starts at <code>X:<\/code>, that is the temporary recovery volume, not necessarily the Windows installation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft describes this recovery environment in its <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows-hardware\/manufacture\/desktop\/windows-recovery-environment--windows-re--technical-reference?view=windows-11\" target=\"_blank\" rel=\"noopener\">Windows Recovery Environment reference<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Make the Windows volume visible and find its drive letter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The recovery environment may lack the VirtIO storage driver, and its drive letters can differ from those used during a normal boot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First check whether the installed disk is already present:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>diskpart\nlist volume\nexit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the Windows volume is missing, eject the Windows ISO in Virtualizor and mount the VirtIO driver ISO. Identify the driver disc and locate the storage driver:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dir D:\\\ndir D:\\viostor \/s \/b | findstr \/i \"viostor.inf\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For a typical Windows Server 2012 R2 VirtIO image, load the 64-bit driver with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drvload D:\\viostor\\2K12R2\\amd64\\viostor.inf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">WinRE should report that the driver was added. If the <code>dir<\/code> command showed the file under a different folder, use that exact <code>viostor.inf<\/code> path instead. Eject the driver ISO and mount the Windows ISO again before continuing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run DiskPart again and identify the large NTFS volume. Confirm its contents rather than assuming it is <code>C:<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>diskpart\nlist volume\nexit\ndir C:\\Windows\\System32\\cmd.exe\ndir D:\\Windows\\System32\\cmd.exe\ndir E:\\Windows\\System32\\cmd.exe<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The correct drive returns a file listing for <code>cmd.exe<\/code>. Use that letter as <code>WINDOWS_DRIVE<\/code> below; for example, if the file is on <code>E:<\/code>, replace <code>WINDOWS_DRIVE:<\/code> with <code>E:<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Temporarily open a command prompt at the sign-in screen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Making a backup first lets you restore the original accessibility program immediately after changing the password.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change to the installed Windows system directory. The commands below temporarily replace <code>Utilman.exe<\/code>, which is launched by the Ease of access button, with <code>cmd.exe<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WINDOWS_DRIVE:\ncd \\Windows\\System32\nif exist utilman.exe.bak echo STOP_BACKUP_EXISTS\nren utilman.exe utilman.exe.bak\ncopy cmd.exe utilman.exe\ndir utilman.exe utilman.exe.bak<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the first command prints <code>STOP_BACKUP_EXISTS<\/code>, stop and restore that existing backup before doing anything else. A successful <code>copy<\/code> reports <code>1 file(s) copied<\/code>, and the directory listing should show both <code>utilman.exe<\/code> and <code>utilman.exe.bak<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Close Command Prompt, choose <strong>Continue<\/strong> to boot from the internal disk, and detach the Windows ISO or change the boot order so the VPS starts from its virtual disk. At the Windows sign-in screen, select the <strong>Ease of access<\/strong> button. A command prompt should open with the permissions needed for the local account reset.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Set a new local password<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Using an asterisk makes Windows request the password interactively, so the new credential is not displayed in the command line.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">List local accounts and copy the exact account name, including any spaces or capitalization shown:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>net user<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reset the intended local account, replacing the placeholder with that name:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>net user YOUR_LOCAL_USERNAME *<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Type the new password twice when prompted. Windows should display:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Type a password for the user:\nRetype the password to confirm:\nThe command completed successfully.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the account is disabled, enable it from the same authorized recovery prompt and then repeat the reset:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>net user YOUR_LOCAL_USERNAME \/active:yes\nnet user YOUR_LOCAL_USERNAME *<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This changes a local account on the installed server. It does not reset a domain identity or a Microsoft account. See Microsoft\u2019s <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows-server\/administration\/windows-commands\/net-user\" target=\"_blank\" rel=\"noopener\"><code>net user<\/code> command reference<\/a> for the supported syntax.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Restore the original accessibility program<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Leaving <code>cmd.exe<\/code> in place would give anyone who reaches the sign-in screen an elevated command prompt, so complete this cleanup before using the server normally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Boot from the Windows ISO again and open <strong>Repair your computer \u2192 Troubleshoot \u2192 Advanced options \u2192 Command Prompt<\/strong>. Load the VirtIO driver again if the Windows volume is not visible, identify the correct drive as in Step 2, and restore the saved file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WINDOWS_DRIVE:\ncd \\Windows\\System32\ndel utilman.exe\nren utilman.exe.bak utilman.exe\ndir utilman.exe\nif exist utilman.exe.bak echo BACKUP_REMAINS<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The listing should show the restored <code>utilman.exe<\/code>, and <code>BACKUP_REMAINS<\/code> should not appear. Detach the ISO, boot from the VPS disk, and keep the VNC console available until the new RDP login succeeds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the new Windows password<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First sign in at the normal Windows console with the new credential. Open an elevated Command Prompt and inspect the local account:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>net user YOUR_LOCAL_USERNAME<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The important fields should resemble this, with a recent date on your server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Account active               Yes\nPassword last set            &lt;recent date and time&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now disconnect the current session and start a fresh RDP connection. For a local account, use <code>SERVER_NAME\\YOUR_LOCAL_USERNAME<\/code> or <code>.\\YOUR_LOCAL_USERNAME<\/code>, then enter the new password. Finally, select the sign-in screen\u2019s <strong>Ease of access<\/strong> button; it should open the normal accessibility options rather than Command Prompt.<\/p>\n\n\n\n<aside class=\"vl-element vl-cta-banner\" aria-label=\"Need a Windows VPS?\">\n\t<div class=\"vl-cta-banner__content\">\n\t\t<p class=\"vl-cta-banner__eyebrow\">Windows recovery access<\/p>\n\t\t<h3 class=\"vl-cta-banner__title\">Need a Windows VPS?<\/h3>\n\t\t<p class=\"vl-cta-banner__text\">Get Windows hosting with console access for authorized password recovery and remote administration.<\/p>\n\t<\/div>\n\t<a class=\"vl-cta-banner__button\" href=\"\/buy-windows-rdp\" aria-label=\"View Windows RDP\">View Windows RDP<\/a>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>list volume<\/code> does not show the Windows disk<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WinRE is usually missing the VirtIO storage driver, or the driver ISO is not attached. Mount the matching driver ISO in Virtualizor, locate <code>viostor.inf<\/code> under <code>D:\\viostor<\/code>, run <code>drvload<\/code> against the 64-bit file, and repeat <code>diskpart<\/code> \u2192 <code>list volume<\/code>. Never initialize or format a disk from this recovery session.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>ren utilman.exe utilman.exe.bak<\/code> says the file was not found<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The selected drive is probably <code>X:<\/code> or another recovery volume. Test each candidate with <code>dir DRIVE:\\Windows\\System32\\utilman.exe<\/code> and use the volume that contains the installed Windows directory. If no volume contains that file, stop and resolve the storage or BitLocker issue before changing anything.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ease of access still opens the normal tools<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The replacement may have been made on the wrong drive, or the VPS may have booted from the ISO again. Recheck the <code>cmd.exe<\/code> listing, confirm that the copy reported one file copied, detach the ISO, and boot from the virtual disk. Restore the original file after the password change even if the first attempt did not work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The new password is rejected over RDP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The account name may have the wrong local\/domain prefix, the RDP client may be sending a saved password, or the local account may still be disabled. Confirm the account with <code>net user<\/code>, connect as <code>SERVER_NAME\\USERNAME<\/code> or <code>.\\USERNAME<\/code>, and remove the server entry from <strong>Control Panel \u2192 Credential Manager \u2192 Windows Credentials<\/strong> on the client before trying again.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardening after recovery<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Detach all recovery and driver ISOs, then remove temporary snapshots or copies that contain the replacement password.<\/li>\n\n\n<li>Store the new credential in a password manager and use a separate named administrator for routine work.<\/li>\n\n\n<li>Restrict RDP to trusted addresses or a VPN where possible, and keep the Windows firewall enabled.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does this method work on Windows Server 2016, 2019, or 2022?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The WinRE and <code>net user<\/code> portions also apply to later Windows Server releases, but the installation media and VirtIO driver folder must match the installed release. Use the corresponding recovery ISO and confirm the target volume before editing system files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I reset a domain administrator password this way?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. This procedure changes a local account database on one server. A domain password must be changed through the domain controller or the organization\u2019s approved identity-management process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I do this without VNC?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not reliably. The VPS must be booted from virtual media and the recovery prompt is outside a normal RDP session, so you need an out-of-band console such as VNC or an equivalent provider console.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What if BitLocker asks for a recovery key?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Stop at that screen and retrieve the authorized BitLocker recovery key. Do not attempt to bypass encryption or overwrite the volume; without the key, offline system-file changes cannot proceed safely.<\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Does this method work on Windows Server 2016, 2019, or 2022?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"The WinRE and `net user` portions also apply to later Windows Server releases, but the installation media and VirtIO driver folder must match the installed release. Use the corresponding recovery ISO and confirm the target volume before editing system files.\"}}, {\"@type\": \"Question\", \"name\": \"Can I reset a domain administrator password this way?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. This procedure changes a local account database on one server. A domain password must be changed through the domain controller or the organization\u2019s approved identity-management process.\"}}, {\"@type\": \"Question\", \"name\": \"Can I do this without VNC?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Not reliably. The VPS must be booted from virtual media and the recovery prompt is outside a normal RDP session, so you need an out-of-band console such as VNC or an equivalent provider console.\"}}, {\"@type\": \"Question\", \"name\": \"What if BitLocker asks for a recovery key?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Stop at that screen and retrieve the authorized BitLocker recovery key. Do not attempt to bypass encryption or overwrite the volume; without the key, offline system-file changes cannot proceed safely.\"}}]}<\/script>\n\n","protected":false},"excerpt":{"rendered":"Reset Windows password access on Server 2012 R2 from VNC and WinRE, set a new local credential, restore system files, and verify RDP login safely.","protected":false},"author":1,"featured_media":876,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[5,11],"tags":[84,32,75,82],"class_list":["post-875","post","type-post","status-publish","format-standard","has-post-thumbnail","category-guides","category-windows-server","tag-password-reset","tag-rdp","tag-windows-recovery","tag-windows-server-2012-r2","cs-entry"],"_links":{"self":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/comments?post=875"}],"version-history":[{"count":1,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/875\/revisions"}],"predecessor-version":[{"id":3642,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/875\/revisions\/3642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media\/876"}],"wp:attachment":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media?parent=875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/categories?post=875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/tags?post=875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}