66

我经常访问 Powershell 中的共享网络文件夹以获取文件等。但如果共享需要用户名/密码,Powershell 不会提示我输入这些,这与 Windows 资源管理器不同。如果我首先在 Windows 资源管理器中连接到该文件夹​​,Powershell 将允许我连接。

如何在 Powershell 中验证自己的身份?

4

3 回答 3

73

乍一看,人们真的很想使用New-PSDrive提供凭据。

> New-PSDrive -Name P -PSProvider FileSystem -Root \\server\share -Credential domain\user

失败!

New-PSDrive:无法检索 cmdlet 的动态参数。无法为“文件系统”提供程序检索 NewDrive 的动态参数。提供程序不支持使用凭据。请在不指定凭据的情况下再次执行该操作。

文档指出您可以提供一个PSCredential对象,但如果您仔细观察,cmdlet 还不支持这一点。也许在下一个版本中我猜。

因此,您可以使用net useWScript.Network对象,调用MapNetworkDrive函数:

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("u:", "\\server\share", $false, "domain\user", "password")

在 PowerShell 3.0 中编辑New-PSDrive

显然,对于较新版本的 PowerShell,该New-PSDrivecmdlet 可以使用凭据映射网络共享!

New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist
于 2008-11-20T15:59:52.050 回答
53

这不是特定于 PowerShell 的答案,但您可以先使用“NET USE”对共享进行身份验证:

net use \\server\share /user:<domain\username> <password>

然后在 PowerShell 中做任何你需要做的事情......

于 2008-11-19T20:23:44.093 回答
8

PowerShell 3 现在开箱即用地支持这一点

如果您卡在 PowerShell 2 上,则基本上必须使用 legacynet use命令(如前所述)。

于 2012-09-25T16:01:59.977 回答