Пример #1
0
        public void DeleteShare(IShareDescriptor descriptor)
        {
            var wqlQuery = new ObjectQuery(string.Format(@"SELECT * from Win32_Share WHERE Name = '{0}'", descriptor.Name));

            ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(_managementClass.Scope, wqlQuery);
            ManagementObjectCollection shareObjectsCollection = objectSearcher.Get();

            if (shareObjectsCollection.Count == 0)
            {
                throw new ShareInstrumentationException(@"{0} {1}.", ExceptionMessages.Win32_ShareNotFound, descriptor.Name);
            }

            foreach (ManagementObject shareObject in shareObjectsCollection)
            {
                PropertyDataCollection outParams;
                long returnValue;

                var inParamsCollection = new List<PropertyDataObject>();
                inParamsCollection.Add(new PropertyDataObject() { Name = "Reason", Value = (uint)0 });

                _handler.Handle("Terminate", inParamsCollection, out outParams);

                returnValue = long.Parse(outParams["ReturnValue"].Value.ToString());

                if (returnValue != 0)
                {
                    throw new ShareInstrumentationException(@"{0} {1}.", ExceptionMessages.Win32_ShareFail, _errorMessageProvider.GetErrorMessage(ErrorMessageProvider.ErrorClass.Win32_Share, returnValue));
                }
            }
        }
Пример #2
0
        public void CreateShare(IShareDescriptor descriptor)
        {
            PropertyDataCollection outParams;
            long returnValue;

            var inParamsCollection = new List<PropertyDataObject>();
            inParamsCollection.Add(new PropertyDataObject() { Name = "Path", Value = descriptor.Path });
            inParamsCollection.Add(new PropertyDataObject() { Name = "Name", Value = descriptor.Name });
            inParamsCollection.Add(new PropertyDataObject() { Name = "Type", Value = 0 });
            inParamsCollection.Add(new PropertyDataObject() { Name = "MaximumAllowed", Value = descriptor.MaximumAllowedConnections });
            inParamsCollection.Add(new PropertyDataObject() { Name = "Description", Value = descriptor.Description });
            inParamsCollection.Add(new PropertyDataObject() { Name = "Password", Value = descriptor.Password });
            inParamsCollection.Add(new PropertyDataObject() { Name = "Access", Value = descriptor.SecurityDescriptor });

            _handler.Handle("CreateShare", inParamsCollection, out outParams);

            returnValue = long.Parse(outParams["ReturnValue"].Value.ToString());

            if (returnValue != 0)
            {
                throw new ShareInstrumentationException(@"{0} {1}.", ExceptionMessages.Win32_ShareFail, _errorMessageProvider.GetErrorMessage(ErrorMessageProvider.ErrorClass.Win32_Share, returnValue));
            }
        }
Пример #3
0
 public void CreateSharedResource(IShareDescriptor shareDescriptor)
 {
     throw new NotImplementedException();
 }