Validate Parameters should probably be called inside of ExecuteCommand. That way if we call ExecuteCommand from inside another cmdlet, the parameters will still be validated.