Browse Source

Added a property to find files with more than one hard link

tags/4.2.4
Raimund Andée 7 years ago
parent
commit
ed7282956a
2 changed files with 16 additions and 0 deletions
  1. +15
    -0
      NTFSSecurity/ItemCmdlets/GetChildItem2.cs
  2. +1
    -0
      NTFSSecurity/NTFSSecurity.psd1

+ 15
- 0
NTFSSecurity/ItemCmdlets/GetChildItem2.cs View File

@@ -3,6 +3,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Management.Automation; using System.Management.Automation;
using System.Linq;


namespace NTFSSecurity namespace NTFSSecurity
{ {
@@ -22,6 +23,7 @@ namespace NTFSSecurity
private SwitchParameter skipMountPoints; private SwitchParameter skipMountPoints;
private SwitchParameter skipSymbolicLinks; private SwitchParameter skipSymbolicLinks;
private bool getFileSystemModeProperty = false; private bool getFileSystemModeProperty = false;
private bool identifyHardLinks = false;
private int? depth; private int? depth;


WildcardPattern wildcard = null; WildcardPattern wildcard = null;
@@ -139,6 +141,7 @@ namespace NTFSSecurity
modeMethodInfo = typeof(FileSystemCodeMembers).GetMethod("Mode"); modeMethodInfo = typeof(FileSystemCodeMembers).GetMethod("Mode");


getFileSystemModeProperty = (bool)((Hashtable)MyInvocation.MyCommand.Module.PrivateData)["GetFileSystemModeProperty"]; getFileSystemModeProperty = (bool)((Hashtable)MyInvocation.MyCommand.Module.PrivateData)["GetFileSystemModeProperty"];
identifyHardLinks = (bool)((Hashtable)MyInvocation.MyCommand.Module.PrivateData)["IdentifyHardLinks"];
} }


protected override void ProcessRecord() protected override void ProcessRecord()
@@ -303,6 +306,18 @@ namespace NTFSSecurity
if (getFileSystemModeProperty) if (getFileSystemModeProperty)
item.Properties.Add(new PSCodeProperty("Mode", modeMethodInfo)); item.Properties.Add(new PSCodeProperty("Mode", modeMethodInfo));


if (identifyHardLinks == true && current is FileInfo)
{
try
{
item.Properties.Add(new PSNoteProperty("HardLinkCount", Alphaleonis.Win32.Filesystem.File.EnumerateHardlinks(current.FullName).Count()));
}
catch
{
WriteDebug(string.Format("Could not read hard links for '{0}'", current.FullName));
}
}

WriteObject(item); WriteObject(item);
} }
} }


+ 1
- 0
NTFSSecurity/NTFSSecurity.psd1 View File

@@ -87,6 +87,7 @@
GetInheritedFrom = $true GetInheritedFrom = $true
GetFileSystemModeProperty = $true GetFileSystemModeProperty = $true
ShowAccountSid = $false ShowAccountSid = $false
IdentifyHardLinks = $true


PSData = @{ PSData = @{
Tags = @('AccessControl', 'ACL', 'DirectorySecurity', 'FileSecurity', 'FileSystem', 'FileSystemSecurity', 'NTFS', 'Module', 'AccessRights') Tags = @('AccessControl', 'ACL', 'DirectorySecurity', 'FileSecurity', 'FileSystem', 'FileSystemSecurity', 'NTFS', 'Module', 'AccessRights')


Loading…
Cancel
Save