2008-11-19 160 views
42

我經常訪問Powershell中的共享網絡文件夾以獲取文件等。但是如果共享需要用戶名/密碼,Powershell不會提示我輸入這些文件,這與Windows資源管理器不同。如果我先在Windows資源管理器中連接到文件夾,Powershell將允許我連接。使用Powershell連接到使用用戶名/密碼的網絡文件夾

如何在PowerShell中驗證自己的身份?

回答

46

乍一看,人們真的想用New-PSDrive提供憑據。

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

失敗!

New-PSDrive : Cannot retrieve the dynamic parameters for the cmdlet. Dynamic parameters for NewDrive cannot be retrieved for the 'FileSystem' provider. The provider does not support the use of credentials. Please perform the operation again without specifying credentials.

該文檔指出您可以提供PSCredential對象,但如果仔細觀察,cmdlet還不支持此對象。也許在下一個版本我猜。

因此您可以使用淨使用或WScript.Network對象,調用MapNetworkDrive功能:

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

編輯爲New-PSDrive in PowerShell 3.0

使用PowerShell的新版本

顯然,新的PSDrive cmdlet工程映射網絡共享與憑據!

New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist 
+2

這是一個開放的錯誤:https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=334084&SiteID=99 – halr9000 2008-11-20 21:21:00

33

這不是一個特定的PowerShell的答案,但你可以使用「NET USE」第一對份額進行驗證:

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

然後做任何你需要在PowerShell中做...

+2

這是其中一個「使用什麼有效」的案例,我同意匿名。通常,我會盡我所能提供PowerShell的答案,但現在還沒有。 :) – halr9000 2008-11-20 15:28:20

+0

這是從其他語言訪問Windows共享的好方法。 – Trismegistos 2014-01-16 16:17:11

2

在同一臺機器,我嘗試同樣NET USE命令從常規命令提示符,從一個PowerShell V2命令提示符:

NET USE鏈接:SharePoint

In CMD它工作得很好。

In PS,它說它工作正常,驅動器被映射。但是,大多數情況下,鍵入NET USE時驅動器的狀態爲空,且驅動器映射不起作用(即無法從映射驅動器獲取數據)。

這可能是一個SharePoint問題,因爲powershell有時可以使用NET USE,有時不會,但似乎仍然看起來CMD和PS之間存在差異。

-1

我想在這裏分享我的經驗。

我經常使用網絡驅動器從遠程服務器獲取信息。如果您在遠程服務器上使用Powershell 2.0。

最好的選擇是使用NET USE命令。

Net use \\10.10.10.10\SharedDrive "[email protected]" /User:Abcd.com\username 
相關問題