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.Generic;
using System.Management.Automation;
using System.Linq;

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

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

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

protected override void ProcessRecord()
@@ -303,6 +306,18 @@ namespace NTFSSecurity
if (getFileSystemModeProperty)
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);
}
}


+ 1
- 0
NTFSSecurity/NTFSSecurity.psd1 View File

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

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


Loading…
Cancel
Save