-2

I have a requirement to map the drives in Windows using go and found this link to be useful What is the best way to map windows drives using golang?

When I tried to use the code given here, I ran into this error

exec: "net use": executable file not found in %PATH% 

I verified that the bin folder of go is in the PATH variable. I also tried by running it like

cmd, err := exec.Command("cmd", "/c", "NET USE", "T:", \\SERVERNAME\C$, "/PERSISTENT").CombinedOutput()  

but I get this error:

exit status 1 You used an option with an invalid value.  

Any help on what I'm doing wrong here ?

Martin Tournoij
  • 26,737
  • 24
  • 105
  • 146
TechJunkie
  • 17
  • 3

1 Answers1

3

Every argument to exec.Command() is used as a single argument, so:

exec.Command(... "NET USE", ..)

Will mean that NET USE is passed as a single argument, which is the same as doing this from the command line:

cmd /c "net use"

Which means it will try to find net use.exe, instead of passing the argument use to net.exe.

So the correct way is:

exec.Command("cmd", "/c", "net", "use", "Q:, `\\SERVER\SHARE`, "/user:Alice pa$$word", "/P")

The cmd /c part probably isn't needed, but I don't have a Windows machine to verify.

Also note how I used backticks (`) for \\SERVER\SHARE instead of ", so you don't have to double up the backslashes.

Martin Tournoij
  • 26,737
  • 24
  • 105
  • 146
  • Thanks Carpetsmoker. This worked and also cmd is not required. The mistake I was doing is with /P. exec.Command("net use", "Q:, `\\SERVER\SHARE`, "/user:Alice pa$$word", "/P:YES") It requires P:YES instead of just /P – TechJunkie Jan 04 '18 at 03:21