Saltar al contenido

Powershell: cómo asignar una unidad de red con un nombre de usuario/contraseña diferente

Te sugerimos que revises esta resolución en un ambiente controlado antes de pasarlo a producción, un saludo.

Solución:

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("r:", "\romeoboxfiles", $false, "domainuser", "password")

Debería hacer el truco,

Amabilidad,

Dan

Si necesita una forma de almacenar la contraseña sin ponerla en texto sin formato en su secuencia de comandos o en un archivo de datos, puede usar DPAPI para proteger la contraseña para que pueda almacenarla de forma segura en un archivo y recuperarla más tarde como texto sin formato, por ejemplo:

# Stick password into DPAPI storage once - accessible only by current user
Add-Type -assembly System.Security
$passwordBytes = [System.Text.Encoding]::Unicode.GetBytes("Open Sesame")
$entropy = [byte[]](1,2,3,4,5)
$encrytpedData = [System.Security.Cryptography.ProtectedData]::Protect( `
                       $passwordBytes, $entropy, 'CurrentUser')
$encrytpedData | Set-Content -enc byte .password.bin

# Retrieve and decrypted password
$encrytpedData = Get-Content -enc byte .password.bin
$unencrytpedData = [System.Security.Cryptography.ProtectedData]::Unprotect( `
                       $encrytpedData, $entropy, 'CurrentUser')
$password = [System.Text.Encoding]::Unicode.GetString($unencrytpedData)
$password

¿Vino aquí buscando cómo mapear unidades usando PowerShell?

Hay una forma más sencilla con PowerShell3.0. New-PSDrive ha sido actualizado con el -persist opción. P.ej

New-PSDrive -Name U -PSProvider FileSystem -Root \yourserveryourfolder -Credential yourdomainusername -Persist

En el pasado, New-PSDrive afectó solo a la sesión actual de PowerShell. -persist hace que el mapeo se registre con el O/S, por así decirlo. Ver Nuevo-PSDrive

Para responder a la pregunta original, puede variar las credenciales utilizadas. Utilizando -Credential cambiar el dominionombre de usuario hace que Windows solicite una contraseña. Otra alternativa es pasar un objeto PSCredential como en el ejemplo a continuación. Consulte Obtener credencial para obtener más detalles.

PS C:> $User = "mydomainusername"
PS C:> $PWord = ConvertTo-SecureString -String "mypassword" -AsPlainText -Force
PS C:> $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
PS C:> New-PSDrive -Name U -PSProvider FileSystem -Root \domainsomefolder -Credential $Credential -Persist  

Puedes animar nuestra labor añadiendo un comentario y puntuándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *