Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 440 Vote(s) - 3.63 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Powershell: how to map a network drive with a different username/password

#1
**Background:** Assume I use the following powershell script from my local machine to automatically map some network drives.


$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("p:", "\\papabox\files");

$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("q:", "\\quebecbox\files");

## problem -- this one does not work because my username/password
## is different on romeobox
$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("r:", "\\romeobox\files");

**Question:** How do I modify the script so that I can also connect to romeobox, even though my username/password on romeobox is different from that of the other two boxes?
Reply

#2
If you need a way to store the password without putting it in plain text in your script or a data file, you can use the DPAPI to protect the password so you can store it safely in a file and retrieve it later as plain text e.g.:

# 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

Reply

#3
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("r:", "\\romeobox\files", $false, "domain\user", "password")

Should do the trick,

Kindness,

Dan
Reply

#4
Came here looking for how to map drives using PowerShell?

There's a simpler way with PowerShell3.0. `New-PSDrive` has been updated with the `-persist` option. E.g.

New-PSDrive -Name U -PSProvider FileSystem -Root \\yourserver\your\folder -Credential yourdomain\username -Persist

In the past, `New-PSDrive` affected only the current PowerShell session. `-persist` causes the mapping to be registered with the O/S, as it were. See [New-PSDrive][1]

To answer the original question, you can vary the credentials used. Using `-Credential` to vary the domain\username causes Windows to prompt for a password. Another alternative is to pass a PSCredential object as in the example below. See [Get-Credential][2] for more detail.

PS C:\> $User = "mydomain\username"
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 \\domain\some\folder -Credential $Credential -Persist


[1]:

[To see links please register here]

[2]:

[To see links please register here]

Reply

#5
$User = "user"
$PWord = ConvertTo-SecureString -String "password" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
$net = $(New-Object -ComObject WScript.Network)
$net.MapNetworkDrive("r:", "\\server\share")
Reply

#6
I found this easy one liner worked in my case (little "out of the box" thinking ;) )

(Start-Process -FilePath "C:\windows\system32\NET.exe" -ArgumentList "USE I: \\Server\Volume /USER:XXXXX *password* /persistent:yes" -Wait -Passthru).ExitCode

And as an added bonus, you get an nice exitcode to report off of. Hope that helps.
Reply

#7
If you are set on using powershell native (if there is such a thing), then you can use:

New-SMBMapping -LocalPath "V:" -RemotePath $NetworkPath -UserName $UserAndDomain -Password $pass

See:

[To see links please register here]


There are some additional nuggets like Remove-SMBMapping, etc.
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through