PowerShell - 选择要安装的辅助驱动器

时间:2016-06-01 15:18:29

标签: powershell

如果test-path为true,我有以下安装脚本来分配驱动器号。我们所有的应用程序都安装在辅助磁盘上,与OS(C :)完全不同。

$DeviceDrive = "C:"
Get-WmiObject win32_logicaldisk -Filter "DriveType=3 AND DeviceID!='C:'" |
Where-Object { Test-Path "$($_.DeviceID)\Apps\" } |
Foreach-Object {
    $DeviceDrive = $_.DeviceID
}

如果路径是新主机并且我不希望默认驱动器为C:,则该路径可能不存在。如果路径不存在,我如何将辅助磁盘(即D :)分配给$DeviceDrive变量?注意,可能有多于2个驱动器而辅助磁盘可能不是D:即可能是F:或甚至是G:。由于2003年的主机,它还需要在powershell v2.0上运行。

我需要一些东西

IF ($Devicedrive -eq "C:"){
# Select secondary disk and assign to $Devicedrive}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

以下代码将以您指定的方式获取驱动器的根目录D:\。我验证它适用于PowerShell 5和2.我假设您可以将其集成到脚本的其余部分。

$roots =  @(Get-PSDrive -PSProvider FileSystem | where-object { $_.free -gt 1GB} | Sort-Object -Property Root | Select-Object -First 2 -ExpandProperty root)    if($roots.count -eq 2 -and $roots[0] -eq 'C:\')
{
    $root=$roots[1]
}
else
{
    $root=$roots[0]
}

谢谢, 特拉维斯

2016年6月4日更新以发表评论