无需映射驱动器号即可访问网络共享(PowerShell)


23

我想访问远程SMB网络共享\\SHARE-HOST\而不映射驱动器号。我可以在Windows中通过键入\\SHARE-HOST\Share_folder\资源管理器手动进行操作。如果要以编程方式执行此操作,则必须使用net use命令。这需要我指定一封信。


该命令Set-Location \\SHARE-HOST\Share-folder对您来说在Powershell中不起作用吗?是否有错误消息?
jscott

1
“我必须使用net use命令。这需要我指定一个字母。” 您不必指定一个:net use * \\share\folder将使用下一个可用的驱动器号(从开始Z:
kapex

1
实际上,您根本不需要指定或使用净使用字母。看到这里的第一个答案:serverfault.com/questions/580369/...
约书亚汉利

Answers:


26

PowerShell完全支持UNC路径;您可以在需要目录或文件名的任何地方使用它们:

  • Set-Location \\servername\sharename
  • Get-ChildItem \\servername\sharename
  • Copy-Item \\servername1\sharename1\filename.ext \\servername2\sharename2
  • Remove-Item \\servername\sharename\foldername\filename.ext

但是,您需要适当的访问权限才能实际连接到远程共享。这意味着您的用户帐户必须已经具有必需的权限,或者您必须在访问远程服务器上的文件夹和文件之前手动建立与远程服务器的网络连接。

另请参阅此处:https : //stackoverflow.com/questions/303045/connecting-to-a-network-folder-with-username-password-in-powershell


奇怪的是,我注意到一种行为,例如Get-ChildItem除非您将当前位置更改Set-Location为远程计算机(例如),否则无法列出内容servername。可能与UAC和/或win10 +机器有关,但不确定。
Petr Abdulin

2

您需要“浏览”共享,除非您必须事先使用备用凭据进行身份验证,然后才能使用以下内容:

get-childitem \\server\share

2

我只需输入以下内容即可访问笔记本电脑上的共享文件夹

cd \\MYLAPTOP\C$\Games

如果文件夹名称包含空格,请使用引号:

cd "\\MYLAPTOP\C$\Games\Game Name"

这使我可以访问远程计算机的文件系统。

PS Microsoft.PowerShell.Core\FileSystem::\\MYLAPTOP\C$\Games>

cd是Set-Locations。http://technet.microsoft.com/zh-cn/library/ee176962.aspx)的别名,它支持此类路径。

但是,我需要先尝试在浏览器中打开路径,然后才能在资源管理器中登录该计算机。然后它也可以在PS中使用。您可能首先需要在PowerShell中添加登录凭据。


1

只是想补充一下massimo的答案,我还注意到,如果我在其他PSDrive中,则无法使用网络位置,但常规位置可以正常工作。

例如,如果我在Cert:\LocalMachine\>PS HKLM:\>不能cd \\server\share

如果我Set-Location C:,然后Set-Location \\servername\share工作正常。

我还发现许多命令都不需要切换到网络位置。例如我可以Get-Content '\\127.0.0.1\C$\eula.1028.txt'从C:\罚款。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.