public void SetProperties_SaveChanges_NotAdmin_Throws()
        {
            const string LogName = "Application";

            using (var session = new EventLogSession())
            {
                EventLogConfiguration configuration = null;
                try
                {
                    configuration = new EventLogConfiguration(LogName, session);
                }
                catch (EventLogNotFoundException)
                {
                    configuration?.Dispose();
                    return;
                }

                configuration.IsEnabled          = false;
                configuration.SecurityDescriptor = string.Empty;
                configuration.LogFilePath        = null;
                configuration.LogMode            = EventLogMode.Retain;
                configuration.ProviderLevel      = 1;
                configuration.ProviderKeywords   = 1;
                configuration.MaximumSizeInBytes = long.MaxValue;
                Assert.Throws <UnauthorizedAccessException>(() => configuration.SaveChanges());

                configuration.Dispose();
                session.CancelCurrentOperations();
            }
        }
Пример #2
0
        public void GetLogInformation_UsingLogName_DoesNotThrow(string logName)
        {
            DateTime?creationTime, lastAccessTime, lastWriteTime;
            long?    fileSize, recordCount, oldestRecordNumber;
            int?     attributes;
            bool?    isLogFull;

            using (var session = new EventLogSession())
            {
                EventLogConfiguration configuration = null;
                try
                {
                    configuration = new EventLogConfiguration(logName, session);
                }
                catch (EventLogNotFoundException)
                {
                    configuration?.Dispose();
                    return;
                }

                EventLogInformation logInfo = session.GetLogInformation(configuration.LogName, PathType.LogName);
                creationTime       = logInfo.CreationTime;
                lastAccessTime     = logInfo.LastAccessTime;
                lastWriteTime      = logInfo.LastWriteTime;
                fileSize           = logInfo.FileSize;
                attributes         = logInfo.Attributes;
                recordCount        = logInfo.RecordCount;
                oldestRecordNumber = logInfo.OldestRecordNumber;
                isLogFull          = logInfo.IsLogFull;

                configuration.Dispose();
            }
            using (var session = new EventLogSession())
            {
                using (var configuration = new EventLogConfiguration(logName, session))
                {
                    EventLogInformation logInfo = session.GetLogInformation(configuration.LogName, PathType.LogName);
                    Assert.Equal(creationTime, logInfo.CreationTime);
                    Assert.Equal(lastAccessTime, logInfo.LastAccessTime);
                    Assert.Equal(lastWriteTime, logInfo.LastWriteTime);
                    Assert.Equal(fileSize, logInfo.FileSize);
                    Assert.Equal(attributes, logInfo.Attributes);
                    Assert.Equal(recordCount, logInfo.RecordCount);
                    Assert.Equal(oldestRecordNumber, logInfo.OldestRecordNumber);
                    Assert.Equal(isLogFull, logInfo.IsLogFull);
                }
            }
        }
        public void EventLogConfiguration_CheckProperties_RemainsTheSame(string logName)
        {
            bool         isEnabled;
            string       securityDescriptor;
            EventLogMode logMode;
            int?         providerBufferSize;
            long         maximumSizeInBytes;
            int?         providerMinimumNumberOfBuffers;
            int?         providerMaximumNumberOfBuffers;
            int?         providerLatency;
            int?         providerLevel;
            long?        providerKeywords;
            Guid?        providerControlGuid;

            using (var session = new EventLogSession())
            {
                EventLogConfiguration configuration = null;
                try
                {
                    configuration = new EventLogConfiguration(logName, session);
                }
                catch (EventLogNotFoundException)
                {
                    configuration?.Dispose();
                    return;
                }

                Assert.Equal(logName, configuration.LogName);
                Assert.NotEmpty(configuration.ProviderNames);
                Assert.Equal("Application", configuration.LogIsolation.ToString());

                if (logName.Equals("Application"))
                {
                    Assert.Equal(EventLogType.Administrative, configuration.LogType);
                    Assert.True(configuration.IsClassicLog);
                    Assert.Contains("Application.evtx", configuration.LogFilePath);
                    Assert.Empty(configuration.OwningProviderName);
                }
                else
                {
                    Assert.Equal(EventLogType.Operational, configuration.LogType);
                    Assert.False(configuration.IsClassicLog);
                    Assert.Contains("Microsoft-Windows-TaskScheduler%4Operational.evtx", configuration.LogFilePath);
                    Assert.Equal("Microsoft-Windows-TaskScheduler", configuration.OwningProviderName);
                }

                isEnabled                      = configuration.IsEnabled;
                securityDescriptor             = configuration.SecurityDescriptor;
                logMode                        = configuration.LogMode;
                providerBufferSize             = configuration.ProviderBufferSize;
                maximumSizeInBytes             = configuration.MaximumSizeInBytes;
                providerMinimumNumberOfBuffers = configuration.ProviderMinimumNumberOfBuffers;
                providerMaximumNumberOfBuffers = configuration.ProviderMaximumNumberOfBuffers;
                providerLevel                  = configuration.ProviderLevel;
                providerKeywords               = configuration.ProviderKeywords;
                providerControlGuid            = configuration.ProviderControlGuid;
                providerLatency                = configuration.ProviderLatency;

                configuration.Dispose();
            }
            using (var session = new EventLogSession())
            {
                using (var configuration = new EventLogConfiguration(logName, session))
                {
                    Assert.Equal(isEnabled, configuration.IsEnabled);
                    Assert.Equal(securityDescriptor, configuration.SecurityDescriptor);
                    Assert.Equal(logMode, configuration.LogMode);
                    Assert.Equal(providerBufferSize, configuration.ProviderBufferSize);
                    Assert.Equal(maximumSizeInBytes, configuration.MaximumSizeInBytes);
                    Assert.Equal(providerMinimumNumberOfBuffers, configuration.ProviderMinimumNumberOfBuffers);
                    Assert.Equal(providerMaximumNumberOfBuffers, configuration.ProviderMaximumNumberOfBuffers);
                    Assert.Equal(providerLevel, configuration.ProviderLevel);
                    Assert.Equal(providerKeywords, configuration.ProviderKeywords);
                    Assert.Equal(providerControlGuid, configuration.ProviderControlGuid);
                    Assert.Equal(providerLatency, configuration.ProviderLatency);
                }
            }
        }