silver1986
Goto Top

Powershell - Auslesen von Datei-Informationen auf einem Vordefinierten Pfad

Hallo Administratoren, befasse mich arbeitsbedingt seit kurzem mit Powershell und wurde von meinem Anleiter vor ein, für mich, schwer lösbares Problem gestellt und bitte um Mithilfe.

Es soll einem Powershell Script auf einem beliebigen Rechner in einer Domäne gestartet werden.
Dieses Script soll dann nach einem bestimmten Dateipfad fragen welcher manuell eingegeben wird z.B.: c:\Programe Files\xxx\
nun soll dieses Script in einer bereits vorhandenen TXT.Datei in der eine Liste von IP Adressen steht (optional auch Rechnernamen) auf jedes dieser Rechner zugreifen und für alle, in dem vorher manuell definierten Pfad, Dateien den Namen, das letzte Änderungsdatum und die Dateiversion ausgeben und in einer TXT- u. CSV Datei speichern. Das für alle Rechner aus der IP Liste.

Könnt ihr mir da weiter helfen?

Content-Key: 161001

Url: https://administrator.de/contentid/161001

Printed on: April 27, 2024 at 22:04 o'clock

Member: Silver1986
Silver1986 Feb 22, 2011 at 09:31:09 (UTC)
Goto Top
hab mal ein bisschen recharchiert und folgendes script zum auslesen der Dateiversion gefunden:
#Das COM Objekt "Shell.Application" hat die Funktionaliät die wir brauchen 
$shellObject = New-Object -Com Shell.Application

#Die Datei, von der wir die Informationen haben wollen als PS Object
$fileItem = Get-Item "C:\Program Files\7-Zip\7z.exe"  

#Auslesen des Ordnernames und Dateinames von der Datei
$directoryName = $fileItem.DirectoryName
$filename = $fileItem.Name

#Erstellen des Orderobjektes und des Dateiobjekts als COM Objekt
$folderObject = $shellObject.NameSpace($directoryName)
$item = $folderObject.ParseName($filename)

#Auslesen der Eigenschaft der Datei mit der ID 38, das ist die Dateiversion
$folderObject.GetDetailsOf($item, 38)
funktioniert soweit einwandfrei nur das es mir die Versionsnummer nicht ausgibt. Hab ich ein Fehler drin? Wie kann ich dieses Script auf mehrere Datein anwenden?
Member: Silver1986
Silver1986 Feb 23, 2011 at 08:20:49 (UTC)
Goto Top
So nun hab ich es soweit geschaft, dass er es für mehrere Daten anwendet. Nun hab ich das Problem, dass er die Version der daten nicht ausgibt und immer noch kein Plan habe, wie ich nach dem eingegebenen Pfad auf mehreren Rechnern in einer Domäne suchen lassen kann.

$path = read-host "Bitte Pfad eingeben: "                           
ls $path -Recurse -force | select-object fullname | out-file c:\temp\search.txt -width 50 

$filepath = gc c:\temp\search.txt                                    

foreach  ($file in $filepath)                                                    
			{				
			 $shellObject = New-Object -Com Shell.Application                     

             $fileItem = Get-Item ($file)                                         

             $directoryName = $fileItem.DirectoryName                            
             $filename = $fileItem.Name

             $folderObject = $shellObject.NameSpace($directoryName)                
             $item = $folderObject.ParseName($filename)

             write-host "Name: "$folderObject.GetDetailsOf($item, 0)                 
             write-host "Typ: "$folderObject.GetDetailsOf($item, 2)                 
             write-host "Version: "$folderObject.GetDetailsOf($item, 38)  
             write-host "Letzte Änderung: "$folderObject.GetDetailsOf($item, 3)      
             write-host "-----------------"                           
             }
             break;

So sieht die Ausgabe zb. auf dem Verzeichnis C:\temp\ aus:

Name: anzahl_elt_gruppe
Typ: Microsoft Office Excel-CSV
Version:
Letzte Änderung: 15.03.2010 16:04
Name: GRC Gruppen
Typ: Textdokument
Version:
Letzte Änderung: 15.03.2010 16:02
Name: Mappe1
Typ: Microsoft Office Excel-Arbeitsblatt
Version:
Letzte Änderung: 15.03.2010 16:11
Name: search
Typ: Microsoft Office Excel-CSV
Version:
Letzte Änderung: 22.02.2011 15:04
Name: search
Typ: Textdokument
Version:
Letzte Änderung: 23.02.2011 09:14
Name: search
Typ: Textdokument
Version:
Letzte Änderung: 23.02.2011 09:14
Name: search
Typ: Textdokument
Version:
Letzte Änderung: 23.02.2011 09:14

need Help ^^