< Summary

Class:SharpHoundCommonLib.OutputTypes.ComputerStatus
Assembly:SharpHoundCommonLib
File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\OutputTypes\Computer.cs
Covered lines:5
Uncovered lines:9
Coverable lines:14
Total lines:52
Line coverage:35.7% (5 of 14)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
GetCSVStatus(...)100%100%

File(s)

D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\OutputTypes\Computer.cs

#LineLine coverage
 1using System;
 2
 3namespace SharpHoundCommonLib.OutputTypes
 4{
 5    /// <summary>
 6    ///     Represents a computer object in Active Directory. Contains all the properties BloodHound cares about
 7    /// </summary>
 8    public class Computer : OutputBase
 9    {
 10        public string PrimaryGroupSID { get; set; }
 11        public TypedPrincipal[] AllowedToDelegate { get; set; } = Array.Empty<TypedPrincipal>();
 12        public TypedPrincipal[] AllowedToAct { get; set; } = Array.Empty<TypedPrincipal>();
 13        public TypedPrincipal[] HasSIDHistory { get; set; } = Array.Empty<TypedPrincipal>();
 14        public TypedPrincipal[] DumpSMSAPassword { get; set; } = Array.Empty<TypedPrincipal>();
 15        public SessionAPIResult Sessions { get; set; } = new();
 16        public SessionAPIResult PrivilegedSessions { get; set; } = new();
 17        public SessionAPIResult RegistrySessions { get; set; } = new();
 18        public LocalGroupAPIResult[] LocalGroups { get; set; } = Array.Empty<LocalGroupAPIResult>();
 19        public UserRightsAssignmentAPIResult[] UserRights { get; set; } = Array.Empty<UserRightsAssignmentAPIResult>();
 20        public DCRegistryData DCRegistryData { get; set; } = new();
 21        public ComputerStatus Status { get; set; }
 22        public bool IsDC { get; set; }
 23        public string DomainSID { get; set; }
 24    }
 25
 26    public class DCRegistryData
 27    {
 28        public IntRegistryAPIResult CertificateMappingMethods { get; set; }
 29        public IntRegistryAPIResult StrongCertificateBindingEnforcement { get; set; }
 30    }
 31
 32    public class ComputerStatus
 33    {
 834        public bool Connectable { get; set; }
 735        public string Error { get; set; }
 36
 337        public static string NonWindowsOS => "NonWindowsOS";
 338        public static string OldPwd => "PwdLastSetOutOfRange";
 339        public static string PortNotOpen => "PortNotOpen";
 040        public static string Success => "Success";
 41
 42        public CSVComputerStatus GetCSVStatus(string computerName)
 043        {
 044            return new CSVComputerStatus
 045            {
 046                Status = Error,
 047                Task = "CheckAvailability",
 048                ComputerName = computerName
 049            };
 050        }
 51    }
 52}