I have a Windows 2003 fileserver that uses storage on an iSCSI array that seemed to “lose” it’s shares every time its rebooted. I suspected it was trying to initialize the shares before the iSCSI target was connected and not finding them, so i went looking for a way to force Windows to wait for the iSCSI target to be connected prior to attempting anything else. As it turns out, what I suspected was happening was absolutely correct, and was relatively easy to fix. The magic command, to make the Server Service dependant on the iSCSI service, and hence start after it is
sc config LanManServer depend= MSiSCSI
assuming your iSCSI targets are set up persistantly, you will no longer have to re-create your fileshares every time your server reboots.