What I did (on Windows 10):
Expand https://sourceforge.net/projects/ngspice/files/ng-spice-rework/30/ngspice-30_64.zip/download into directory C:, so you have ngspice in C:\Spice64\bin.
Copy C:\Program Files\KiCad\share\kicad\demos\simulation into C:\KiCad, to get C:\KiCad\simulation\laser_driver. This just serves as an example for an arbitrary eeschema project placed into an arbitrary folder.
Set the access for the whole directory tree C:\KiCad to full access for all users. This allows KiCad to read and write to this directory without the need for having admin rights.
Install recent KiCad nightly 5.1rc.
Run eeschema
Open file c:\KiCad\simulation\laser_driver\laser_driver.sch
Replace the text box entry
.tran 10p 150n
by
.tran 10p 150n
.control
run
rusage
set filetype=ascii
write c:\Kicad\laser.out "/in" "/out"
plot "/in" "/out"
.endc
File–>Save current sheet
Tools–>Generate netlist file…–>Spice
Select ‘Default format’
Simulator command: C:\Spice64\bin\ngspice.exe
Button: Generate netlist
Button: Save (Store laser_driver.cir to C:\KiCad\Simulation\laser_driver)
Button: Run Simulator
Voila:
ngspice.exe simulates the file laser_driver.cir and plots the resulting output. No problem finding the spinit file. No need to type anything in addition. No “absolute_path_to_netlist_file” : Invalid argument response.