Useful PowerShell Scriptlets for Files and Folders
|
by Helge Klein on 09/15/2009 | 2 Comments | 6,156 Views
|
What is the best way to learn PowerShell? Never use cmd.exe again!
With PowerShell 2.0 on my Windows 7 machine I decided it finally is time to polish my rusty knowledge of the language dating back to the days when PowerShell was still called Monad. In my attempt to re-familiarize myself with PoSh I consciously use it for tasks that would take me mere seconds with other tools like cmd.exe, or even old friends like Perl. But, hey, learning takes time, and there is nothing better than practice! Here are a couple of things I have learned en route.
Searching for a Particular File
Long version:
Get-ChildItem c:\ -Include advapi32.dll -Recurse -Force -ErrorAction SilentlyContinue | Select-Object FullName
Short version:
gci c:\ advapi32.dll -r -fo -ea silentlycontinue | select fullname
This recursively scans drive C: for the file advapi32.dll, looks at hidden and system files (-Force) and ignores errors that might be caused by insufficient permissions. For each file found, the full path is displayed.
Sample Output:
FullName
--------
C:\Windows\System32\advapi32.dll
C:\Windows\SysWOW64\advapi32.dll
C:\Windows\winsxs\amd64_microsoft-windows-advapi32_31bf3856ad364e35_6.1.7600.16385_none_3f3d4351a032bf57\advapi32.dll
C:\Windows\winsxs\x86_microsoft-windows-advapi32_31bf3856ad364e35_6.1.7600.16385_none_e31ea7cde7d54e21\advapi32.dll
Cmd.exe equivalent:
dir /a /s /b c:\advapi32.dll
Listing Encrypted Files and Folders
Long version:
Get-ChildItem c:\ -Include * -Recurse -Force -ErrorAction
SilentlyContinue | Where-Object {$_.Attributes -ge "Encrypted"} |
Select-Object FullName
Short version:
gci c:\ * -r -fo -ea silentlycontinue | ? {$_.attributes -ge
"encrypted"} | select fullname
This iterates over all objects on drive C: and displays the full path of those that have the encrypted attribute set.
Cmd.exe equivalent:
None (without resorting to external tools, which would be possible with PowerShell, too).
Improvements?
Is there a more elegant way of doing this? If so, please let me know by posting a comment.
Update 1: Thanks to Shay Levy I replaced -gt with -ge in the search for encrypted files. Now the scriptlet also finds files that only have the encrypted attribute set.
- ‹ previous
- 94 of 156
- next ›
+++ Profile Migrator 2 - Ein neuer Desktop, ein frisches Benutzerprofile und alle bewährten Einstellungen und Daten. Jetzt kostenlos und unbefristet testen!
Tags
2 responses for "Useful PowerShell Scriptlets for Files and Folders" |
Aktuelle Artikel
Über den Autor
![]() |
Helge Klein IT-Architect Blogs about Windows, Terminal Services and other things |
Most viewed
| 153,925 Views |
Where is the Hosts File on Windows x64? |
| 82,700 Views |
Deleting a Local User Profile - Not as easy as one Might Assume |
| 52,823 Views |
Printer Driver Isolation in Windows 7 and Server 2008 R2 |








Hi Helge, -i can be left
Hi Helge,
-i can be left out, it also works like this:
gci c:\ advapi32.dll -r -fo -ea silentlycontinue | select fullname
Holger
Thanks, I removed -i from the
Thanks, I removed -i from the short versions of the scriptlets.
Strangely, the Powershell
Strangely, the Powershell version takes about 70(!) seconds, while the cmd -dir version takes only 3 seconds. Way to go Microsoft! ;(