1

我正在用 Powershell 编写一个小脚本。

该脚本正在获取驱动器号并将它们与一些附加代码一起导出到批处理文件中的临时目录。

这是一个例子:

$TempFolderSavePath = $env:temp + "\SDelete.cmd"
Get-PSDrive -PSProvider 'FileSystem' | Select-Object Name | foreach { $_.Name } | ForEach-Object {"SDelete -z "+ $_} | Out-File $TempFolderSavePath

问题是,该脚本还包括映射的网络驱动器

我如何只能使用本地驱动器?

这是脚本的一个版本,没有生成新文件,只是将其输出到控制台。

Get-PSDrive -PSProvider 'FileSystem' | Select-Object Name | foreach { $_.Name } | ForEach-Object {"SDelete -z "+ $_} | Write-Host
4

1 回答 1

5

据我所知,Get-PSDrive不知道网络和本地驱动器之间的区别。您可以使用Get-WMIObject Win32_LogicalDisk,它支持按类型过滤驱动器

过滤示例:

Get-WmiObject Win32_LogicalDisk | select-object DeviceID, DriveType, @{Name="Type";Expression={[IO.DriveType]$_.DriveType}} | ? {$_.Type -eq 'Fixed'}

或者

Get-WmiObject Win32_LogicalDisk | ? {$_.DriveType -eq 3}
于 2013-08-30T09:58:20.687 回答