Подключение к сетевой папке с именем пользователя / паролем в Powershell - PullRequest
54 голосов
/ 19 ноября 2008

Я часто обращаюсь к общим сетевым папкам в Powershell для получения файлов и т. Д. Но если для общего ресурса требуется имя пользователя / пароль, Powershell не запрашивает их, в отличие от Windows Explorer. Если я сначала подключусь к папке в Windows Explorer, то Powershell разрешит мне подключиться.

Как я могу аутентифицировать себя в Powershell?

Ответы [ 3 ]

60 голосов
/ 20 ноября 2008

На первый взгляд очень хочется использовать 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 объект, но если вы посмотрите поближе, командлет пока не поддерживает это. Возможно в следующей версии, я думаю.

Поэтому вы можете использовать net use или объект WScript.Network, вызывая функцию MapNetworkDrive:

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

Редактировать для New-PSDrive в PowerShell 3.0

Очевидно, что в более новых версиях PowerShell командлет New-PSDrive работает для сопоставления сетевых ресурсов с учетными данными!

New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist
40 голосов
/ 19 ноября 2008

Это не специфичный для PowerShell ответ, но вы могли бы сначала пройти аутентификацию на общем ресурсе, используя «NET USE»:

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

А затем делайте все, что вам нужно, в PowerShell ...

9 голосов
/ 25 сентября 2012

PowerShell 3 теперь поддерживает это из коробки .

Если вы застряли в PowerShell 2, вам в основном нужно использовать устаревшую команду net use (как предлагалось ранее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...