Подключение к сетевой папке с именем пользователя/паролем в Powershell
Я часто получаю доступ к общим сетевым папкам в Powershell для захвата файлов и т.д. Но если для общего ресурса требуется имя пользователя/пароль, Powershell не запрашивает меня для них, в отличие от Windows Explorer. Если я сначала подключусь к папке в Проводнике Windows, Powershell позволит мне подключиться.
Как я могу аутентифицироваться в Powershell?
Ответы
Ответ 1
На первый взгляд очень хочется использовать 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")
Очевидно, что в новых версиях PowerShell командлет New-PSDrive
работает для сопоставления сетевых ресурсов с учетными данными!
New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist
Ответ 2
Это не ответ, зависящий от PowerShell, но вы можете сначала аутентифицироваться против общего ресурса, используя "NET USE":
net use \\server\share /user:<domain\username> <password>
И затем сделайте все, что вам нужно сделать в PowerShell...
Ответ 3
Теперь PowerShell 3 поддерживает это из коробки.
Если вы застряли в PowerShell 2, вам в основном нужно использовать устаревшую команду net use
(как было предложено ранее).
Ответ 4
На той же машине я пытаюсь выполнить ту же команду NET USE
из обычной командной строки и из командной строки PowerShell v2:
NET USE Ссылка: SharePoint
In CMD
он работает нормально.
In PS
, он говорит, что он работает нормально, и привод сопоставляется. Однако в основном статус диска, указанный при вводе только NET USE
, пуст, и сопоставление дисков не работает (т.е. Вы не можете получить данные с подключенного диска).
Это может быть проблема SharePoint, так как NET USE
из powershell иногда работает, иногда нет, но все же кажется, что существует разница между CMD и PS.
Ответ 5
Я хотел бы поделиться своим опытом здесь.
Я часто использую сетевой диск для извлечения информации с удаленного сервера. Если вы используете Powershell 2.0 на удаленном сервере.
Наилучшим вариантом является использование команды NET USE.
Net use \\10.10.10.10\SharedDrive "[email protected]" /User:Abcd.com\username