当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] New-PSDrive - 如何使用 PowerShell Net Use 替代方案

作者:精品下载站 日期:2024-12-14 03:42:58 浏览:15 分类:玩电脑

New-PSDrive - 如何使用 PowerShell Net Use 替代方案


我们都知道 Net Use 命令,我们可以使用它从命令行映射网络驱动器。虽然我们可以在 PowerShell 中使用 Net Use,但还有一个更强大的替代方案,即 New-PSDrive cmdlet。

使用 New-PSDrive cmdlet,我们不仅可以映射网络驱动器,还可以创建到计算机上的本地文件夹或注册表项的驱动器映射。使用 cmdlet 创建的驱动器可以是临时的,仅适用于当前的 PowerShell 会话,也可以是永久的,以便可以在资源管理器中使用。

在本文中,我们将仔细研究 New-PSDrive cmdlet 的所有可能性,并提供一些有用的示例供您使用。

临时驱动器与永久驱动器

在我们了解如何创建网络驱动器之前,我首先想解释一下临时驱动器和持久驱动器之间的区别。

临时驱动器只能在当前 PowerShell 会话中使用。它们在 Windows 资源管理器中不可见,并且当您关闭 PowerShell 会话时它们就会消失。当您需要与远程文件夹或本地计算机上的长文件夹路径交互时,它们非常有用。

永久驱动器分配有一个驱动器号,因此也可以在资源管理器中使用。当您关闭 PowerShell 会话甚至重新启动计算机时,它们将保持可用。

使用 New-PSDrive 添加新的网络驱动器

要使用 PowerShell 映射网络驱动器,我们将创建持久网络连接。这样,网络驱动器将在资源管理器和其他工具中可用,而不仅仅是在 PowerShell 中。

创建网络连接需要几个参数:

Name

必须是可用的驱动器号

PSProvider

对于网络共享和文件夹设置为文件系统

Root

您要映射的网络位置

Persist

使其在 PowerShell 外部可用(在资源管理器中)

因此,要映射网络共享 \\VBoxSvr\Win11 并为其分配驱动器号 v:,我们可以使用以下命令:

New-PSDrive -Name V -PSProvider FileSystem -Root \VBoxSvr\Win11 -Persist

[玩转系统] New-PSDrive - 如何使用 PowerShell Net Use 替代方案

现在,网络位置将在资源管理器或您要使用的任何其他工具中可用。

对映射的网络驱动器使用不同的凭据

就像使用 Net Use 一样,我们可以使用不同的凭据来打开远程网络驱动器。为此,我们首先需要创建一个可用于映射网络驱动器的凭据对象。

# Get the credentials
$cred = Get-Credential

# Create the drive mapping with the credentials
New-PSDrive -Name V -PSProvider FileSystem -Root \VBoxSvr\Win11 -Persist -Credential $cred

在 PowerShell 中创建临时驱动器映射

如前所述,我们还可以使用 PowerShell 创建临时驱动器映射。通过临时映射,我们不仅仅局限于字母。我们可以为映射指定任何名称。此外,我们可以创建到计算机上本地文件夹的映射。

例如,我们可以使用以下命令创建到日志文件夹的映射:

New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder"

这样我们就可以使用 cd log: 快速导航到日志文件。但我们不仅可以导航到该文件夹,现在还可以引用其他 cmdlet 中的映射。例如:

Get-ChildItem log:

[玩转系统] New-PSDrive - 如何使用 PowerShell Net Use 替代方案

创建到本地文件夹的持久映射

关闭 PowerShell 窗口后,临时映射就会消失。没有选项可以使用 New-PSDrive 将映射存储到本地文件夹。但是,当您需要经常从 PowerShell 访问长文件夹路径时,您可以将该 cmdlet 添加到您的 PowerShell 配置文件中。这样,每次打开 PowerShell 时都会重新创建映射。

首先,打开您的个人资料:

ise $profile

如果您收到找不到您的个人资料的错误,请按照本文快速创建个人资料。

在您的 PowerShell 配置文件中添加以下行:

# Create shotcuts to long folder paths
New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder" | Out-Null

请注意,我们添加了 | Out-Null 到 cmdlet。默认情况下,cmdlet 将输出驱动器映射的结果。但我们不希望每次打开新的 PowerShell 会话时都会出现这种情况。

使用 New-PSDrive 映射注册表项

除了映射网络驱动器和文件夹之外,我们还可以使用 New-PSDrive cmdlet 映射注册表项。默认情况下,您会发现已经有一个到 HKEY_CURRENT_USER 项和 HKEY_LOCAL_MACHINE 项的映射。您可以使用以下命令来减少这些:

Get-PsDrive -PSProvider Registry

# Result
Name           Used (GB)     Free (GB) Provider      Root                   CurrentLocation
----           ---------     --------- --------      ----                   ---------------
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE

如果要创建到 HKEY_USERS 配置单元的映射,可以执行以下操作:

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS

我们不限于提供的顶级注册表,您可以创建到您想要的任何注册表项的映射。例如,HKCU Windows NT 密钥:

New-PSDrive -Name WinNT -PSProvider Registry -Root HKEY_CURRENT_USER\Software\Microsoft\Windows NT

您现在可以使用创建映射轻松添加、编辑或删除注册表项:

# WinNT: is the mapping that we created earlier
New-Item -Path WinNT: -Name LazyAdmin

总结

老实说,如果您只想映射资源管理器中也可用的网络共享,那么使用 New-PSDrive 没有什么优势。 Net-Use命令更短并且更方便使用。

但是,当您只需要在 PowerShell 会话中创建映射时,或者当您想要创建本地文件夹或注册表的快捷方式时,cmdlet 可能会非常有用。

如果您有任何疑问,请在下面发表评论!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯