如果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}
有什么想法吗?
答案 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日更新以发表评论