I have the following as my post-build event in a C# .NET 4.0 project in Visual Studio 2010:
call \"$(SolutionDir)Publish\\Publish.exe\" \"$(TargetDir)\" \"\\
While working on another project, I actually managed to replicate your problem. I was passing multiple args to a powershell script and found that they were being treated as a single argument. Googling found this link
http://davidfrette.wordpress.com/2011/01/20/creating-powershell-pre-build-and-post-build-events-for-visual-studio-projects/
Which has the solution of putting a space at the end of the first parameter i.e. in your example it would be
call "$(SolutionDir)Publish\Publish.exe" "$(TargetDir) " "\\lithium\c\Photon"
This worked for me so hopefully it will fix your problem.
If you have more than 2 args then you would need to add a space at the end of each except for the last one.
HTH