【发布时间】:2008-11-19 19:27:26
【问题描述】:
我经常访问 Powershell 中的共享网络文件夹以获取文件等。但如果共享需要用户名/密码,Powershell 不会提示我输入这些,这与 Windows 资源管理器不同。如果我首先在 Windows 资源管理器中连接到该文件夹,Powershell 将允许我连接。
如何在 Powershell 中验证自己的身份?
【问题讨论】:
标签: powershell
我经常访问 Powershell 中的共享网络文件夹以获取文件等。但如果共享需要用户名/密码,Powershell 不会提示我输入这些,这与 Windows 资源管理器不同。如果我首先在 Windows 资源管理器中连接到该文件夹,Powershell 将允许我连接。
如何在 Powershell 中验证自己的身份?
【问题讨论】:
标签: powershell
乍一看真的很想使用New-PSDrive 为其提供凭据。
> New-PSDrive -Name P -PSProvider FileSystem -Root \\server\share -Credential domain\user
New-PSDrive:无法检索 cmdlet 的动态参数。无法为“文件系统”提供程序检索 NewDrive 的动态参数。提供程序不支持使用凭据。请在不指定凭据的情况下再次执行该操作。
文档声明您可以提供PSCredential 对象,但如果您仔细观察,cmdlet 还不支持此功能。也许在下一个版本中我猜。
因此,您可以使用net use 或WScript.Network 对象,调用MapNetworkDrive 函数:
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("u:", "\\server\share", $false, "domain\user", "password")
显然,对于较新版本的 PowerShell,New-PSDrive cmdlet 可以使用凭据映射网络共享!
New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist
【讨论】:
-Persist 选项,驱动器将被创建为普通的 Windows 映射驱动器。跨度>
这不是特定于 PowerShell 的答案,但您可以先使用“NET USE”对共享进行身份验证:
net use \\server\share /user:<domain\username> <password>
然后在 PowerShell 中执行您需要执行的任何操作...
【讨论】:
PowerShell 3 supports this out of the box 现在。
如果您卡在 PowerShell 2 上,则基本上必须使用旧的 net use 命令(如前所述)。
【讨论】: