I have a script that runs well the vast majority of the time. On occasion I get an exception. I would appreciate any insight as to why it fails on occasion. I can't understand why the new-object cmdlet wouldn't be recognized:
Message: The term 'new-object' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Source: System.Management.Automation
StackTrace: at System.Management.Automation.CommandDiscovery.LookupCommandInfo(String commandName, CommandTypes commandTypes, SearchResolutionOptions searchResolutionOptions, CommandOrigin commandOrigin, ExecutionContext context)
at System.Management.Automation.CommandDiscovery.LookupCommandProcessor(String commandName, CommandOrigin commandOrigin, Nullable`1 useLocalScope)
at System.Management.Automation.ExecutionContext.CreateCommand(String command, Boolean dotSource)
at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
Here is the script I am running:
param([string]$endpoint)
$ErrorActionPreference = "Stop";
try
{
[System.Reflection.Assembly]::LoadFile("D:\dotNET_Apps\dotNETCOExBatch\DotNETCOExBatch\bin\DotNETCOExBatch.dll")
$schedule = new-object DotNETCOExBatch.CallService
$reply = $schedule.CallWebService($endpoint)
if ($reply)
{
$host.setshouldexit(0)
}
else
{
$host.setshouldexit(8)
}
}
Catch
{
$nl = [Environment]::NewLine
$evt=new-object System.Diagnostics.EventLog("Application")
$evt.Source="BatchPowerShell"
$infoevent=[System.Diagnostics.EventLogEntryType]::Error
$batchException = $_.Exception
$logMessage = " "
while ($batchException)
{
$exMessage = $batchException.Message
$exStackTrace = $batchException.StackTrace
$exSource = $batchException.Source
$logMessage += "$nl $nl Message: $exMessage $nl $nl Source: $exSource $nl $nl StackTrace: $exStackTrace"
$batchException = $batchException.InnerException
}
$evt.WriteEntry(" Error starting or process cancellation of $endpoint $logMessage",$infoevent)
$host.setshouldexit(15)
}