通过 PowerShell 将网络驱动器映射到 WebDAV 服务器

Pet*_*ner 6 powershell webdav

我的目标是通过 PowerShell 将 Windows 中的网络驱动器映射到 WebDAV 服务器。

我有一个脚本可以自动创建一个安装了 IIS 并配置了 WebDAV 的 Azure VM。我可以通过 Windows 资源管理器成功地将网络驱动器手动映射到 WebDAV 服务器(使用使用不同凭据的选项)。这确认 WebDAV 服务器配置正确。我也可以读写文件。

通过 PowerShell,我尝试使用命令 New-PSDrive 并得到如您所见的错误。

New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http://$serviceName.cloudapp.net/" –Persist
New-PSDrive : When you use the Persist parameter, the root must be a file system location on a remote computer.
At line:1 char:1
+ New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http:// ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Z:PSDriveInfo) [New-PSDrive], NotSupportedException
    + FullyQualifiedErrorId : DriveRootNotNetworkPath,Microsoft.PowerShell.Commands.NewPSDriveCommand
Run Code Online (Sandbox Code Playgroud)

或不带参数 -Persist

New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http://$serviceName.cloudapp.net/"
New-PSDrive : The specified drive root "http://webdavservertest3.cloudapp.net/" either does not exist, or it is not 
a folder.
At line:1 char:1
+ New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http:// ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (Z:PSDriveInfo) [New-PSDrive], IOException
    + FullyQualifiedErrorId : DriveRootError,Microsoft.PowerShell.Commands.NewPSDriveCommand
Run Code Online (Sandbox Code Playgroud)

如您所见,该术语"http://$serviceName.cloudapp.net/"成功评估为"http://webdavservertest3.cloudapp.net/"

那么,这是正确的方法吗?New-PSDrive 应该能够映射到 WebDAV 服务器吗?如果没有,任何想法通过 PowerShell 映射网络驱动器?

Rya*_*ies 5

这是我将 Sysinternals WebDAV 站点安装到我的 S: 驱动器的工作示例:

[String]$WebDAVShare = '\\live.sysinternals.com\Tools'
New-PSDrive -Name S -PSProvider FileSystem -Root $WebDAVShare
Run Code Online (Sandbox Code Playgroud)

请注意,您需要使用 UNC 格式,而不是http://前缀。

您还需要确保 WebClient 服务正在您的计算机上运行。

如果您想确认服务器是否支持 WebDAV,您可以执行以下操作:

(Invoke-WebRequest http://live.sysinternals.com -Method Options).Headers.DAV  
Run Code Online (Sandbox Code Playgroud)

如果返回类似的内容,1,2,3则服务器支持各种版本的 WebDAV。(尽管服务器管理员可能不允许使用选项动词。)