How to change drive letter using PowerShell on Windows 10

If the a new drive is missing on your device, it could be a letter assignment issue, and here's the fix on Windows 10.

Avatar for Mauro Huculak

  • To change the drive letter on Windows 10, open PowerShell (admin) and run the “Get-Partition -DiskNumber DRIVE-NUMBER | Set-Partition -NewDriveLetter NEW-LETTER” command.

On Windows 10, when you connect an internal or external drive to your computer, the system assigns a drive letter automatically to identify the logical partition inside the hard drive.

A drive letter (or device letter) can be any letter from the English alphabet, excluding the letter “C,” as it’s reserved for the main drive that contains the operating system. Although the assignment process happens automatically, sometimes Windows might try to assign a letter already in use, preventing the new drive from appearing on File Explorer.

If you run into this problem or simply want to change the drive letter for any reason, Windows 10 offers multiple ways to complete this configuration, but using PowerShell is perhaps one of the most reliable ways to assign a new drive letter.

In this guide , I will explain the steps to change the drive letter using the PowerShell command-line console on Windows 10. (These steps should also work on Windows 11 and higher releases.)

Change drive letter using PowerShell on Windows 10

To change the drive letter through PowerShell commands, use these steps:

Open Start on Windows 10.

Search for  PowerShell , right-click the result, and select the Run as administrator option.

Type the following command to identify the hard drive you want to change the letter and press Enter :

Type the following command to view the partitions and letters for a specific drive and press Enter :

In the command, update “1” to the disk number of the drive to change.

(Option 1) Type the following command to assign or change the drive letter if the hard drive has only one partition and press Enter :

In the above command, update “1” to the disk number of the drive to change and “G” to the letter you want to assign to the storage.

Change drive letter using PowerShell

(Option 2) Type the following command to change the drive letter if the hard drive has multiple partitions and press Enter:

In the command, update “G” for the current letter and “H” for the new letter you want to appear on the drive.

PowerShell change drive letter multiple partitions

(Option 3) Type the following command to assign a drive letter to a partition without any letter and press Enter:

In the command, update “1” for the drive number containing the partition, then change the other “1” for the partition number without a letter, and then “K” for the new drive letter. 

PowerShell assign letter partition without letter

Once you complete the steps, the drive will have a new letter assignment and appear in File Explorer.

Avatar for Mauro Huculak

Mauro Huculak is a Windows How-To Expert who started Pureinfotech in 2010 as an independent online publication. He has also been a Windows Central contributor for nearly a decade. Mauro has over 14 years of experience writing comprehensive guides and creating professional videos about Windows and software, including Android and Linux. Before becoming a technology writer, he was an IT administrator for seven years. In total, Mauro has over 20 years of combined experience in technology. Throughout his career, he achieved different professional certifications from Microsoft (MSCA), Cisco (CCNP), VMware (VCP), and CompTIA (A+ and Network+), and he has been recognized as a Microsoft MVP for many years. You can follow him on X (Twitter) , YouTube , LinkedIn and About.me . Email him at [email protected] .

  • Microsoft account vs. local account, what’s the difference on Windows?
  • How to set Google as your default search engine on Microsoft Edge

We hate spam as much as you! Unsubscribe any time Powered by follow.it ( Privacy ), our Privacy .

drive letter assignment powershell

Changing Drive Letters and Labels via PowerShell

February 19th, 2021 8 0

Q: I want to change the drive letter and the drive label for a new USB drive. Is there a way with PowerShell?

A: Of course. One way is to use WMI and the CIM cmdlets.

PowerShell does not have a cmdlet to change the drive letter or the caption directly. But the good news is that you can use WMI and the CIM cmdlets to change both the drive letter and drive label. The Windows management tools have cmdlets ( Set-Partition and Set-Volume ) to change the drive letter and the caption directly. But it is also good to know how to do it via WMI and the CIM cmdlets to change both the drive letter and drive label. And under the covers, when you use Set-Partition , you are actually using WMI. Both the Windows Storage and Windows Networking teams make heavy use of WMI and expose cmdlets via CDXML modules. The *-Partition cmdlets are implemented by the CDXML Storage module.

WMI Classes, Class properties and Class Methods

WMI holds a huge amount of information about a Windows host in the form of WMI classes. Every IT professional should know about WMI.

WMI holds a hierarchical database of classes and class occurrences. These classes describe the hardware and software in your computer. This database is organized in to namespaces each which contains classes and, optionally, additional namespaces. You can use the CIM cmdlets to both retrieve and update this information.

For example, you can discover the drive letter and drive label for a drive from the Win32_Volume class. This class in in the rootCimV2 namespace.

Many WMI classes also contain methods that you can use to act on the WMI object. You can use the Format() method of the Win32_Volume class to format a Windows volume.

To obtain the values of the properties of a WMI class, or to invoke a class method, you can use the WMI cmdlets, which shipped with Windows PowerShell V1. However, these cmdlets no longer ship with PowerShell 7. Of course, a determined IT Pro could find a way around that – but you don’t have to!

With PowerShell 7, you use the CIM cmdlets to access this information. The CIM cmdlets first shipped with Windows PowerShell V3 and represented a major overhaul in how IT Pros access WMI. The newer cmdlets do the same job as the WMI cmdlets but have different cmdlets, and different ways of working as you can see in this article.

Discovering WMI Class Properties

You use the cmdlet Get-CimClass to discover the names (and type) of the properties of any given class. You can discover the properties of the Win32_Volume class like this:

The output from this commands looks like this:

In this list, you see each property of the Win32_Volume WMI class, the data type of the property and qualifiers. Qualifiers tell you more about the property – in particular whether a given property is read-only or read-write. The PageFilePresent property tells whether a given volume contains a Windows paging file. This property can not be changed using the CIM cmdlets. The DriveLetter and Label properties, on the other hand, are ones you can update. Let’s look at how you can change those properties.

Getting WMI properties

Suppose you want to change the volume label of a disk drive. In my host, the M: drive contains a collection of digitised music and my collection of thousands of Grateful Dead live concerts. I have been collecting for a long time and have a disk deadicated [SIC] to the task. But sometimes, when I plug in my USB backup drives to perform a backup, Windows changes the drive letter for me. To ensure my backup scripts work, I need to change it back so my backup scripts work properly.

To obtain the value of the drive label and drive letter, you can do this:

On my Windows 10 host (Cookham24), the output looks like this:

Changing Drive Label

You saw above that both the drive label and the drive letter are writable properties. To change the label for this disk volume, you assign a new value to the label property of $Drive . Changing the property value updates the in-memory class instance which is not a permanent change. In order to persist the change, you need to use the Set-CimInstance CMDLET. Here is how you can change the drive label, and then confirm the change:

The output form this command, which shows the updated system label, looks like this

Changing Drive Letter

To change the drive letter for a volume, you use Set-CimInstance to change the drive letter, like this:

If you are running PowerShell 7 in a non-elevated session, this operation fails like this:

This error is expected since you are not running PowerShell as an administrator. To overcome this error, re-run the command in an elevated session (run as administrator). Then your output looks like this:

Changing the drive letter can take a while – so be patient.

And as a final point – you can combine the two property updates in a single call to Set-CimInstance . To revert this drive to the old drive letter ( M: ) and it’s Label ( GD Master ) and confirm the change, you can do it like this:

You can view the resulting change to drive letter and label using Get-Volume . The output should look this:

Changing drive letters using PowerShell 7 is simple and straightforward. As you can see, using the Set-CimInstance PowerShell cmdlet to modify writable WMI properties is easy. I feel it’s more intuitive than making multiple property value assignments (once you you master the hash table). The cool thing is that multiple properties can be modified at one time instead of making multiple value assignments.

And as ever, this post shows there is often more than one way to achieve any aim.

Tip of the Hat

This article was inspired by an earlier Scripting Guys Blog post: Change drive letters and labels via a simple PowerShell command . That article was written by the most excellent Ed Wilson – thanks Ed!

@DoctorDNS PowerShell Evangelist, PowerShell Community Blog

' data-src=

Discussion is closed. Login to edit/delete existing comments.

Hmm, I was quite sure I could do that with PowerShell anyway, without digging into WMI. Power to those who dare do it, but I’ve always been intimidated a bit by WMI. This is great help, thanks. I’ll probably be back here often.

“PowerShell does not have a cmdlet to change the drive letter or the caption directly”

“Changing drive letters using PowerShell 7 is simple and straightforward.”

Sure it is when you do it properly:

To change drive letter:

To change drive name:

And that’s it!

With all due respect, this article is wrong on so many levels. It is a great example of overengineering. It requires programming knowledge of objects, properties, hashtables, and internal features of Windows OS. It uses workarounds instead of standard and common measures to achieve the same goal. It shows a lack of PowerShell usage fundamentals as even Get-Command volume / drive / partition would give you a clue to handle this properly.

And lastly, it will be an example for newcomers when they will compare PowerShell to other shells: “If simple things like changing drive letter or label require FOUR pages of explanation and hackiery, what about complicated things? PowerShell can’t be good!”

Please always refresh your knowledge and get a second opinion before you publish a blog on official channels. Right now it is a guide for developers on how to use WMI. IMHO, putting this article into the PowerShell section is doing more harm than good. I would suggest moving it to ‘WMI’ section of some other ‘developer blogs’ section.

Thanks for the comment. I have updated the article although it’ll take a day or two to get the change online. You can read the PR here https://github.com/PowerShell/Community-Blog/pull/24 in the meantime.

The reason for wanting to introduce WMI here is that, under the covers, the Storage Module is based on WMI anyway. Since I think Windows PowerShell 4, you have been able to use CDXML files to define cmdlets based on WMI classes. The Networking and Storage teams inside Windows make heavy use of this technology to release their WMI classes as cmdlets. So when you use Set-Volume, you are actually updating a WMI class via Volume.cdxml. The Storage module, for example, has 28 CDXML files for storage-related classes/cmdlets. I had intended to make this clear and I thank you for catching this.

I note your other comments. If you have specific ideas for potential blog articles, please come over to GItHub and file an issue suggesting a topic. You can file an issue at https://github.com/PowerShell/Community-Blog/issues . There is an issue template for a suggested article and I’m really happy to see any specific suggestions. Even better if you want to write it or help write it.

@Thomas I commend you on the generous response to @Aliens’ comments regarding this first blog post. I am also thankful for the efforts made towards kicking this initiative off regarding a community improved PowerShell blogging experience.

The interaction here goes to highlight beautiful differences that one can answer and solve a question one way while not wrong and another correct response to the same question can be provided in another way. Thus, teaching both old schoolers and new schoolers in the process. Though, I am still just getting started and will continue too until well, I get started. Is there a command for that? #Getting-Started 🙂

Thanks for updating the article. Now I understand the reason why you were so focused on WMI. You wanted to cover the lowest common denominator which works even for Windows 2008 R2, to cover the widest audience. My concerns were mainly about “How PS is viewed by newcomers”. Now I’m certain that it can be both ways: first, provide the most simple and straightforward way (notice that I didn’t even use | for the pipeline) so PS would appear neet. Then provide an alternative example to cover the widest audience of systems/solutions without necessarily focusing on simplicity. I will post this suggestion on GitHub for wider discussion.

Many organizations/enterprise, industry-wide is barely off PowerShell v2 and v3. I support customers globally, and I can count the number of customers using PowerShellv6/7 on one hand.

is only available after Windows PowerShell v5x as noted below

So, you are valid relative to what WPSv5x and PSv7 provide, it does not apply to 80-90% of the rest of the world, or even the USA.

So, though publishing this to a WMI specific forum is prudent, yet, Set-Partition should have been covered relative to v5/v7. It is just as important this info to be here for much of the world that is not on WPSv5x/PSv7 and who will not get there anytime soon.

We can/should never assume that anyone is running the latest and greatest of anything (industry is always 5-10 years or more behind the release cycles), and should always write, show, explain code the lowest common (organization/enterprise/industry) denominator to the lastest, to cover the widest audience.

Agree. Now when I have seen the whole context, I believe that we can have the best of both worlds: the most simple and straightforward way for newcomers and alternative examples to cover the widest audience of systems/solutions.

' data-src=

Thanks for the heads up!!

light-theme-icon

  • All about AI
  • Google Bard
  • Inflection AI Pi Chatbot
  • Anthropic Claude
  • Generative AI
  • AI Image Generation
  • AI Regulation
  • AI Research
  • Large Language Models (LLM)
  • Surface Pro
  • Surface Laptop
  • Surface Book
  • Surface Duo
  • Surface Neo
  • Surface Studio
  • Surface Hub
  • Surface Pen
  • Surface Headphones
  • Surface Earbuds
  • About WinBuzzer
  • Follow Us: PUSH, Feeds, Social
  • Write for Us
  • Cookie Policy and Privacy Policy
  • Terms of Service

WinBuzzer

How to Assign / Change Drive Letter in Windows 10

We show you how to change the drive letter in CMD, DIsk Management, PowerShell, and Registry editor in Windows 10.

Ryan Maskell

Table of Contents:

Windows 10 helpfully assigns drive letters to disks as they're added, but they aren't always the most logical choices. While we all know that C: is the system drive, it doesn't make quite as much sense to have D: as your games drive or E: as your media drive. Luckily it's quite easy to change a drive letter in Windows 10, and we're going to walk you through the process today.

How does Windows 10 drive letter assignment work?

For the most part, Windows 10 automatically assigns letters to drives as they're connected, in alphabetical order. However, there are a few exceptions to this rule that may leave some users confused.

As mentioned earlier, C: is always reserved for the system drive, but A: and B: are reserved too, for rarely used floppy drives. Because of Windows automatic assignment, you may have also noticed that Windows changes the drive letter of your USB stick if you've connected another before it.

If you want letters that are easier to identify in bios or don't want your USB letters jumping around, it's quite easy to permanently change a drive letter in Windows 10 to something of your choosing. We're going to cover a few different ways today, including how to change the drive letter in CMD.

How to Change Drive Letter in Windows 10 via Disk Management

The most user-friendly way to assign drive letters in Windows is through the Disk Management interface, which is relatively easy to use.

Start - Disk Management

How to Change Drive Letter in CMD using a DISKPART Disk Management Command

Though it's not quite as user-friendly, it can be much faster to change a drive letter with Command Prompt.

Windows 10 - Open Elevated Command Prompt

How to Change Drive Letter in Windows 10 with a PowerShell Disk Management Command

Those more familiar with PowerShell can use this method instead to achieve the same result.

Windows 10 - Open PowerShell as Admin

How to Change / Assign a Drive Letter via the Registry Editor

Alternatively, if none of the above methods worked or you're just feeling brave, you can modify the drive letter via the registry. Just be sure to read our safe registry editing guide first.

Windows 10 - Open Registry Editor

If you enjoyed this guide, you may want to consider enabling or disabling disk caching or turning on BitLocker for your newly customized drives.

  • Assign drive letter
  • assign drive letter windows 10
  • Change boot drive letter Windows 10
  • Change drive letter windows 10
  • change usb drive letter Windows 10
  • DIsc Management
  • Disk management command
  • how to change drive letter Windows 10
  • powershell change drive letter
  • win 10 change drive letter

Ryan Maskell

Recent News

SoundHound AI - official

Perplexity Partners with SoundHound to Enhance Voice AI Capabilities

WWDC-24-Apple-Official

Apple Set to Integrate ChatGPT in iOS 18, Enhancing AI Features

WinBuzzer

Subscribe to WinBuzzer on Google News

drive letter assignment powershell

Itechtics

5 Ways To Change Drive Letter In Windows 11, 10

Change Drive Letter

Windows is programmed to assign drive letters automatically when a new partition is created. If you do not like the drive letter assigned to a partition, or for any other reason, you can change it.

Windows assigns drive letters in alphabetical order, starting with “C.” “A” and “B” are reserved for floppy disk drives. Since the first partition to be created is the system drive, it is usually labeled “C” by default.

For a partition to show up in Windows Explorer , it must have a drive letter assigned to it. Otherwise, you cannot access the partition. This is also true in case you attach a USB flash drive to your computer.

Table of Contents

On This Page

Is it possible to change system drive letter.

Before we discuss how to change a drive letter, we must inform you that you cannot change the drive letter of the system drive, after the operating system has been installed on it. This is because many dependent applications and programs are installed which require the complete path to files to function properly.

If the drive letter in the path to a file is changed, the associated app may no longer function. For example, if the initial path “C:\Windows\System32” was changed to “J:\Windows\System32,” certain components of the app may no longer find the file required.

Similarly, if an app or program is installed on another partition other than the system partition, and it does not automatically pick up the changed path (which most modern apps usually do), you may have to make manual changes to the Windows Registries to provide the new path.

Let us now show you 5 ways to change drive letters in Windows.

How to Change Drive Letters in Windows

Change drive letter using disk management console.

The Disk Management Console provides several options to manage your storage partitions and volumes, such as formatting or creating new partitions, shrinking or expanding them, or assigning/changing drive letters.

Follow the steps given below to change the partition’s assigned drive letter:

Open the Disk Management Console by typing in “ diskmgmt.msc ” in the Run Command box .

Open the Disk Management Console

Right-click on the partition you want to change the letter for, and then click “ Change Drive Letter and Paths ” from the context menu.

Note: If you see that the option is not available or has been greyed out, then the partition’s drive letter cannot be changed.

Change the drive letter or path from the Disk Management Console

From the pop-up wizard, click  Change .

change 1

Select an available drive letter from the drop-down menu in front of “ Assign the following drive letter: ” and then click  Ok .

Assign a new drive letter from Disk Management Console

Click Yes on the confirmation dialog box .

Confirm drive letter assignment

[Conditional] You may then see another warning message. If you do, click  Yes  again, and then  restart  your computer for the changes to fully take effect.

Intimation for drive letter in use

You will now see that the drive letter has been successfully changed.

Change Drive Letter using Command Prompt

If you are a command-line guy, you can also change the drive letter of a partition using the Command Prompt. Here is how:

Open Command Prompt with administrative privileges .

Enter the disk partition mode by typing in the following, and then hitting Enter :

Enter the Disk Partition mode in Command Prompt

Run the following to obtain a list of current partitions and their details.

List all volume details in Command Prompt

Now select the volume for which you wish to change the drive letter by running the following cmdlet.

Replace [Number] in the command below with the volume number you see in the table obtained in Step 3 above.

Select a volume

Now use the following command to assign a new, vacant drive letter to this volume.

Replace [Alphabet]] with the new drive letter that you want to assign.

Assign a new letter to partition using Command Prompt

The new drive letter will now be assigned. You may now close the Command Prompt since the partition will now automatically open in Windows Explorer.

Change Drive Letter using PowerShell

Changing the drive letter using Windows PowerShell allows you to do so using the Command Line Interface (CLI) in a few easy cmdlets, as opposed to the lengthy process of using the Command Prompt. Here is how:

Launch Windows PowerShell with administrative rights .

Run the following cmdlet to get the current partitions and their associated details:

Get volume details in PowerShell

Now use this information to change a partition’s drive letter.

Replace [OldLetter] with the current drive letter for volume, and [NewLetter] with the new drive letter which you want to assign to the volume.

Assign a new drive letter using PowerShell

The drive letter will now change, and the partition will now automatically open in Windows Explorer.

Change Drive Letter from Windows Registry

You can also change the drive letter directly from the Windows Registry. Here is how:

Note: Misconfiguration of critical values in the system’s registry could be fatal for your operating system. Therefore, we insist that you create a system restore point or a complete system image backup before proceeding forward with the process.

You can also use our top selection of disk imaging and backup software so you never lose your data or operating system again.

Open the Registry Editor by typing in “ regedit ” in the Run Command box.

Open the Registry Editor

Now paste the following into the navigation bar at the top of the Editor for quick navigation:

Navigate to the MoutedDevices key

In the right-hand pane, look for the values whose name starts with “ \DosDevices .” This will display the current drive letters for the partitions on your computer.

Right-click on the drive letter you want to change, and then click Rename from the context menu.

For example, to change “J”, right-click “ \DosDevices\J: ” and then click Rename .

Rename Windows Registry to change the driver letter

Now rename the value and replace the old drive letter with the new one, as we did in the image below.

Change drive letter from Windows Registry

Now restart your computer for the changes to take effect.

When the computer reboots, you will see the drive letter has been changed.

Use Drive Letter Changer

Drive Letter Changer is a third-party freeware that can be used to perform a number of different tasks, including changing a partition’s drive letter. Moreover, it is portable software, which means it does not need to be installed on your PC.

Perform the following steps to download and use Drive Letter Changer to change drive letters:

Download the Drive Letter Changer here .

Extract the contents of the compressed folder.

Run the application labeled “ dChanger .”

The application will now automatically detect existing partitions and drive letters.

Right-click on the drive letter you want to change, expand “ Change drive letter ,” and then select a vacant drive letter that you wish to assign.

Change drive letter using third-party software

The drive letter will now change in an instant.

How to Swap Drive Letters Between Volumes

Unfortunately, there is no direct way of swapping drive letters between 2 partitions; you can only assign a vacant drive letter or remove it.

Therefore, if you wish to swap drive letters between two partitions, you must first change the drive letter of the primary partition to something else, so its initial drive letter becomes vacant. Then, change the drive letter of the secondary partition and assign the drive letter recently vacated from the primary partition. Now you can assign the vacated drive letter from the secondary partition to the primary partition.

This can be a bit confusing, so we have drafted down the process in the methods below.

Swap Drive Letter from Disk Management Console

Open the Disk Management Console by typing in “ diskmgmt.msc ” in the Run Command box.

diskmgmt

Right-click on the primary partition and click “ Change Drive Letter and paths “  from the context menu.

Change drive letter from the Disk Management Console

From the popup wizard, click  Remove .

Remove a drive letter

If prompted for a confirmation, click  Yes .

Confirm drive letter removal

You may then see another warning message. If you do, click  Yes  again.

Intimation of drive being in use

Now right-click on the secondary partition and click “ Change Drive Letter and paths ” from the context menu.

Change the drive letter of the secondary drive

Now assign the drive letter from the primary partition and click  Ok .

Assign the primary drive's letter to the secondary drive

In the confirmation box, click  Yes .

Now right-click on the primary partition again, and click “ Change Drive Letter and Paths ” from the context menu.

Change the drive letter of the primary drive again

From the pop-up wizard, click  Add .

Add a new drive letter

Now assign the drive letter initially assigned to the secondary partition, and click  Ok .

Assign a new drive letter to the primary drive

(Optional, but recommended) Now restart your computer so the changes can be finalized.

You can apply the same logic to switch drive letters between 3 or more partitions as well.

Swap Drive Letter using Command Prompt

You can also switch the drive letters between 2 partitions (or more) using the same logic. Here is how:

Enter the disk partition mode by typing in the following, and then hitting Enter .

Now paste the following to obtain a list of current partitions and their details:

List volume details in Command Prompt

Now select the  primary  volume using the cmdlet below.

Replace [Number] in the command with the volume number you see in the table obtained in Step 3 above.

Select a volume

Now remove the assigned drive letter using the following cmdlet.

Replace [Alphabet] with the drive letter currently assigned to this volume.

Unassign dive letter from Command Prompt

Now select the  secondary  volume using the cmdlet below.

Select the secondary volume

Now assign the recently-vacated drive letter from the primary partition to this volume using the given cmdlet.

Replace [Alphabet] with the drive letter initially assigned to the primary volume.

Assign primary drive's letter to the secondary drive using Command Prompt

Now select the primary partition again.

Select the primary volume again

Now assign the drive letter from the secondary partition to this volume.

Assign the secondary drive's letter to the primary drive

The drive letters have been swapped successfully. You can now close the Command Prompt.

You can apply similar logic to other methods to swap drive letters between 2 or more drives. This can be done using Windows PowerShell, Windows Registry, and the Drive Letter Changer software.

How to Fix Affected Programs After Changing Drive Letter

As we already mentioned, changing a drive letter where an app or program may be installed might break it. If the problem is not fixed automatically after a reboot, you may have to fix it manually. Here are a few solutions that might work.

Change Path for Shortcut

If you are trying to run an app or program using its shortcut, then just fixing the path of the shortcut might fix the problem.

Right-click on the shortcut and click  Properties .

Open item properties

Switch to the Shortcut tab, change the drive letters in the “ Target ” and “ Start in ” fields with the new drive letters, and then continue to click Apply and Ok .

Fix issue with apps affected by changing drive letters

Now try re-running the program using the shortcut.

Revert Drive Letter

If the issue occurs after changing the drive letter, then you can try changing it back to the old one using the given methods above.

This is not an ideal case, but it will probably solve the problem.

If you do not wish to revert to the drive letter, you can skip this method and try out the ones discussed below.

Change Drive Letter in Windows Registry

Open the Registry Editor

From the Registry Editor, click Edit and then click Find .

Search inside the Registry Editor

Type in the old location for the app you are trying to troubleshoot, and then click “ Find Next .”

Look for old path inside Windows Registry

When the search wizard finds a match, double-click on the Value in the right pane, and then change the old drive letter with the new one in the text field under “ Value Data .”

Fix app issue caused by changing drive letter from Windows Registry

Now repeat steps 2 through 5 until all paths have been updated with the new drive letter.

Once done, close the Registry Editor and restart the computer for the changes to take effect.

After the computer reboots, check to see if the issue has been resolved.

Reinstall Program

If none of these methods have worked for you, you can try reinstalling the program. Simply delete the app, download the new setup from the vendor’s website, and perform a new install.

Closing Words

People often mistake the drive letter for the name of the volume. However, these 2 are totally different. A drive letter is an alphabet defining a volume/partition on the disk, whereas a name could be anything you want it to be.

By default, Windows names a new volume as “New Volume.” You can change the name of the system volume, but cannot change its drive letter.

That said, we would like to know what prompted you to change the drive letter(s) on your system.

  • How To Change Screen Brightness Using Command Line In Windows 11, 10
  • 2 Ways to Change Power Modes in Windows 11
  • 2 Ways To Change Touchpad Sensitivity On Windows 11

drive letter assignment powershell

(Cancel Reply)

Notify me of follow-up comments by email.

Notify me of new posts by email.

Get Updates in Your Inbox

Sign up for the regular updates and be the first to know about the latest tech information

Email Address

drive letter assignment powershell

Tailspintoys – 365lab.net

Office 365, azure and microsoft infrastructure with a touch of powershell., dealing with drive letters in powershell.

Have you ever wondered why the newly installed disk gets a drive letter in the middle of the alphabet even though E: is free? Why that network drive refuses to connect with the drive letter you want? The reason is most probably that the drive letter you want has been reserved for removable drives even though no media is inserted. This has been an problem for some time now since many computers are shipped with built-in multimedia card readers.

W8-storage-management

In the above example, if you for example try to map a network drive as F: it will fail because it is already reserved by a SD card reader, even when no card is inserted. The solution: change the drive letters to something that you know will never conflict.

Here’s a PowerShell script that automatically reassigns drive letters on removable drives to a predefined set of “approved” drive letters. The script uses the standard mountvol tool, so it also works in older Windows versions.

Replace-DriveLetters.ps1

In an Enterprise Environment this is easy to implement in for example Microsoft Deployment Toolkit. That way your clients will never fail mapping network drives.

MDT

Share this:

  • Click to email a link to a friend (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)

3 thoughts on “ Dealing with drive letters in PowerShell ”

' src=

Any chance you’d know why this script would result in the verbose output of the mountvol command? Thanks! 🙂

' src=

To remove the output from the command the best way is to pipe the output into the Write-Verbose cmdlet. That way you can use the code, and build your own functions that accepts the -Verbose parameter to see the output.

Thanks Andreas! In this case the script was giving the mountvol syntax because it had nothing to do – and that was due to my failure to supply the correct forbidden drives. 🙂

Comments are closed.

' src=

  • Already have a WordPress.com account? Log in now.
  • Subscribe Subscribed
  • Copy shortlink
  • Report this content
  • View post in Reader
  • Manage subscriptions
  • Collapse this bar

Clustering For Mere Mortals

Microsoft cloud and datacenter mvp david bermingham's thoughts and advice on windows clustering and other related technologies, changing a drive letter with powershell.

Here is a short but sweet post on how to change the drive letter of a partition. Despite using my best Google skills I couldn’t find an example that was doing it for me. I rolled up my sleeves and just figured it out on my own. I hope this helps someone out there.

As long as you know the DiskNumber and PartitionNumber this will immediately change the drive letter of the partition you specify.

You may also need to import the Storage module into Powershell before you can do this.

Let me know if this helped you

Share this:

Leave a comment cancel reply.

' src=

  • Already have a WordPress.com account? Log in now.
  • Subscribe Subscribed
  • Copy shortlink
  • Report this content
  • View post in Reader
  • Manage subscriptions
  • Collapse this bar

How to assign permanent letters to drives on Windows 10

You can assign drive letters manually, and in this guide, we show you how on Windows 10.

drive letter assignment powershell

On Windows 10, when connecting a removable storage device or an internal hard drive, the system detects and assigns a drive letter automatically to make it usable. However, when reconnecting an external drive (such as a USB flash drive or SD or microSD cards), the system can end up assigning a different letter, which can be annoying.

If you want to see the same drive letter on a particular device, you can manually assign a permanent letter to any drive connected to your computer, and on Windows 10 , you can do this in at least three different ways, using Disk Management, Command Prompt, or PowerShell.

Using this approach will prevent Windows 10 from assigning a new letter or trying to set a letter already in use, which can cause conflicts. Also, it helps to select a drive letter that makes more sense to you.

In this Windows 10 guide, we walk you through several methods to manually assign a permanent letter to a drive, as long as you're connecting the drive to the same device and the letter isn't already in use.

How to assign a drive letter using Disk Management

How to assign a drive letter using command prompt, how to assign a drive letter using powershell.

To manage drive letters with the Disk Management tool, use these steps:

  • Open Start .
  • Search for Create and format hard disk partitions and click the top result to open the Disk Management experience.
  • Right-click the drive and select the Change Drive Letter and Paths option.

drive letter assignment powershell

  • Click the Change button.

drive letter assignment powershell

  • Select the Assign the following drive letter option.
  • Use the drop-down menu to assign a new drive letter. Quick tip: To avoid the system trying to assign the same letter to another drive, it's a good idea to start adding letters in backward order. For instance, instead of using D, E or F, it better to start with Z, Y or X when assigning a new letter.

drive letter assignment powershell

  • Click the OK button.
  • Click the OK button again.

Once you complete these steps, the drive will permanently retain the assigned letter, even after reconnecting it. However, if you connect the drive to another device, it may receive a different letter.

While the easiest way to assign a new drive letter is to use Disk Management, you can also use DiskPart in Command Prompt to perform the same task.

Get the Windows Central Newsletter

All the latest news, reviews, and guides for Windows and Xbox diehards.

To assign a drive letter using Command Prompt, use these steps:

  • Search for Command Prompt , right-click the result, and then select the Run as administrator option.
  • Type the following command to start DiskPart and press Enter : diskpart
  • Type the following command to list all the available volumes and press Enter : list volume
  • Type the following command to select the volume (drive) to assign a new letter and press Enter: select volume 3 In the command, make sure to change "3" to the number that represents the drive on your device.
  • Type the following command to assign a new drive letter, and press Enter : assign letter=Z The command assigns the letter "Z" to the drive assuming it's available. However, you need to make sure to change the letter for the one that you want to use.

drive letter assignment powershell

After completing these steps, similar to Disk Management, every time you reconnect the storage to the same device, Windows 10 should assign the same letter automatically.

Alternatively, you can also use PowerShell to change a drive letter on Windows 10 using these steps:

  • Search for PowerShell , right-click the result, and then select the Run as administrator option.
  • Type the following command to list the available drives and press Enter : Get-Disk
  • Type the following command to assign a permanent letter to the drive and press Enter : Get-Partition -DiskNumber 1 | Set-Partition -NewDriveLetter Z In the command, make sure to change "1" to the number that represents the drive that you want to modify, and change "Z" for the new letter that you want to use.

drive letter assignment powershell

Once you complete the steps, the drive will be accessible through File Explorer using the letter that you assigned, and Windows 10 won't try to change it.

Updated March 7, 2019: We revised this guide to make sure it's current with the latest version of Windows 10.

More Windows 10 resources

For more helpful articles, coverage, and answers to common questions about Windows 10, visit the following resources:

  • Windows 10 on Windows Central – All you need to know
  • Windows 10 help, tips, and tricks
  • Windows 10 forums on Windows Central

Mauro Huculak

Mauro Huculak is technical writer for WindowsCentral.com. His primary focus is to write comprehensive how-tos to help users get the most out of Windows 10 and its many related technologies. He has an IT background with professional certifications from Microsoft, Cisco, and CompTIA, and he's a recognized member of the Microsoft MVP community.

  • 2 OpenAI won't launch a Google Search competitor or GPT-5 in the next few days, but we should expect new projects that "feel like magic" to CEO Sam Altman
  • 3 Reports indicate that Microsoft may lift the freeze on specific employee salaries while emphasizing 'more' accountability for top executives
  • 4 Every Dark Souls game gets rare sale for huge discounts ahead of Elden Ring's Shadow of the Erdtree DLC
  • 5 Days after Sony's Helldivers 2 PSN debacle, Ghost of Tsushima's PC release gets delisted and refunded from Steam in over 170 countries [UPDATED]

drive letter assignment powershell

argon logo

Changing Drive Letters and Labels via PowerShell

Wmi classes, class properties and class methods, discovering wmi class properties, getting wmi properties, changing drive label, changing drive letter, tip of the hat.

Q: I want to change the drive letter and the drive label for a new USB drive. Is there a way with PowerShell?

A: Of course. One way is to use WMI and the CIM cmdlets.

PowerShell does not have a cmdlet to change the drive letter or the caption directly. But the good news is that you can use WMI and the CIM cmdlets to change both the drive letter and drive label. The Windows management tools have cmdlets ( Set-Partition and Set-Volume ) to change the drive letter and the caption directly. But it is also good to know how to do it via WMI and the CIM cmdlets to change both the drive letter and drive label. And under the covers, when you use Set-Partition , you are actually using WMI. Both the Windows Storage and Windows Networking teams make heavy use of WMI and expose cmdlets via CDXML modules. The *-Partition cmdlets are implemented by the CDXML Storage module.

WMI holds a huge amount of information about a Windows host in the form of WMI classes. Every IT professional should know about WMI.

WMI holds a hierarchical database of classes and class occurrences. These classes describe the hardware and software in your computer. This database is organized in to namespaces each which contains classes and, optionally, additional namespaces. You can use the CIM cmdlets to both retrieve and update this information.

For example, you can discover the drive letter and drive label for a drive from the Win32_Volume class. This class in in the rootCimV2 namespace.

Many WMI classes also contain methods that you can use to act on the WMI object. You can use the Format() method of the Win32_Volume class to format a Windows volume.

To obtain the values of the properties of a WMI class, or to invoke a class method, you can use the WMI cmdlets, which shipped with Windows PowerShell V1. However, these cmdlets no longer ship with PowerShell 7. Of course, a determined IT Pro could find a way around that – but you don't have to!

With PowerShell 7, you use the CIM cmdlets to access this information. The CIM cmdlets first shipped with Windows PowerShell V3 and represented a major overhaul in how IT Pros access WMI. The newer cmdlets do the same job as the WMI cmdlets but have different cmdlets, and different ways of working as you can see in this article.

You use the cmdlet Get-CimClass to discover the names (and type) of the properties of any given class. You can discover the properties of the Win32_Volume class like this:

The output from this commands looks like this:

In this list, you see each property of the Win32_Volume WMI class, the data type of the property and qualifiers. Qualifiers tell you more about the property – in particular whether a given property is read-only or read-write. The PageFilePresent property tells whether a given volume contains a Windows paging file. This property can not be changed using the CIM cmdlets. The DriveLetter and Label properties, on the other hand, are ones you can update. Let's look at how you can change those properties.

Suppose you want to change the volume label of a disk drive. In my host, the M: drive contains a collection of digitised music and my collection of thousands of Grateful Dead live concerts. I have been collecting for a long time and have a disk deadicated [SIC] to the task. But sometimes, when I plug in my USB backup drives to perform a backup, Windows changes the drive letter for me. To ensure my backup scripts work, I need to change it back so my backup scripts work properly.

To obtain the value of the drive label and drive letter, you can do this:

On my Windows 10 host (Cookham24), the output looks like this:

You saw above that both the drive label and the drive letter are writable properties. To change the label for this disk volume, you assign a new value to the label property of $Drive . Changing the property value updates the in-memory class instance which is not a permanent change. In order to persist the change, you need to use the Set-CimInstance CMDLET. Here is how you can change the drive label, and then confirm the change:

The output form this command, which shows the updated system label, looks like this

To change the drive letter for a volume, you use Set-CimInstance to change the drive letter, like this:

If you are running PowerShell 7 in a non-elevated session, this operation fails like this:

This error is expected since you are not running PowerShell as an administrator. To overcome this error, re-run the command in an elevated session (run as administrator). Then your output looks like this:

Changing the drive letter can take a while – so be patient.

And as a final point – you can combine the two property updates in a single call to Set-CimInstance . To revert this drive to the old drive letter ( M: ) and it's Label ( GD Master ) and confirm the change, you can do it like this:

You can view the resulting change to drive letter and label using Get-Volume . The output should look this:

One issue you may encounter when you change a drive letter then revert it as shown here. It appears that Windows holds on to the old drive letter and does not allow you revert it back immediately. Thus you may get a “Set-CimInstance: not available” error message when trying to revert the drive letter. To get around this, you have to reboot Windows – it appears just logging off and back on is not adequate.

Changing drive letters using PowerShell 7 is simple and straightforward. As you can see, using the Set-CimInstance PowerShell cmdlet to modify writable WMI properties is easy. I feel it's more intuitive than making multiple property value assignments (once you you master the hash table). The cool thing is that multiple properties can be modified at one time instead of making multiple value assignments.

And as ever, this post shows there is often more than one way to achieve any aim.

This article was inspired by an earlier Scripting Guys Blog post: Change drive letters and labels via a simple PowerShell command . That article was written by the most excellent Ed Wilson – thanks Ed!

The post Changing Drive Letters and Labels via PowerShell appeared first on PowerShell Community .

This article was originally published by Microsoft's PowerShell Community . You can find the original article here .

Related Posts

  • Troubleshooting Hangs Using Live Dump
  • Threat matrix for storage
  • The best practices for performance comparison between Azure SQL Managed Instance and SQL Server
  • Part 2 (PowerShell) – SQL Server TDE and Extensible Key Management Using Azure Key Vault
  • Move backups in Recovery Service Vault from LRS/GRS to ZRS while preserving the data

drive letter assignment powershell

Contribute to the Windows forum! Click  here  to learn more  💡

May 10, 2024

Contribute to the Windows forum!

Click  here  to learn more  💡

Windows 11 Forum Top Contributors: Ramesh Srinivasan  -  Kapil Arya MVP  -  neilpzz  -  RAJU.MSC.MATHEMATICS  -  _AW_   ✅

Windows 11 Forum Top Contributors:

Ramesh Srinivasan  -  Kapil Arya MVP  -  neilpzz  -  RAJU.MSC.MATHEMATICS  -  _AW_   ✅

  • Search the community and support articles
  • Search Community member

Ask a new question

LightJack05

  • Article Author

Manually assigning a drive letter using CMD/Diskpart

[Localization from this article: Manuelles Zuweisen eines Laufwerksbuchstaben mit CMD bzw. Diskpart - Microsoft Community ]

Technical Difficulty: Expert

Applies to: Windows 10 & 11

In some cases, Windows will not assign a drive letter automatically to an inserted drive. For example, this can happen when using a Windows installation media.

In that case, you can use diskpart to manually assign a drive letter.

NOTE: If your drive doesn't get assigned a drive letter, even though you are in a normal Windows environment, this can indicate a problem with the drive. Please back up your files in that case.

Open up a command prompt (CMD/PowerShell).

Type "diskpart" to start up diskpart. You will see the prompt change to "DISKPART>".

drive letter assignment powershell

Type "list vol" to list all available volumes. You can identify the drive by size and file system.

Additionally, the volume doesn't currently have a drive letter.

drive letter assignment powershell

Select the volume using "sel vol <number>".

drive letter assignment powershell

Assign the drive letter using "assign letter=<letter>".

drive letter assignment powershell

You can now exit diskpart by typing "exit" and switch to the drive using "<letter>:".

drive letter assignment powershell

It should also be available from Windows Explorer now.

59 people found this helpful

  • Subscribe to RSS feed

Was this article helpful? Yes No

Sorry this didn't help.

Great! Thanks for your feedback.

How satisfied are you with this article?

Thanks for your feedback, it helps us improve the site.

Thanks for your feedback.

Comments (17) 

* Please try a lower page number.

* Please enter only numbers.

Joe13 B-) 2.0

Thanks for the tutorial, I don't think I need to use Google for it anymore!

Congrats on Article Author too! :)

Report abuse

Reported content has been submitted​

6 people found this comment helpful

Was this comment helpful? Yes No

How satisfied are you with this comment?

Thanks for the tutorial, I don't think I need to use Google for it anymore! Congrats on Article Author too! :)

5 people found this comment helpful

Thanks! Happy I could help! :)

1 person found this comment helpful

RAJU.MSC.MATHEMATICS

Very helpful Thanks.

3 people found this comment helpful

Thank for this informative article.

I ran this in PowerShell PS C:\WINDOWS\system32> GWMI -namespace root\cimv2 -class win32_volume | FL -property DriveLetter, DeviceID

The results are below. I need to know more about the DriveLetter, that does not have a letter and I cannot give it a letter, as you can see in DiskPart.

I'm sure someone personally hacking my computer. I'm wondering if this them hiding on it, and that is why I someone is typing over me and has more control at times of my computer then I do. Maybe a hidden AD Hoc.

I have searched for this on Google I'm either getting blocked or there is no information out there on this.

PS C:\WINDOWS\system32> GWMI -namespace root\cimv2 -class win32_volume | FL -property DriveLetter, DeviceID

DriveLetter : B:

DeviceID : \\?\Volume{26xxxxxx--xxxx-xxxx-xxxxxxxxxxxxxx}\

DriveLetter : C:

DriveLetter :

DeviceID : \\?\Volume{d5xxxxxx--xxxx-xxxx-xxxxxxxxxxxxxx}\

DriveLetter : D:

PS C:\WINDOWS\system32> DiskPart

Microsoft DiskPart version 10.0.19041.1

Copyright (C) Microsoft Corporation.

On computer: My Computer

DISKPART> List Volume

Volume ### Ltr Label Fs Type Size Status Info

---------- --- --- -------- ----- ---------- ------- --------- --------

Volume 0 D RAW DVD-ROM 2048 B Healthy

Volume 1 B System Rese NTFS Partition 100 MB Healthy System

Volume 2 C NTFS Partition 698 GB Healthy Boot

2 people found this comment helpful

I followed the instructions to CHANGE the letters assigned for three external hard drives. (The computer had named them E, F, G but gave the names to the wrong external hard drive) I changed the letters to the correct names singly (I disconnected the two not being adjusted) Now, I have 2 E, 2 F, 2 G names in the list (when accessed through File Explorer. When I click on "This PC", it shows just the one of each. If I click on either, or both of the same letter name, the same exact files will open. This is annoying. Anyone have a clue what can be done? This is on a brand new computer running Windows 11.

Sorry about the late reply.

That sounds weird... Usually, windows doesn't allow you to assign a drive letter twice.

If you want to change the letters, you usually have to remove them first and then reassign them.

Can you send me a screenshot of disk management, and of the list of volumes?

the partition that is not shown in diskpart is most likely some sort of recovery or reserved partition.

This is not the typical way of hiding an infection with malware...

Also, do note that your ESP (Volume B) should not be mounted, since modifying it can corrupt your Bootloader.

As for the suspected hacking, what symptoms did you observe? Mouse moving on its own, high resource usage, unexpected firewall prompts? Other things?

If you have a compromised system, its almost impossible to clean it from infections without doing a clean install of windows. I would suggest you do that if you suspect an infection. It will take time though and will delete everything on your PC. (Including files, programs, settings.) Create a backup before you reinstall.

There are no viruses nor malware on this computer. I believe it is a reflection of the original name choice. The information contained on each external hard drive is identical, yet when I go into MY PC, it only shows one set of externals. I am afraid to delete one of the duplicates because it might be just mirrored and it will make everything go away. I have way too many things on these external hard drives to lose any of them.

Thanks for your input. Jan

Forum Article Info

  • Devices and drivers
  • Norsk Bokmål
  • Ελληνικά
  • Русский
  • עברית
  • العربية
  • ไทย
  • 한국어
  • 中文(简体)
  • 中文(繁體)
  • 日本語

Stack Exchange Network

Stack Exchange network consists of 183 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

How can a consistent drive letter be assigned when mounting a VHD?

I have several VHDs residing locally, that I only mount one at a time and assign to one drive letter.

How can the drive letter be automatically assigned to these upon mounting, so that I don't have to click "Change Drive Letter" every time I mount?

Typically I mount by using Computer Management -> Storage -> Disk Management.

Aaron Thomas's user avatar

2 Answers 2

Normally you don't have to do anything on that, because Windows remembers the last drive letter mounted for each VHD drive.

When you change between VHDs (and/or external drives) often, maybe this doesn't work for you.

Of course you can do it with a script. Here is a batch file (without Powershell, which would be more powerful):

Windows 7 command script to mount VHD disk with assigned drive letter via DiskPart

For specific VHD files you could simplify that script or just adding fixed names for drive and VHD file. That's it.

Philm's user avatar

If you don't want to use Diskpart, you can use PowerShell for this. Here is an example:

etalon11's user avatar

You must log in to answer this question.

Not the answer you're looking for browse other questions tagged windows-10 vhd ..

  • The Overflow Blog
  • Between hyper-focus and burnout: Developing with ADHD
  • Featured on Meta
  • Our Partnership with OpenAI
  • Imgur image URL migration: Coming soon to a Stack Exchange site near you!

Hot Network Questions

  • Golfing the complexity with subtraction
  • Double numbers on all matching lines containing text pattern
  • Are the junior officer quarters in Lower Decks literally in a hallway?
  • Is it a bad idea to design a purposefully inconsistent magic system?
  • 60's or 70's book about a planet of only women
  • Stress pattern in "Little Red Riding Hood"
  • Official draw rules in the game of American checkers
  • Advice on designing an inconsistent magic system
  • Independence of CH and permutation models?
  • Why would a transforming vehicle gain\lose access to its primary weapon when it mode switches?
  • Would a creature finding itself in the AOE of Insect Plague when it is cast receive damage three times if it were to also end its turn there?
  • Is it incorrect terminology to say "confidence interval of a random variable"?
  • Unit Tests for an Arena Allocator
  • Why does the EU find the foreign agent law in Georgia against their values?
  • Are there countries where defendants are fully compensated for their time if they’re found not guilty?
  • What can you use in your soil to kill bugs before planting vegetables?
  • How did White lose all their pieces?
  • How to draw such a sphere with mesh
  • Why is it legal for a candidate to fund raise for a PAC, given that PACs aren't supposed to coordinate with them?
  • How does Russia exactly define Russian territory in its state policy?
  • Violin becomes a spring by the force of my jaw (without me pushing extra)
  • Short story in which humans are the first stage in a metamorphic cycle that advances when eating a particular substance?
  • When is it worthwhile to report academic misconduct of a referee?
  • Would you correct grading mistakes downwards if there is a mistake in grading?

drive letter assignment powershell

PowerShell Function to Determine Available Drive Letters

I've recently been working on some file server drive migrations. One of the steps I needed to perform was to change the drive letter of a current drive to a different available drive letter so I decided to write a PowerShell function to accomplish the task of determining what drive letters are available.

The Get-MrAvailableDriveLetter function shown in the following code example will run on systems with PowerShell version 2.0 or higher (I tested it all the way down to version 1.0, but that was a no go).

It contains a requires statement and comment based help as all well written functions that you plan to share should:

Drive letters can be excluded via parameter input and by default A-F and Z are excluded. This can be negated by specifying $null or an empty string for the ExcludeDriveLetter parameter:

By default only the first available drive letter is returned and it can be randomized by specifying the Random parameter:

All available drive letters can be returned by specifying the All parameter and they can also be returned in random order with the Random parameter:

The drive letters themselves are obtained from the Function PSDrive:

The excluded drive letters are converted to a regular expression to minimize the amount of code that had to be written to exclude multiple drive letters and/or ranges of drive letters:

If the Random parameter is specified, all of the available drive letters are randomized once the exclusions are removed. This allows a single line of code to be used regardless if a single or all results are desired to be returned in randomized order:

Unless the All parameter is specified, the Return keyword is used to terminate execution once an available drive letter is found and tested to not be in use. Read more about the PowerShell Return keyword in a previous blog article that I've written .

If the All parameter is specified, all drive letters are tested and returned if they are not in use. This seemed to be the most efficient way to accomplish this task without testing all of them early on only to return a single result by default:

The function itself is simple to use:

The Get-MrAvailableDriveLetter function shown in this blog article can be downloaded from my PowerShell repository on GitHub .

#PSTip Get next available drive letter

  • 2 Min To Read
  • 15 Aug, 2012
  • Tips and tricks

Mapping drives is a routine task for IT pros—you choose a free drive letter, ranging from A-Z, and then use it to map a drive to a specific path. What if you need to do that in a script? How do you know which letter is available for the new drive?

Here at the magazine we dedicated a [Brain Teaser to find an unused drive letter][1] but we want to tell you of another, new, built-in way to get that information.

Windows 8 and Server 2012 ship with the Storage module which provides PowerShell cmdlets for end to end management of Windows storage. One of the module functions is Get-AvailableDriveLetter.

Update (8/20/2012)

In Windows 8 RTM, Get-AvailableDriveLetter is not a part of the Storage module.

However it will be included in a downloadable module at the TechNet Script Center in the near future.

In the meantime, you can put the code in your own Get-AvailableDriveLetter function.

Running the function without any parameters outputs all available drive letters:

We can also ask for the first letter only:

Finally, since this is a function, we can see how letters are retrieved by taking a look at the function definition:

For a list of the cmdlets contained in the Storage module, see the following topic [on TechNet][2]

[1]: /2012/01/12/find-an-unused-drive-letter/) [2]: http://technet.microsoft.com/en-us/library/hh848705.aspx

Get Drive Letter from Path using PowerShell

Tagged: PowerShell

In this blog post, we will show you how to get drive letter from the path using PowerShell.

Using Split-Path Cmdlet #

We can use Split-Path cmdlet to get the drive letter by specifying Qualifier parameter. According to the documentation , the qualifier is the drive of the path.

The result will look as follows:

Using PSDrive Property #

We can also use PSDrive.Name property to get the drive letter.

Using Drive property #

This property can be used when we want to get drive letter from current path.

If we inspect the object, we will find that it has Drive property that represents the drive.

Using String Split Function #

We can also split the path using String Split function or operator, then get the first character that is supposed to be the drive letter.

Below example will get drive letter from current path.

Using GetPathRoot Method from .NET Framework #

We can also use GetPathRoot static method from System.IO.Path class in .NET Framework in order to get the drive. Then, similar to previous solution, we retrieve the first character as the drive letter.

Conclusion #

In PowerShell, there are many solutions we can use to get drive letter from the path. First, we can use Split-Path cmdlet and specify Qualifier parameter. Second, we can use PSDrive property of the path item.

The third, for current path we can also use Drive property. Fourth, we can use String Split function. After splitting the path, the first character should be the drive letter.

Lastly, we can also use GetPathRoot method from .NET Framework to get the drive and retrieve the first character as the drive letter.

IMAGES

  1. How to change/assign a drive letter in Windows 10

    drive letter assignment powershell

  2. Mount ISO and change its drive letter with PowerShell

    drive letter assignment powershell

  3. Steps to Change Drive Letter Assignment in Windows

    drive letter assignment powershell

  4. How to Change Drive Letter with CMD Windows 10

    drive letter assignment powershell

  5. How to change Drive letter in Windows 11/10

    drive letter assignment powershell

  6. How to assign permanent letters to drives on Windows 10

    drive letter assignment powershell

VIDEO

  1. How to Change Drive Letter in Windows 11

  2. Why is Windows in the C:/ Drive?

  3. Managing FILES AND FOLDERS with PowerShell

  4. Double Letter Assignment

  5. Isabella Speed Paint C:

  6. HOW I FIX ANY CORRUPT DISK USING POWERSHELL COMMANDS!

COMMENTS

  1. How to change drive letter using PowerShell on Windows 10

    To change the drive letter through PowerShell commands, use these steps: Open Start on Windows 10. Search for PowerShell, right-click the result, and select the Run as administrator option. In the command, update "1" to the disk number of the drive to change. In the above command, update "1" to the disk number of the drive to change and ...

  2. PowerShell to Assign Drive Letters in Windows 10

    If a drive is missing on your device, it could be a letter assignment issue. Follow the steps below to using PowerShell to quickly assign a new letter. Step 1 Search for Windows PowerShell in the start menu, right-click the result, and select Run as administrator. Step 2 Run the following command to get the disk information. Get-Disk

  3. Changing Drive Letters and Labels via PowerShell

    Changing drive letters using PowerShell 7 is simple and straightforward. As you can see, using the Set-CimInstance PowerShell cmdlet to modify writable WMI properties is easy. I feel it's more intuitive than making multiple property value assignments (once you you master the hash table). The cool thing is that multiple properties can be ...

  4. How to Assign / Change Drive Letter in Windows 10

    Right-click the drive that you want to change or free the letter from and click "Change Drive Letter and Paths…". Click the "Change…" button. If you want to free up the letter you can ...

  5. How do I map drive letter to a local path in PowerShell?

    You could use subst: subst x: c:\myfolder1\myfolder2\. or New-PSDrive: New-PSDrive -Name x -PSProvider FileSystem -Root c:\myfolder1\myfolder2\. answered Apr 13, 2013 at 2:04. Kev. 119k 53 303 389. 1. I think PSDrives are only visible from inside the PowerShell session and not external programs.

  6. 5 Ways To Change Drive Letter In Windows 11, 10

    Change the drive letter or path from the Disk Management Console. From the pop-up wizard, click Change. Change the drive letter. Select an available drive letter from the drop-down menu in front of " Assign the following drive letter: " and then click Ok. Assign a new drive letter from Disk Management Console.

  7. Dealing with drive letters in PowerShell

    The solution: change the drive letters to something that you know will never conflict. Here's a PowerShell script that automatically reassigns drive letters on removable drives to a predefined set of "approved" drive letters. The script uses the standard mountvol tool, so it also works in older Windows versions. Replace-DriveLetters.ps1

  8. Changing a Drive Letter with PowerShell

    Set-Partition -DiskNumber 4 -PartitionNumber 1 -NewDriveLetter X. As long as you know the DiskNumber and PartitionNumber this will immediately change the drive letter of the partition you specify. You may also need to import the Storage module into Powershell before you can do this. Import-Module -Name Storage.

  9. PSTip: Change a drive letter using Win32_Volume class

    Changing a drive letter of a removable drive or DVD drive is an easy task with Windows PowerShell. Using the Win32_Volume class and the Set-CimInstance cmdlet a drive letter can be reassigned. The following code will change the drive letter for the F: drive and change the drive letter to Z:

  10. Change and Assign Drive Letter in Windows 10

    1 Open an elevated PowerShell. 2 Type Get-Partition into the elevated PowerShell, and press Enter. (see screenshot below) 3 Make note of the drive letter (ex: "G") of the drive you want to change. 4 Type the command below into the elevated PowerShell, and press Enter.

  11. How to assign permanent letters to drives on Windows 10

    Search for Create and format hard disk partitions and click the top result to open the Disk Management experience. Right-click the drive and select the Change Drive Letter and Paths option. Click ...

  12. Assigning drive letter to mounted ISO Powershell

    AFAIK 'mount-diskimage' chooses the next free letter, you can't specify it at the time of mounting. But you can get the letter info or change it with diskpart. list volume select volume 3 assign letter=e: Or get the drive letter via powershell

  13. Changing Drive Letters and Labels via PowerShell

    Changing drive letters using PowerShell 7 is simple and straightforward. As you can see, using the Set-CimInstance PowerShell cmdlet to modify writable WMI properties is easy. I feel it's more intuitive than making multiple property value assignments (once you you master the hash table). The cool thing is that multiple properties can be ...

  14. Manually assigning a drive letter using CMD/Diskpart

    Procedure. Open up a command prompt (CMD/PowerShell). Type "diskpart" to start up diskpart. You will see the prompt change to "DISKPART>". Type "list vol" to list all available volumes. You can identify the drive by size and file system. Additionally, the volume doesn't currently have a drive letter. Select the volume using "sel vol <number>".

  15. windows 10

    2. Normally you don't have to do anything on that, because Windows remembers the last drive letter mounted for each VHD drive. When you change between VHDs (and/or external drives) often, maybe this doesn't work for you. Of course you can do it with a script. Here is a batch file (without Powershell, which would be more powerful):

  16. Powershell script to assign a drive letter automatically

    I run wbadmin to create a baremetal backup. The destination drive has to have a folder "CriticalBackup" on it then the backup goes to that drive. So if I swap the drive for air gap, I don't have to worry about the drive letter changing. Set variable for "USB drive" through a search for a unique directory only available on de USB drive.

  17. PowerShell Function to Determine Available Drive Letters

    11 12.PARAMETER ExcludeDriveLetter 13 Drive letter(s) to exclude regardless if they're available or not. The default excludes drive letters 14 A-F and Z. 15 16.PARAMETER Random 17 Return one or more available drive letters at random instead of the next available drive letter. 18 19.PARAMETER All 20 Return all available drive letters. The ...

  18. #PSTip Get next available drive letter

    Mapping drives is a routine task for IT pros—you choose a free drive letter, ranging from A-Z, and then use it to map a drive to a specific path. ... Windows 8 and Server 2012 ship with the Storage module which provides PowerShell cmdlets for end to end management of Windows storage. One of the module functions is Get-AvailableDriveLetter ...

  19. Get Disk and Set Drive letter : r/PowerShell

    The installed windows image will detect the drives and assign the letters as it wants. ... The drive letter mapping is first script in the second batch, as earlier software is install on the boot drive. But every powershell script is running on the OS that's in the OOBE phase.

  20. Find drive letter assignments for hub slots using Powershell?

    Because of the way Windows assigns available drive letters to mounted USBs, I need a way to tell an end-user which USB is in which slot in a 4-port USB hub. In Device Manager under USB Mass Storage Device, I see 4 entries of the form "Port_#000x.Hub_#000y".

  21. Get Drive Letter from Path using PowerShell

    Conclusion#. In PowerShell, there are many solutions we can use to get drive letter from the path. First, we can use Split-Path cmdlet and specify Qualifier parameter. Second, we can use PSDrive property of the path item.. The third, for current path we can also use Drive property. Fourth, we can use String Split function. After splitting the path, the first character should be the drive letter.