具有多个PowerShell版本的SpecialFolders

时间:2018-09-10 21:35:11

标签: powershell

PS2.0中是否有办法获取某些直到更高版本才枚举的特殊文件夹? 例如,[Environment]::GetFolderPath("ProgramFilesX86")在PS5.0中可用,但在PS2.0中产生枚举错误。我当时想也许有一种基于.NET的方法,但是我的Google专家让我想到,即使在Framework 4之前的.NET中也没有办法,但这似乎是一个非常明显的疏忽。

1 个答案:

答案 0 :(得分:-1)

以下第一个命令在Windows 10 1803上的PowerShell 5.1.1中返回47。在同一系统上的PowerShell 2.0中,它返回23。如果您删除了Measure-Object的管道,并且Count属性为点号,则它实际上会显示您可以使用的文件夹的名称。这是以下命令的秒数。

([enum]::GetNames([System.Environment+SpecialFolder]) | Measure-Object).Count

([enum]::GetNames([System.Environment+SpecialFolder]) | Sort-Object) -join "`n"

PowerShell 2.0特殊文件夹:

ApplicationData
CommonApplicationData
CommonProgramFiles
Cookies
Desktop
DesktopDirectory
Favorites
History
InternetCache
LocalApplicationData
MyComputer
MyDocuments
MyMusic
MyPictures
Personal
ProgramFiles
Programs
Recent
SendTo
StartMenu
Startup
System
Templates