Issue: When I am running code from PowerShell console its running fine but when I execute it through SQL agent job step, I am getting below error: –
The job script encountered the following errors. These errors did not stop the script: A job step received an error at line 14 in a PowerShell script. The corresponding line is ‘$files = Get-ChildItem “\\$comp\D$\*.xls”‘. Correct the script and reschedule the job. The error information returned by PowerShell is: ‘An object at the specified path \\ServerName\D$ does not exist. ‘ A job step received an error at line 43 in a PowerShell script. The corresponding line is ‘ $str = Get-Content $i.FullName | Where-Object { ($_ -match ‘Alive’) }’. Correct the script and reschedule the job. The error information returned by PowerShell is: ‘Cannot bind argument to parameter ‘Path’ because it is null. ‘. Process Exit Code -1. The step failed.
Solution: SQL Server Agent allows users to directly run PowerShell scripts in SQL Server Agent. Internally this is implemented by reusing the SQLPS.EXE shell. When SQL Server Agent starts SQLPS.EXE, It cannot access file system.
To access file system, you need to change the scope from SQL to filesystem.
You can do it by adding “cd C:” before executing filesystem commands.
Reference: Rohit Garg (http://mssqlfun.com/)
You can find and follow MSSQLFUN:-
http://www.facebook.com/mssqlfun
Other Linked Profiles :-
http://www.sqlservercentral.com/blogs/mssqlfun/
http://social.msdn.microsoft.com/Profile/rohitgarg
http://www.toadworld.com/members/rohit-garg/blogs/default.aspx
Thanks Rohit You just saved my day!!
Ditto to Ankur’s comment. Spent hours on this and then found your article. Thanks again.