[PowerShell] Get-DetailsOf - Die erweiterten Eigenschaften von Dateien ausgeben

DPXone

Lieutenant
Registriert
Mai 2009
Beiträge
554
Hi,

hier heute nochmal eine Funktion ;) , um die erweiterten Dateieigenschaften von Dateien auszugeben.
Selbst der Explorer zeigt ja bei RECHTSKLICK -> Eigenschaften nicht alles Details an.

PS:
Das Ganze gibt's von mir auch als Kontextmenü-Option via VB.Net, bei Interesse (Computerbase exklusiv; ist kein Tool das ich verbreite oder vermarkten will; entstand aus privaten und beruflichen Grünen meinerseits).
Siehe OneDrive-Link hier:
https://www.computerbase.de/forum/threads/exel-vba-getdetailsof.1723354/#post-20652641

PowerShell:
Function Get-DetailsOf { 
	[CmdletBinding()] 
	Param (
		[Parameter(Mandatory = $true , 
			ValueFromPipeline = $true , 
			ValueFromPipelineByPropertyName = $true , 
			ValueFromRemainingArguments = $false , 
			Position = 0)] 
		[string[]] $FullName , 
		
		[Parameter(Position = 1)] 
		[switch] $SingleOutput = $false 
	) 
	
	
	Begin { 
		$objShell = New-Object -ComObject Shell.Application 
		$Results = @() 
	} 
	
	Process { 
		Foreach ($Path In $FullName) { 
			$Result = @() 
			$FSItem = get-item $Path 
			
			If ($FSItem -is [System.IO.FileInfo]) { 
				$FolderPath = [System.IO.Path]::GetDirectoryName($FSItem.FullName) 
				$FileName = $FSItem.Name 
				
				$objFolder = $objShell.namespace($FolderPath) 
				$obJFolderItem = $objFolder.ParseName($FileName) 
				
				For ($attr = 0 ; $attr -le 2000 ; $attr++) { 
					$attrName = $objFolder.getDetailsOf($null , $attr) 
					$attrValue = $objFolder.getDetailsOf($obJFolderItem , $attr) 
					
					If ($attrValue) { 
						$Result+= New-Object psobject -Property([ordered] @{ ID = $attr ; Name = $attrName ; Value = $attrValue }) 
					} 
				} 
				If ($SingleOutput) { 
					$Result 
				} Else { 
					$Results+= New-Object psobject -Property([ordered] @{ Fullname = $FSItem.FullName ; Details = $Result | Sort ID }) 
				} 
			} 
		} 
	} 
	
	End { 
		If (-not $SingleOutput) { 
			$Results 
		} 
	} 
} 



# Beispiel:      

'C:\Windows\regedit.exe' | Get-DetailsOf -SingleOutput | Out-String # Mit '-SingleOutput', um bei einzelnen Dateien die Attribute einzeln als Liste auszugeben      
Get-ChildItem 'C:\Windows\' | Get-DetailsOf # Ohne '-SingleOutput', um alles in einer Hashtabelle auszugeben und im Anschluss auf die Objekte einzeln zugreifen zu können



Ausgabe:
Code:
ID Name             Value                                        
 -- ----             -----                                        
  0 Name             regedit.exe                                  
  1 Size             328 KB                                       
  2 Item type        Application                                  
  3 Date modified    29.09.2017 15:41                             
  4 Date created     29.09.2017 15:42                             
  5 Date accessed    29.09.2017 15:42                             
  6 Attributes       A                                            
  9 Perceived type   Application                                  
 10 Owner            TrustedInstaller                             
 11 Kind             Program                                      
 19 Rating           Unrated                                      
 25 Copyright        © Microsoft Corporation. All rights reserved.
 33 Company          Microsoft Corporation                        
 34 File description Registry Editor                              
 52 Total size       428 GB                                       
 56 Computer         SVEN-PC (this PC)                            
159 File extension   .exe                                         
160 Filename         regedit.exe                                  
161 File version     10.0.16299.15                                
164 Space free       179 GB                                       
182 Shared           No                                           
185 Folder name      Windows                                      
186 Folder path      C:\Windows                                   
187 Folder           Windows (C:)                                 
189 Path             C:\Windows\regedit.exe                       
191 Type             Application                                  
194 Language         English (United States)                      
197 Link status      Unresolved                                   
249 Space used       ‎58%                                         
290 Sharing status   Not shared                                   
291                  Available                                    
292 Product name     Microsoft® Windows® Operating System         
293 Product version  10.0.16299.15                                




Fullname                                    Details                                                                                                                                                                                                   
--------                                    -------                                                                                                                                                                                                   
C:\Windows\bfsvc.exe                        {@{ID=0; Name=Name; Value=bfsvc.exe}, @{ID=1; Name=Size; Value=64,0 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                              
C:\Windows\bootstat.dat                     {@{ID=0; Name=Name; Value=bootstat.dat}, @{ID=1; Name=Size; Value=66,0 KB}, @{ID=2; Name=Item type; Value=DAT File}, @{ID=3; Name=Date modified; Value=18.12.2017 19:08}...}                              
C:\Windows\comsetup.log                     {@{ID=0; Name=Name; Value=comsetup.log}, @{ID=1; Name=Size; Value=20,2 KB}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=19.10.2017 20:53}...}                              
C:\Windows\DfsrAdmin.exe                    {@{ID=0; Name=Name; Value=DfsrAdmin.exe}, @{ID=1; Name=Size; Value=227 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=28.09.2017 01:43}...}                           
C:\Windows\DfsrAdmin.exe.config             {@{ID=0; Name=Name; Value=DfsrAdmin.exe.config}, @{ID=1; Name=Size; Value=1,28 KB}, @{ID=2; Name=Item type; Value=XML Configuration File}, @{ID=3; Name=Date modified; Value=20.10.2017 17:46}...}        
C:\Windows\diagerr.xml                      {@{ID=0; Name=Name; Value=diagerr.xml}, @{ID=1; Name=Size; Value=7,44 KB}, @{ID=2; Name=Item type; Value=XML File}, @{ID=3; Name=Date modified; Value=19.10.2017 20:54}...}                               
C:\Windows\diagwrn.xml                      {@{ID=0; Name=Name; Value=diagwrn.xml}, @{ID=1; Name=Size; Value=7,44 KB}, @{ID=2; Name=Item type; Value=XML File}, @{ID=3; Name=Date modified; Value=19.10.2017 20:54}...}                               
C:\Windows\DirectX.log                      {@{ID=0; Name=Name; Value=DirectX.log}, @{ID=1; Name=Size; Value=473 KB}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=01.07.2017 10:25}...}                                
C:\Windows\DPINST.LOG                       {@{ID=0; Name=Name; Value=DPINST.LOG}, @{ID=1; Name=Size; Value=28,4 KB}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=29.07.2017 13:40}...}                                
C:\Windows\DtcInstall.log                   {@{ID=0; Name=Name; Value=DtcInstall.log}, @{ID=1; Name=Size; Value=4,07 KB}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=19.10.2017 20:51}...}                            
C:\Windows\explorer.exe                     {@{ID=0; Name=Name; Value=explorer.exe}, @{ID=1; Name=Size; Value=3,72 MB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=08.12.2017 00:27}...}                           
C:\Windows\HelpPane.exe                     {@{ID=0; Name=Name; Value=HelpPane.exe}, @{ID=1; Name=Size; Value=954 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                            
C:\Windows\hh.exe                           {@{ID=0; Name=Name; Value=hh.exe}, @{ID=1; Name=Size; Value=17,5 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                                 
C:\Windows\mib.bin                          {@{ID=0; Name=Name; Value=mib.bin}, @{ID=1; Name=Size; Value=42,1 KB}, @{ID=2; Name=Item type; Value=BIN File}, @{ID=3; Name=Date modified; Value=29.09.2017 15:42}...}                                   
C:\Windows\notepad.exe                      {@{ID=0; Name=Name; Value=notepad.exe}, @{ID=1; Name=Size; Value=241 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                             
C:\Windows\NvContainerRecovery.bat          {@{ID=0; Name=Name; Value=NvContainerRecovery.bat}, @{ID=1; Name=Size; Value=1,90 KB}, @{ID=2; Name=Item type; Value=Windows Batch File}, @{ID=3; Name=Date modified; Value=27.10.2017 18:36}...}         
C:\Windows\NvTelemetryContainerRecovery.bat {@{ID=0; Name=Name; Value=NvTelemetryContainerRecovery.bat}, @{ID=1; Name=Size; Value=1,90 KB}, @{ID=2; Name=Item type; Value=Windows Batch File}, @{ID=3; Name=Date modified; Value=11.10.2017 01:26}...}
C:\Windows\PFRO.log                         {@{ID=0; Name=Name; Value=PFRO.log}, @{ID=1; Name=Size; Value=328 KB}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=02.12.2017 18:02}...}                                   
C:\Windows\Professional.xml                 {@{ID=0; Name=Name; Value=Professional.xml}, @{ID=1; Name=Size; Value=34,6 KB}, @{ID=2; Name=Item type; Value=XML File}, @{ID=3; Name=Date modified; Value=29.09.2017 15:43}...}                          
C:\Windows\regedit.exe                      {@{ID=0; Name=Name; Value=regedit.exe}, @{ID=1; Name=Size; Value=328 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                             
C:\Windows\Setup1.exe                       {@{ID=0; Name=Name; Value=Setup1.exe}, @{ID=1; Name=Size; Value=328 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=01.06.2016 11:03}...}                              
C:\Windows\setuperr.log                     {@{ID=0; Name=Name; Value=setuperr.log}, @{ID=1; Name=Size; Value=0 bytes}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=19.10.2017 20:48}...}                              
C:\Windows\splwow64.exe                     {@{ID=0; Name=Name; Value=splwow64.exe}, @{ID=1; Name=Size; Value=127 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:42}...}                            
C:\Windows\ST6UNST.EXE                      {@{ID=0; Name=Name; Value=ST6UNST.EXE}, @{ID=1; Name=Size; Value=73,0 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=01.06.2016 11:03}...}                            
C:\Windows\system.ini                       {@{ID=0; Name=Name; Value=system.ini}, @{ID=1; Name=Size; Value=219 bytes}, @{ID=2; Name=Item type; Value=INI File}, @{ID=3; Name=Date modified; Value=30.10.2015 08:21}...}                              
C:\Windows\twain_32.dll                     {@{ID=0; Name=Name; Value=twain_32.dll}, @{ID=1; Name=Size; Value=64,0 KB}, @{ID=2; Name=Item type; Value=Application extension}, @{ID=3; Name=Date modified; Value=29.09.2017 15:42}...}                 
C:\Windows\win.ini                          {@{ID=0; Name=Name; Value=win.ini}, @{ID=1; Name=Size; Value=92 bytes}, @{ID=2; Name=Item type; Value=INI File}, @{ID=3; Name=Date modified; Value=30.10.2015 08:21}...}                                  
C:\Windows\WindowsUpdate.log                {@{ID=0; Name=Name; Value=WindowsUpdate.log}, @{ID=1; Name=Size; Value=276 bytes}, @{ID=2; Name=Item type; Value=LOG File}, @{ID=3; Name=Date modified; Value=18.12.2017 21:06}...}                       
C:\Windows\winhlp32.exe                     {@{ID=0; Name=Name; Value=winhlp32.exe}, @{ID=1; Name=Size; Value=11,5 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:42}...}                           
C:\Windows\WMSysPr9.prx                     {@{ID=0; Name=Name; Value=WMSysPr9.prx}, @{ID=1; Name=Size; Value=309 KB}, @{ID=2; Name=Item type; Value=PRX File}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                               
C:\Windows\write.exe                        {@{ID=0; Name=Name; Value=write.exe}, @{ID=1; Name=Size; Value=11,0 KB}, @{ID=2; Name=Item type; Value=Application}, @{ID=3; Name=Date modified; Value=29.09.2017 15:41}...}                              
C:\Windows\xhunter1.sys                     {@{ID=0; Name=Name; Value=xhunter1.sys}, @{ID=1; Name=Size; Value=37,4 KB}, @{ID=2; Name=Item type; Value=System file}, @{ID=3; Name=Date modified; Value=12.06.2017 19:14}...}
 
Zuletzt bearbeitet:
Zurück
Oben