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.