Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins can't see mapped drive

I'm getting the following error when trying to execute a build in Jenkins:

Started by user anonymous
Building in workspace C:\Users\mryan\git\AML
[AML] $ cmd /c call C:\Users\MRYAN~1.ASA\AppData\Local\Temp\hudson3772834793680550098.bat

C:\Users\mryan\git\AML>asc-tree -v cs1 . 
Array @filter_prune missing the @ in argument 1 of push() at C:\asc\asc\win2k/asc-tree. line 293.
asc-tree.: ASC (=Z:\asc) is not a directory!
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

When I open a normal command prompt and run the same command (asc-tree -v cs1 .), it works okay.

I had a look here and tried using UNC notation in my environment variables instead of "Z:\" but that just gave me the same error with the machine name instead of the drive.

I also tried changing the service to use my account Log On details instead of the "Local System Account" but that didn't seem to do it.

Anybody have any ideas??

like image 589
TomSelleck Avatar asked Jul 14 '14 09:07

TomSelleck


People also ask

How do I access a network drive in Jenkins?

Basically you can access your network shared drive (Z) using by servername or IP from jenkins command. Write \\192.168. x. xxx\Your_Folder instead of z:\Your_Folder .

How do I fix a mapped drive that disappears?

Right click your mapped drive and go to properties. Check the “Reconnect” box. If you are using Home Folders for your user accounts, create a mapped drive in the GPO, setting %HOMESHARE% as the location, and select the drive letter you are using for home drives. Make sure to check the reconnect box here as well.


1 Answers

Following this answer, I managed to get it working.

Solution can be found in Aspera Support's article: How to map network shares into drives to a Windows service permanently.

Solution:

In order for network shares to be mapped into drives and accessible within Windows services, you need to login as the NT AUTHORITY\SYSTEM account.

To do this, download the Sysinternals Suite from Microsoft, and unzip it to a directory, say C:\TEMP The following steps assume that you've unzipped SysInternals to C:\TEMP and all the executables are in there.

  1. Launch a command prompt as Administrator.
  2. CD \TEMP
  3. psexec -i -s cmd.exe
    This launches a new command prompt window, and step 4 should be performed in that new window.
  4. net use Z: \\servername_OR_IP\sharedfolder /u:username /persistent:yes
    Provide the credentials of a user having access to the shared folder.

  5. Create a script that runs on computer startup that has only line 4 in it acccording to Microsoft's article: Assign Computer Startup scripts.

like image 100
TomSelleck Avatar answered Nov 02 '22 23:11

TomSelleck