Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
List index out of bounds (0)Proc: RemoveFolderTruesteeThread
#1
Arkadaşlar Merhaba,


Web tabanlı çalışan uygulamızda klasörden izinleri kaldırırken  " List index out of bounds (0)Proc: RemoveFolderTruesteeThread" hatası alıyoruz.

Bir çözüm önerisi olan var mı?

path olarak aşağıdaki fonksiyona bu şekilde bir folder path gönderdiğimizde geriye değeri alamıyoruz. ama kısa path larda bu yaşanmıyor

kısa path : \\fileserv.his.local\FileShareEMin\4444444


uzun path : \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders\1000Folders - Copy (9)\{0055660F-9CC6-4FFE-8510-6C15CED669E2}

kullanılan foksiyon

function GetACLPermission(folder_path: WideString): WideString;
var
  setacl: ISetACLCOMServer;
  sList: TStringList;
begin
  sList := TStringList.Create;
  try
    CoInitialize(nil);
    setacl := CoSetACLCOMServer.Create;
    setacl.SetObject(folder_path, SE_FILE_OBJECT);
    setacl.SetAction(ACTN_LIST);
    //setacl.AddACE('Everyone', 'Full', 0, false, SET_ACCESS, ACL_DACL);
    setacl.SetListOptions(LIST_TAB, ACL_DACL, true, LIST_NAME);
   // setacl.AddAction(ACTN_SETINHFROMPAR);
    //setacl.SetObjectFlags(INHPARNOCOPY, INHPARNOCHANGE, true, false);

    setacl.Run();
    sList.Text := setacl.GetLastListOutput;
    sList.Delete(0);
    sList.Delete(0);
    sList.Delete(0);
    setacl := nil;
    Result := sList.Text;
  finally
    sList.Free;
    CoUnInitialize();
  end;

end;
Cevapla
#2
Anladığım kadarıyla StringList nesnesinde hiç kayıt kalmamış. Bu olmayan kaydı silemeye çalışıyorsunuz. Önce biir kontrol koyup, içindeki Count > 0 bakmanız ve ona göre silme işlemi yapmanız gerekiyor.
Cevapla
#3
Hocam selam,

Aşağıdaki değerler normalde fonksiyon içinde gelen sonuç ama foksiyon dışına geri döndürmüyor. sorun aslında bu.


bu pathın \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders - Copy (4) sonucu aşapıdaki gibi ama fonskiyon dışına çıkmıyor.

DACL(protected+auto_inherited):
BUILTIN\Remote Desktop Users full allow container_inherit+object_inherit
BUILTIN\Administrators full allow container_inherit+object_inherit
NT AUTHORITY\SYSTEM full allow container_inherit+object_inherit
HISAR\ismail full allow no_inheritance
CREATOR OWNER full allow container_inherit+object_inherit+inherit_only
BUILTIN\Users read_execute allow container_inherit+object_inherit
BUILTIN\Users FILE_ADD_FILE+FILE_ADD_SUBDIRECTORY allow container_inherit
HISAR\gamzesam read_execute allow container_inherit+object_inherit
HISAR\ismail read_execute allow container_inherit+object_inherit+inherit_only
HISAR\recep read_execute allow container_inherit+object_inherit
HISAR\salihal read_execute allow container_inherit+object_inherit
HISAR\user5 read_execute allow container_inherit+object_inherit
Cevapla
#4
@powerghost

Düzeltme :

Kendim SetACL.DLL olarak DLL versiyonunu indirip deneme fırsatım oldu. Böylece soruyu da tam anlayamamış olduğumu fark ettim.

Sorunu anlasam da uzun path dediğiniz hali sistemimde oluşturamadım. Normal paylaşım klasöründe yetkileri sorun olmadan belirttiğiniz şekilde döküyor. 


Uygulamam şu şekilde oldu:

* DLL'yi register edip SetACLCOMLibrary_TLB import ettim sonra DLL unregister edip aşağıdaki şekilde dinamik kullanıma dönüştürdüm.

uses ActiveX, SetACLCOMLibrary_TLB;

function GetACLPermission(folder_path: WideString): WideString;
  function RegisterServer(const aDllFileName: string; aRegister: Boolean): Boolean;
  type
    TRegProc = function: HResult; stdcall;
  const
    cRegFuncNameArr: array [Boolean] of PChar =
      ( 'DllUnregisterServer', 'DllRegisterServer');
  var
    vLibHandle: THandle;
    vRegProc  : TRegProc;
  begin
    Result      := False;
    vLibHandle  := LoadLibrary(PChar(aDllFileName));
    if vLibHandle = 0
      then Exit;
    @vRegProc := GetProcAddress(vLibHandle, cRegFuncNameArr[aRegister]);
    if @vRegProc <> nil
      then Result := vRegProc = S_OK;
    FreeLibrary(vLibHandle);
  end;

var
  LSetACL : ISetACLCOMServer;
begin
  RegisterServer( ExtractFilePath(ParamStr(0)) + 'SetACL.dll', true );
  try
    CoInitialize(nil);
    LSetACL := CoSetACLCOMServer.Create;
    LSetACL.SetObject(folder_path, SE_FILE_OBJECT);
    LSetACL.SetAction(ACTN_LIST);
    LSetACL.SetListOptions(LIST_TAB, ACL_DACL, true, LIST_NAME);
    LSetACL.Run();
    Result := LSetACL.GetLastListOutput;
    LSetACL := nil;
  finally
    CoUnInitialize();
    RegisterServer( ExtractFilePath(ParamStr(0)) + 'SetACL.dll', false);
  end;
end;



Kullanım :

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Memo1.Lines.Text := GetACLPermission( Edit1.Text );
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
   Memo1.Lines.Text := GetACLPermission( Edit2.Text );
end;



y3hyarhzifp8jjmww7po.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#5
uzun path üzerindeki bir permission'u kaldırmak istediğinizde kaldıryor mu? Listenin gelmesinde sorun yok aslında.
Cevapla
#6
Sorun çözüldü şeklinde mi anlamalıyız ? Çünkü soru liste gelmiyor şeklindeydi...

Yetkileri kaldırmak için


var
  LSetACL : ISetACLCOMServer;
begin
  try
    CoInitialize(nil);
    LSetACL := CoSetACLCOMServer.Create;
    LSetACL.SetObject(folder_path, SE_FILE_OBJECT);
    LSetACL.SetAction( ACTN_CLEARDACL );
    LSetACL.Run();
    LSetACL := nil;
  finally
    CoUnInitialize();
  end;
end;



Import ettiğim TLB dosyasını da ekleyeyim... İçinde tüm detaylar mevcut

unit SetACLCOMLibrary_TLB;

// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a      
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the  
// 'Refresh' command of the Type Library Editor activated while editing the  
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                        
// ************************************************************************ //

// $Rev: 98336 $
// File generated on 14.05.2021 18:40:35 from Type Library described below.

// ************************************************************************  //
// Type Lib: c:\ARMAN.Study\Downloads\SetACL (COM DLL version)\SetACL (COM DLL version)\32 bit\SetACL.DLL (1)
// LIBID: {00D4DCD3-02B9-4A71-AB61-2283504620C8}
// LCID: 0
// Helpfile:
// HelpString: SetACL Type Library
// DepndLst:
//   (1) v2.0 stdole, (C:\Windows\SysWOW64\stdole2.tlb)
// SYS_KIND: SYS_WIN32
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
{$ALIGN 4}

interface

uses Winapi.Windows, System.Classes, System.Variants, System.Win.StdVCL, Vcl.Graphics, Vcl.OleServer, Winapi.ActiveX;
 

// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLASS_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                      
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
const
 // TypeLibrary Major and minor versions
 SetACLCOMLibraryMajorVersion = 1;
 SetACLCOMLibraryMinorVersion = 0;

 LIBID_SetACLCOMLibrary: TGUID = '{00D4DCD3-02B9-4A71-AB61-2283504620C8}';

 DIID__ISetACLCOMServerEvents: TGUID = '{35F76182-7F52-4D6A-BD6E-1317345F98FB}';
 IID_ISetACLCOMServer: TGUID = '{E1B57CA5-FD7F-4304-BC0A-8BEBDE231D53}';
 CLASS_SetACLCOMServer: TGUID = '{13379563-8F21-4579-8AC7-CBCD488735DB}';

// *********************************************************************//
// Declaration of Enumerations defined in Type Library                    
// *********************************************************************//
// Constants for enum SDINFO
type
 SDINFO = TOleEnum;
const
 ACL_DACL = $00000001;
 ACL_SACL = $00000002;
 SD_OWNER = $00000004;
 SD_GROUP = $00000008;

// Constants for enum ACTIONS
type
 ACTIONS = TOleEnum;
const
 ACTN_ADDACE = $00000001;
 ACTN_LIST = $00000002;
 ACTN_SETOWNER = $00000004;
 ACTN_SETGROUP = $00000008;
 ACTN_CLEARDACL = $00000010;
 ACTN_CLEARSACL = $00000020;
 ACTN_SETINHFROMPAR = $00000040;
 ACTN_RESETCHILDPERMS = $00000080;
 ACTN_REPLACETRUSTEE = $00000100;
 ACTN_REMOVETRUSTEE = $00000200;
 ACTN_COPYTRUSTEE = $00000400;
 ACTN_REPLACEDOMAIN = $00000100;
 ACTN_REMOVEDOMAIN = $00000200;
 ACTN_COPYDOMAIN = $00000400;
 ACTN_RESTORE = $00000800;
 ACTN_TRUSTEE = $00001000;
 ACTN_DOMAIN = $00002000;
 ACTN_DELORPHANEDSIDS = $00004000;

// Constants for enum RETCODES
type
 RETCODES = TOleEnum;
const
 RTN_OK = $00000000;
 RTN_USAGE = $00000001;
 RTN_ERR_GENERAL = $00000002;
 RTN_ERR_PARAMS = $00000003;
 RTN_ERR_OBJECT_NOT_SET = $00000004;
 RTN_ERR_GETSECINFO = $00000005;
 RTN_ERR_LOOKUP_SID = $00000006;
 RTN_ERR_INV_DIR_PERMS = $00000007;
 RTN_ERR_INV_PRN_PERMS = $00000008;
 RTN_ERR_INV_REG_PERMS = $00000009;
 RTN_ERR_INV_SVC_PERMS = $0000000A;
 RTN_ERR_INV_SHR_PERMS = $0000000B;
 RTN_ERR_EN_PRIV = $0000000C;
 RTN_ERR_DIS_PRIV = $0000000D;
 RTN_ERR_NO_NOTIFY = $0000000E;
 RTN_ERR_LIST_FAIL = $0000000F;
 RTN_ERR_FINDFILE = $00000010;
 RTN_ERR_GET_SD_CONTROL = $00000011;
 RTN_ERR_INTERNAL = $00000012;
 RTN_ERR_SETENTRIESINACL = $00000013;
 RTN_ERR_REG_PATH = $00000014;
 RTN_ERR_REG_CONNECT = $00000015;
 RTN_ERR_REG_OPEN = $00000016;
 RTN_ERR_REG_ENUM = $00000017;
 RTN_ERR_PREPARE = $00000018;
 RTN_ERR_SETSECINFO = $00000019;
 RTN_ERR_LIST_OPTIONS = $0000001A;
 RTN_ERR_CONVERT_SD = $0000001B;
 RTN_ERR_LIST_ACL = $0000001C;
 RTN_ERR_LOOP_ACL = $0000001D;
 RTN_ERR_DEL_ACE = $0000001E;
 RTN_ERR_COPY_ACL = $0000001F;
 RTN_ERR_ADD_ACE = $00000020;
 RTN_ERR_NO_LOGFILE = $00000021;
 RTN_ERR_OPEN_LOGFILE = $00000022;
 RTN_ERR_READ_LOGFILE = $00000023;
 RTN_ERR_WRITE_LOGFILE = $00000024;
 RTN_ERR_OS_NOT_SUPPORTED = $00000025;
 RTN_ERR_INVALID_SD = $00000026;
 RTN_ERR_SET_SD_DACL = $00000027;
 RTN_ERR_SET_SD_SACL = $00000028;
 RTN_ERR_SET_SD_OWNER = $00000029;
 RTN_ERR_SET_SD_GROUP = $0000002A;
 RTN_ERR_INV_DOMAIN = $0000002B;
 RTN_ERR_IGNORED = $0000002C;
 RTN_ERR_CREATE_SD = $0000002D;
 RTN_ERR_OUT_OF_MEMORY = $0000002E;
 RTN_ERR_NO_ACTN_SPECIFIED = $0000002F;
 RTN_ERR_INV_WMI_PERMS = $00000030;
 RTN_WRN_RECURSION_IMPOSSIBLE = $00000031;

// Constants for enum INHERITANCE
type
 INHERITANCE = TOleEnum;
const
 INHPARNOCHANGE = $00000000;
 INHPARYES = $00000001;
 INHPARCOPY = $00000002;
 INHPARNOCOPY = $00000004;

// Constants for enum ACCESS_MODE
type
 ACCESS_MODE = TOleEnum;
const
 GRANT_ACCESS = $00000001;
 SET_ACCESS = $00000002;
 DENY_ACCESS = $00000003;
 REVOKE_ACCESS = $00000004;
 SET_AUDIT_SUCCESS = $00000005;
 SET_AUDIT_FAILURE = $00000006;

// Constants for enum PROPAGATION
type
 PROPAGATION = TOleEnum;
const
 NO_INHERITANCE = $00000000;
 SUB_OBJECTS_ONLY_INHERIT = $00000001;
 SUB_CONTAINERS_ONLY_INHERIT = $00000002;
 SUB_CONTAINERS_AND_OBJECTS_INHERIT = $00000003;
 INHERIT_NO_PROPAGATE = $00000004;
 INHERIT_ONLY = $00000008;

// Constants for enum LISTFORMATS
type
 LISTFORMATS = TOleEnum;
const
 LIST_SDDL = $00000000;
 LIST_CSV = $00000001;
 LIST_TAB = $00000002;

// Constants for enum LISTNAMES
type
 LISTNAMES = TOleEnum;
const
 LIST_NAME = $00000001;
 LIST_SID = $00000002;
 LIST_NAME_SID = $00000003;

// Constants for enum RECURSION
type
 RECURSION = TOleEnum;
const
 RECURSE_NO = $00000001;
 RECURSE_CONT = $00000002;
 RECURSE_OBJ = $00000004;
 RECURSE_CONT_OBJ = $00000006;

// Constants for enum SE_OBJECT_TYPE
type
 SE_OBJECT_TYPE = TOleEnum;
const
 SE_FILE_OBJECT = $00000001;
 SE_SERVICE = $00000002;
 SE_PRINTER = $00000003;
 SE_REGISTRY_KEY = $00000004;
 SE_LMSHARE = $00000005;
 SE_WMIGUID_OBJECT = $0000000B;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
 _ISetACLCOMServerEvents = dispinterface;
 ISetACLCOMServer = interface;
 ISetACLCOMServerDisp = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                      
// (NOTE: Here we map each CoClass to its Default Interface)              
// *********************************************************************//
 SetACLCOMServer = ISetACLCOMServer;


// *********************************************************************//
// DispIntf:  _ISetACLCOMServerEvents
// Flags:     (4096) Dispatchable
// GUID:      {35F76182-7F52-4D6A-BD6E-1317345F98FB}
// *********************************************************************//
 _ISetACLCOMServerEvents = dispinterface
   ['{35F76182-7F52-4D6A-BD6E-1317345F98FB}']
   procedure MessageEvent(const message: WideString); dispid 1;
 end;

// *********************************************************************//
// Interface: ISetACLCOMServer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E1B57CA5-FD7F-4304-BC0A-8BEBDE231D53}
// *********************************************************************//
 ISetACLCOMServer = interface(IDispatch)
   ['{E1B57CA5-FD7F-4304-BC0A-8BEBDE231D53}']
   function AddACE(const trustee: WideString; const permission: WideString; INHERITANCE: Integer;
                   inheritanceSpecified: WordBool; accessMode: Integer; aclType: Integer): Integer; safecall;
   function AddTrustee(const trustee: WideString; const newTrustee: WideString; action: Integer;
                       trusteeActionAppliesTo: Integer): Integer; safecall;
   function AddDomain(const domain: WideString; const newDomain: WideString; action: Integer;
                      domainActionAppliesTo: Integer): Integer; safecall;
   function SetOwner(const trustee: WideString): Integer; safecall;
   function SetPrimaryGroup(const trustee: WideString): Integer; safecall;
   function SetListOptions(listFormat: Integer; listWhat: Integer; listInherited: WordBool;
                           listNameSID: Integer): Integer; safecall;
   function SetAction(action: Integer): Integer; safecall;
   function SetLogFile(const logFile: WideString): Integer; safecall;
   function Run: Integer; safecall;
   function GetResourceString(id: Integer): WideString; safecall;
   function GetLastAPIErrorMessage: WideString; safecall;
   function GetLastAPIError: Integer; safecall;
   function GetLastListOutput: WideString; safecall;
   procedure Reset; safecall;
   function SetListOptions2(listFormat: Integer; listWhat: Integer; listInherited: WordBool;
                            listNameSID: Integer; cleanListOutput: WordBool; orphanedOnly: WordBool): Integer; safecall;
   function SetIgnoreErrors(ignoreErrors: WordBool): Integer; safecall;
   function SetObject(const objectPath: WideString; objectType: Integer): Integer; safecall;
   function AddAction(action: Integer): Integer; safecall;
   function SetRecursion(recursionType: Integer): Integer; safecall;
   function SetObjectFlags(daclProtected: Integer; saclProtected: Integer;
                           daclResetChildObjects: WordBool; saclResetChildObjects: WordBool): Integer; safecall;
   function SetBackupRestoreFile(const backupRestoreFile: WideString): Integer; safecall;
   procedure AddObjectFilter(const keyword: WideString); safecall;
   function SendMessageEvents(sendEvents: WordBool): Integer; safecall;
   function AddTrusteesFromFile(const csvFile: WideString; action: Integer;
                                trusteeActionAppliesTo: Integer): Integer; safecall;
   function SetDelOrphanedSIDOptions(where: Integer): Integer; safecall;
 end;

// *********************************************************************//
// DispIntf:  ISetACLCOMServerDisp
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E1B57CA5-FD7F-4304-BC0A-8BEBDE231D53}
// *********************************************************************//
 ISetACLCOMServerDisp = dispinterface
   ['{E1B57CA5-FD7F-4304-BC0A-8BEBDE231D53}']
   function AddACE(const trustee: WideString; const permission: WideString; INHERITANCE: Integer;
                   inheritanceSpecified: WordBool; accessMode: Integer; aclType: Integer): Integer; dispid 1;
   function AddTrustee(const trustee: WideString; const newTrustee: WideString; action: Integer;
                       trusteeActionAppliesTo: Integer): Integer; dispid 2;
   function AddDomain(const domain: WideString; const newDomain: WideString; action: Integer;
                      domainActionAppliesTo: Integer): Integer; dispid 3;
   function SetOwner(const trustee: WideString): Integer; dispid 4;
   function SetPrimaryGroup(const trustee: WideString): Integer; dispid 5;
   function SetListOptions(listFormat: Integer; listWhat: Integer; listInherited: WordBool;
                           listNameSID: Integer): Integer; dispid 6;
   function SetAction(action: Integer): Integer; dispid 7;
   function SetLogFile(const logFile: WideString): Integer; dispid 8;
   function Run: Integer; dispid 9;
   function GetResourceString(id: Integer): WideString; dispid 10;
   function GetLastAPIErrorMessage: WideString; dispid 11;
   function GetLastAPIError: Integer; dispid 12;
   function GetLastListOutput: WideString; dispid 13;
   procedure Reset; dispid 14;
   function SetListOptions2(listFormat: Integer; listWhat: Integer; listInherited: WordBool;
                            listNameSID: Integer; cleanListOutput: WordBool; orphanedOnly: WordBool): Integer; dispid 15;
   function SetIgnoreErrors(ignoreErrors: WordBool): Integer; dispid 16;
   function SetObject(const objectPath: WideString; objectType: Integer): Integer; dispid 17;
   function AddAction(action: Integer): Integer; dispid 18;
   function SetRecursion(recursionType: Integer): Integer; dispid 19;
   function SetObjectFlags(daclProtected: Integer; saclProtected: Integer;
                           daclResetChildObjects: WordBool; saclResetChildObjects: WordBool): Integer; dispid 20;
   function SetBackupRestoreFile(const backupRestoreFile: WideString): Integer; dispid 21;
   procedure AddObjectFilter(const keyword: WideString); dispid 22;
   function SendMessageEvents(sendEvents: WordBool): Integer; dispid 23;
   function AddTrusteesFromFile(const csvFile: WideString; action: Integer;
                                trusteeActionAppliesTo: Integer): Integer; dispid 24;
   function SetDelOrphanedSIDOptions(where: Integer): Integer; dispid 25;
 end;

// *********************************************************************//
// The Class CoSetACLCOMServer provides a Create and CreateRemote method to          
// create instances of the default interface ISetACLCOMServer exposed by              
// the CoClass SetACLCOMServer. The functions are intended to be used by            
// clients wishing to automate the CoClass objects exposed by the        
// server of this typelibrary.                                            
// *********************************************************************//
 CoSetACLCOMServer = class
   class function Create: ISetACLCOMServer;
   class function CreateRemote(const MachineName: string): ISetACLCOMServer;
 end;

implementation

uses System.Win.ComObj;

class function CoSetACLCOMServer.Create: ISetACLCOMServer;
begin
 Result := CreateComObject(CLASS_SetACLCOMServer) as ISetACLCOMServer;
end;

class function CoSetACLCOMServer.CreateRemote(const MachineName: string): ISetACLCOMServer;
begin
 Result := CreateRemoteComObject(MachineName, CLASS_SetACLCOMServer) as ISetACLCOMServer;
end;

end.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#7
Yok sorun çözülmedi. Galia tam sorunu ifade edemedim. Kısa veya uzun tüm pathlerdeki permission listesi geliyor. Kısa pathlerdeki permissionları kaldrıabiliyoruz. Fakat uzun path olunca permission kaldırılamıyor.
Cevapla
#8
Hocam ne diyeyim, şu an söylediğin ile sorun aynı değil. Liste boş veya access violation dönüyordan sistem çalışıyor ama permissionları kaldırmıyora nasıl evrildi anlamadım.
Permission kaldırma ile ilgili kod bile yazmamışsınız.

1. Projeniz admin right ile çalıştırmış olmak zorunda.
2. Permission veren owner/sahip siz olmalısınız. Üstten devir vb olmamalı.

bunları teyit ediyorsanız çözümü bulduğunuzda buradan paylaşabilirsiniz. Bende bu şekilde çalışıyor.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#9
Özel mesaj ile gönderdiğiniz kodlar da aynen çalışıyor.

Sizin bilgisayardaki sorun sanırım Windows'un UNC path uzunluk sınırlaması ile ilgili. Yoksa bende çalışıyor sizde çalışmıyor olayına başka türlü anlam veremiyorum.

Sizin için araştırdım aşağıdaki sonuca ulaştım. Umarım sizin için çözüm olur.

* Microsoft Docs'un bu likteki "Maximum Path Length Limitation" makalesinden aşağıdaki "Enable Long Paths in Windows 10, Version 1607, and Later" alt başlığındaki Regisrty düzenlemesine bir bakın derim.


* Eğer bu bahsettiğim makale de size çözüm üretmemiş ise,  size önerim bölme metodu ile olacak. Yani sorun çıkarması muhtemel belli bir uzunluktan daha da uzun olan Path ile karşılaşılırsa bölerek ilerleyin. 

- Sizin örnekten yola çıkarsak deneme yanılma ile

örnek sorunlu uzun path : \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders\1000Folders - Copy (9)\{0055660F-9CC6-4FFE-8510-6C15CED669E2}

path1 : \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders
path2 : \\10000Folders\1000Folders - Copy (9)\{0055660F-9CC6-4FFE-8510-6C15CED669E2}

şeklinde iki farklı şekilde paylaşım oluşturup deneyin. Sonuç olumlu ise nihai bir çözüm bulana kadar bu şekilde günü kurtarın derim. Ama yukarıdaki Microsoft makalesi çözüm olacaktır diye umuyorum.

Çalışmalarınızda başarılar.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#10
Hocam şimdi bir test yaptım.:

uzun path'den olayı tama fakat arada boşluk () }} gibi karekterler var ise işlem yapmıyor Şuan bu kısma takıldık. sistem web tabanlı olduğu için acaba html karekterler ile ilgili bir sorunamı takılıyoruz


\\fiel01.his.local\FileShareEMin\uzufoldername\Foldrnameuzun252\Foldrnameuzun253\Foldrnameuzun256\Foldrnameuzun252Foldrnameuzun252\Foldrnameuzun252Foldrnameuzun252Foldrnameuzun252\Foldrnameuzun252 Foldrnameuzun252Foldrnameuzun 252
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi