tutorial - Conexión a una carpeta de red con nombre de usuario/contraseña en Powershell
powershell tutorial (5)
A menudo accedo a carpetas de red compartidas en Powershell para tomar archivos, etc. Pero si el recurso compartido requiere un nombre de usuario / contraseña, Powershell no me solicita esto, a diferencia del Explorador de Windows. Si me conecto a la carpeta primero en Windows Explorer, Powershell me permitirá conectarme.
¿Cómo puedo autenticarme en Powershell?
A primera vista, uno realmente quiere usar New-PSDrive proporcionándole credenciales.
> New-PSDrive -Name P -PSProvider FileSystem -Root //server/share -Credential domain/user
¡Falla!
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.
La documentación indica que puede proporcionar un objeto PSCredential, pero si mira más de cerca, el cmdlet aún no lo admite. Quizás en la próxima versión, supongo.
Por lo tanto, puede usar net use o el objeto WScript.Network, llamando a la función MapNetworkDrive :
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("u:", "//server/share", $false, "domain/user", "password")
Edite para New-PSDrive en PowerShell 3.0
Al parecer, con las versiones más nuevas de PowerShell, el cmdlet New-PSDrive funciona para asignar recursos compartidos de red con credenciales.
New-PSDrive -Name P -PSProvider FileSystem -Root //Server01/Public -Credential user/domain -Persist
En la misma máquina, pruebo el mismo comando NET USE
desde un símbolo del sistema normal y desde un símbolo del sistema de PowerShell v2:
NET USE Enlace: SharePoint
In CMD
funciona bien.
In PS
, dice que funciona bien, y el disco está mapeado. Sin embargo, la mayoría del estado de la unidad como aparece cuando escribe simplemente NET USE
está en blanco y la asignación de la unidad no funciona (es decir, no puede obtener datos de la unidad asignada).
Puede ser un problema de SharePoint ya que el NET USE
de powershell a veces funciona, otras veces no, pero aún así parece que hay una diferencia entre CMD y PS.
Esta no es una respuesta específica de PowerShell, pero podría autenticarse contra el recurso compartido usando "NET USE" primero:
net use //server/share /user:<domain/username> <password>
Y luego haz lo que necesites hacer en PowerShell ...
Me gustaría compartir mi experiencia aquí.
A menudo uso la unidad de red para extraer información del servidor remoto. Si está utilizando Powershell 2.0 en el servidor remoto.
La mejor opción es usar el comando NET USE.
Net use //10.10.10.10/SharedDrive "password@123" /User:Abcd.com/username
PowerShell 3 ahora es compatible con esto .
Si está atascado en PowerShell 2, básicamente debe usar el comando de net use
heredado (como se sugirió anteriormente).