我正在用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
答案 0 :(得分:4)
据我所知,Get-PSDrive
不知道网络和本地驱动器之间的区别。您可以使用Get-WMIObject Win32_LogicalDisk
,supports 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}