Se avete PowerShell 5+ seguente one-liner elenca in modo ricorsivo tutti i collegamenti fisici di file, giunzioni di directory ei link simbolici e ai loro obiettivi a partire da d:\Temp\
:
dir 'd:\Temp' -recurse -force | ?{$_.LinkType} | select FullName,LinkType,Target
uscita:
FullName LinkType Target
-------- -------- ------
D:\Temp\MyJunctionDir Junction {D:\exp\junction_target_dir}
D:\Temp\MySymLinkDir SymbolicLink {D:\exp\symlink_target_dir}
D:\Temp\MyHardLinkFile.txt HardLink {D:\temp\MyHardLinkFile2.txt, D:\exp\hlink_target.xml}
D:\Temp\MyHardLinkFile2.txt HardLink {D:\temp\MyHardLinkFile.txt, D:\exp\hlink_target.xml}
D:\Temp\MySymLinkFile.txt SymbolicLink {D:\exp\symlink_target.xml}
D:\Temp\MySymLinkDir\MySymLinkFile2.txt SymbolicLink {D:\temp\normal file.txt}
Se ci si preoccupa di più destinazioni per collegamenti fissi, utilizzare questa variante che elenca le schede separate da tabulazione:
dir 'd:\Temp' -recurse -force | ?{$_.LinkType} | select FullName,LinkType,@{ Name = "Targets"; Expression={$_.Target -join "`t"} }
Potrebbe essere necessario disporre dei privilegi di amministratore per eseguire questo script, ad esempio C:\
.
fonte
2017-02-08 15:39:04
Gli hard link sono semplicemente voci di file aggiuntive nella MFT e in quanto tali appaiono come normali file, a meno che qualcuno non guardi il numero di collegamenti a quel file. Ma finora non ho provato un collegamento simbolico. Effettivamente ha impostato l'attributo ReparsePoint. Grazie.(Anche se i collegamenti simbolici sono più complessi da gestire, poiché non ho le autorizzazioni per crearli di default: /) – Joey
Penso che non sia vero che i collegamenti fisici e i link simbolici utilizzano lo stesso meccanismo. Come ha sottolineato Johannes, i collegamenti fissi sono solo un'altra voce nella MFT. Un collegamento simbolico è un punto di analisi. Sono diversi. http://stackoverflow.com/questions/817794/find-out-whether-a-file-is-a-symlink-in-powershell/2255548#2255548 – Cheeso
E 'possibile inoltre verificare se il link simbolico è ancora valido? (O in altre parole, se la directory di destinazione non è stata cancellata) –