protected override void ProcessRecord() { IEnumerable <FileSystemAuditRule2> acl; FileSystemInfo item = null; foreach (var p in paths) { try { item = this.GetFileSystemInfo2(p); } catch (Exception ex) { this.WriteError(new ErrorRecord(ex, "ReadError", ErrorCategory.OpenError, p)); continue; } try { acl = FileSystemAuditRule2.GetFileSystemAuditRules(item, !ExcludeExplicit, !ExcludeInherited, getInheritedFrom); var orphanedAces = acl.Where(ace => string.IsNullOrEmpty(ace.Account.AccountName)); orphanedSidCount += orphanedAces.Count(); this.WriteVerbose(string.Format("Item {0} knows about {1} orphaned SIDs in its ACL", p, orphanedAces.Count())); this.WriteObject(orphanedAces); } catch (Exception ex) { this.WriteWarning(string.Format("Could not read item {0}. The error was: {1}", p, ex.Message)); } } }
protected override void ProcessRecord() { IEnumerable <FileSystemAuditRule2> acl = null; FileSystemInfo item = null; if (ParameterSetName == "Path") { foreach (var path in paths) { try { item = GetFileSystemInfo2(path); } catch (Exception ex) { WriteError(new ErrorRecord(ex, "ReadFileError", ErrorCategory.OpenError, path)); continue; } try { acl = FileSystemAuditRule2.GetFileSystemAuditRules(item, !excludeExplicit, !excludeInherited, getInheritedFrom); } catch (UnauthorizedAccessException) { try { var ownerInfo = FileSystemOwner.GetOwner(item); var previousOwner = ownerInfo.Owner; FileSystemOwner.SetOwner(item, System.Security.Principal.WindowsIdentity.GetCurrent().User); acl = FileSystemAuditRule2.GetFileSystemAuditRules(item, !excludeExplicit, !excludeInherited, getInheritedFrom); FileSystemOwner.SetOwner(item, previousOwner); } catch (Exception ex2) { WriteError(new ErrorRecord(ex2, "ReadSecurityError", ErrorCategory.WriteError, path)); continue; } } catch (Exception ex) { WriteError(new ErrorRecord(ex, "ReadSecurityError", ErrorCategory.OpenError, path)); continue; } finally { if (acl != null) { if (account != null) { acl = acl.Where(ace => ace.Account == account); } acl.ForEach(ace => WriteObject(ace)); } } } } else { foreach (var sd in securityDescriptors) { acl = FileSystemAuditRule2.GetFileSystemAuditRules(sd, !excludeExplicit, !excludeInherited, getInheritedFrom); if (account != null) { acl = acl.Where(ace => ace.Account == account); } acl.ForEach(ace => WriteObject(ace)); } } }
protected override void ProcessRecord() { if (ParameterSetName.EndsWith("Simple")) { FileSystemSecurity2.ConvertToFileSystemFlags(appliesTo, out inheritanceFlags, out propagationFlags); } if (ParameterSetName.StartsWith("Path")) { foreach (var path in paths) { FileSystemInfo item = null; try { item = GetFileSystemInfo2(path); } catch (Exception ex) { WriteError(new ErrorRecord(ex, "ReadFileError", ErrorCategory.OpenError, path)); } if (ParameterSetName == "PathSimple") { FileSystemSecurity2.ConvertToFileSystemFlags(appliesTo, out inheritanceFlags, out propagationFlags); } try { FileSystemAuditRule2.RemoveFileSystemAuditRule(item, account.ToList(), accessRights, auditFlags, inheritanceFlags, propagationFlags); } catch (UnauthorizedAccessException) { try { var ownerInfo = FileSystemOwner.GetOwner(item); var previousOwner = ownerInfo.Owner; FileSystemOwner.SetOwner(item, System.Security.Principal.WindowsIdentity.GetCurrent().User); FileSystemAuditRule2.RemoveFileSystemAuditRule(item, account.ToList(), accessRights, auditFlags, inheritanceFlags, propagationFlags); FileSystemOwner.SetOwner(item, previousOwner); } catch (Exception ex2) { WriteError(new ErrorRecord(ex2, "RemoveAceError", ErrorCategory.WriteError, path)); } } catch (Exception ex) { WriteError(new ErrorRecord(ex, "RemoveAceError", ErrorCategory.WriteError, path)); } if (passThru == true) { FileSystemAccessRule2.GetFileSystemAccessRules(item, true, true).ForEach(ace => WriteObject(ace)); } } } else { foreach (var sd in securityDescriptors) { FileSystemAuditRule2.RemoveFileSystemAuditRule(sd, account.ToList(), accessRights, auditFlags, inheritanceFlags, propagationFlags); if (passThru == true) { FileSystemAuditRule2.GetFileSystemAuditRules(sd, true, true).ForEach(ace => WriteObject(ace)); } } } }
protected override void ProcessRecord() { if (ParameterSetName == "Path") { FileSystemInfo item = null; foreach (var path in paths) { try { item = GetFileSystemInfo2(path); } catch (Exception ex) { WriteError(new ErrorRecord(ex, "ReadFileError", ErrorCategory.OpenError, path)); continue; } try { FileSystemAuditRule2.RemoveFileSystemAuditRuleAll(item); if (disableInheritance) { FileSystemInheritanceInfo.DisableAuditInheritance(item, true); } } catch (UnauthorizedAccessException) { try { var ownerInfo = FileSystemOwner.GetOwner(item); var previousOwner = ownerInfo.Owner; FileSystemOwner.SetOwner(item, System.Security.Principal.WindowsIdentity.GetCurrent().User); FileSystemAuditRule2.RemoveFileSystemAuditRuleAll(item); if (disableInheritance) { FileSystemInheritanceInfo.DisableAuditInheritance(item, true); } FileSystemOwner.SetOwner(item, previousOwner); } catch (Exception ex2) { WriteError(new ErrorRecord(ex2, "ClearAclError", ErrorCategory.WriteError, path)); } } catch (Exception ex) { WriteError(new ErrorRecord(ex, "ClearAclError", ErrorCategory.WriteError, path)); } } } else { foreach (var sd in securityDescriptors) { FileSystemAuditRule2.RemoveFileSystemAuditRuleAll(sd); if (disableInheritance) { FileSystemInheritanceInfo.DisableAuditInheritance(sd, true); } } } }