只获取分区标签

时间:2013-08-30 09:49:40

标签: powershell

我正在用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

1 个答案:

答案 0 :(得分:4)

据我所知,Get-PSDrive不知道网络和本地驱动器之间的区别。您可以使用Get-WMIObject Win32_LogicalDisksupports filtering drives按类型。

过滤示例:

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

Get-WmiObject Win32_LogicalDisk | ? {$_.DriveType -eq 3}