Searching files on the local disks using Powershell

By Andrei Ungureanu - Last updated: Wednesday, August 24, 2011 - Save & Share - 2 Comments

Asta era un task de care m-am ferit de fiecare data folosind Vbscript. Nu ca ar fi imposibil, dar la cat de complicat e fata de Powershell parca nu se merita.

Mai jos aveti un exemplu de script care cauta fisierul definit in variabila $searchFile pe discurile locale:

$searchFile=”numefisier.extensie”
$Cdisks = get-wmiobject Win32_LogicalDisk  -Filter “DriveType = 3”
foreach($Cdisk in $Cdisks)
{
$CdeviceID = $Cdisk.DeviceID
$files = Get-ChildItem -LiteralPath $CdeviceID -Force -Recurse

foreach($f in $files)
{
if($f.Name.toLower() -eq $searchFile){ Write-Host $f.FullName }

}
}

 

Get-ChildItem suporta parametrul –Force, care il face sa caute si in locatiile marcate ca Hidden. Totusi, folosirea acestui parametru va face ca scriptul sa incerce sa caute in unele locatii system neaccesibile si sa produca erori in output. Dar modificand scriptul sa afiseze rezultatul intr-un fisier de raspuns, se poate rezolva aceasta problema.

Recurse, presupun ca nu mai are rost sa-l explic. Dar puteti testa si voi.

image

Si probabil ca ar merge adaptat si pentru a rula pe un sistem remote.

Posted in Scripting • Tags: , Top Of Page

2 Responses to “Searching files on the local disks using Powershell”

Comment from Vitalie Ciobanu
Time August 25, 2011 at 8:56 am

Remote ok, m-ar juta; dar local? De ce as folosi scriptul in powershell pentru search cand “start”-ul din windows 7 face o treaba destul de buna?

Comment from Andrei Ungureanu
Time August 25, 2011 at 9:01 am

Automation?

Write a comment