Lately, I have been playing with libiscsi.
First round was a proxy for ImDisk (here).
Second round now is an iScsi client which can be used to discover, read and write from/to an iScsi target.
This has been tested with success under winpe (with no additional package).
Future version could include pipe in/out to eventually read/from other tools (like netcat, gzip, 7zip, lz4, etc).
Syntax is rather straightforward.
>iscsic iscsic 0.1 by firstname.lastname@example.org iscsic discover host iscsic capacity iscsi://host/target/lun iscsic read iscsi://host/target/lun [offset] [len] [fname] iscsic write iscsi://host/target/lun [offset] [len] [fname] set dos variable log=true to get verbosity
Sourcecode and binary is available here.