Exemplo n.º 1
0
 private void Connect()
 {
     ResetUnsetProperties();
     if ((!_initializing && !base.DesignMode) && (((!string.IsNullOrEmpty(_userDomain) && !string.IsNullOrEmpty(_userName)) && !string.IsNullOrEmpty(_userPassword)) || ((string.IsNullOrEmpty(_userDomain) && string.IsNullOrEmpty(_userName)) && string.IsNullOrEmpty(_userPassword))))
     {
         if (_v2TaskService != null || _v1TaskScheduler != null)
         {
             Dispose(true);
         }
         if (_hasV2 && !_forceV1)
         {
             _v2TaskService = new TaskSchedulerClass();
             if (!string.IsNullOrEmpty(_targetServer))
             {
                 if (_targetServer.StartsWith(@"\"))
                 {
                     _targetServer = _targetServer.TrimStart(new char[] { '\\' });
                 }
                 if (_targetServer.Equals(Environment.MachineName, StringComparison.CurrentCultureIgnoreCase))
                 {
                     _targetServer = null;
                 }
             }
             _v2TaskService.Connect(_targetServer, _userName, _userDomain, _userPassword);
             _targetServer = _v2TaskService.TargetServer;
             _userName     = _v2TaskService.ConnectedUser;
             _userDomain   = _v2TaskService.ConnectedDomain;
             _maxVer       = GetV2Version();
         }
         else
         {
             _v1Impersonation = new WindowsImpersonatedIdentity(_userName, _userDomain, _userPassword);
             var scheduler = new CTaskScheduler();
             _v1TaskScheduler = (ITaskScheduler)scheduler;
             if (!string.IsNullOrEmpty(_targetServer))
             {
                 if (!_targetServer.StartsWith(@"\\"))
                 {
                     _targetServer = @"\\" + _targetServer;
                 }
             }
             else
             {
                 _targetServer = null;
             }
             _v1TaskScheduler.SetTargetComputer(_targetServer);
             _targetServer = (string)_v1TaskScheduler.GetTargetComputer();
             _maxVer       = _v1Ver;
         }
     }
 }
Exemplo n.º 2
0
 protected override void Dispose(bool disposing)
 {
     if (_v2TaskService != null)
     {
         Marshal.ReleaseComObject(_v2TaskService);
         _v2TaskService = null;
     }
     if (_v1TaskScheduler != null)
     {
         Marshal.ReleaseComObject(_v1TaskScheduler);
         _v1TaskScheduler = null;
     }
     if (_v1Impersonation != null)
     {
         _v1Impersonation.Dispose();
         _v1Impersonation = null;
     }
     base.Dispose(disposing);
 }