Converting the FileSystemObject's GetSpecialFolder Method

Definition: Depending on the parameter passed to it, this method returns a reference to the Windows folder, the System folder, or the Temp folder.


You can use the Get-Item cmdlet with the ENV: PowerShell drive to retrieve the environment variables to the Windows and Temp paths.

Windows Folder:

$a = Get-Item env:\windir

Temp Folder:

$a = Get-Item env:\temp

You can find the System folder by referencing the ComSpec environment variable, then using Split-Path with the -parent parameter to remove the file name:

System Folder:

$a = Get-Item env:\comspec
$a = Split-Path $a.value -parent

Another option for retrieving the System folder, which is probably a little more straightforward, is to use WMI:

(Get-WMIObject Win32_OperatingSystem).SystemDirectory

Here we’re using the Get-WMIObject cmdlet to retrieve a Win32_OperatingSystem object. One of the properties of Win32_OperatingSystem is SystemDirectory, which just happens to contain the full path to the System directory. And that’s exactly what we’re looking for.

See conversions of other FileSystemObject methods and properties.
Return to the VBScript to Windows PowerShell home page