gpt4 book ai didi

powershell - Powershell检查驱动器号是否存在,如果存在,请删除

转载 作者:行者123 更新时间:2023-12-02 23:37:01 25 4
gpt4 key购买 nike

我有一个脚本来检查是否有带有某些字母的驱动器。
如果该字母存在,它将删除这些字母。
然后,脚本根据其“标签”查找驱动器,并根据脚本中指定的内容更改其字母。

我正在寻找完善的脚本,以便在第一部分中它将查找带有字母E或D的所有驱动器,如果是,请将其删除。
如果找不到,则根据磁盘标签转到第二​​部分。

Get-Volume -DriveLetter E | Get-Partition | Remove-PartitionAccessPath -AccessPath E:\
Get-Volume -DriveLetter D | Get-Partition | Remove-PartitionAccessPath -AccessPath D:\

$DataPartition = Get-WMIObject Win32_Volume | where{ $_.Label -eq 'Data'}
$FileServerPartition = Get-WMIObject Win32_Volume | where{ $_.Label -eq 'FileServer'}

$DataPartition.DriveLetter = $null
$DataPartition.Put()
$FileServerPartition.DriveLetter = $null
$FileServerPartition.Put()


Try
{
Set-WmiInstance -input $DataPartition -Arguments @{DriveLetter="D:"} | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt -Append
Set-WmiInstance -input $FileServerPartition -Arguments @{DriveLetter="E:"} | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt -Append
}
Catch
{
$ErrorMessage = $_.Exception.Message | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt
}
sleep 5
Restart-Service server -Force

最佳答案

这是我最后使用的解决方案:

$driveLetters= (Get-Volume).DriveLetter
if ($driveLetters -contains "d" -or $driveLetters -contains "e")
{
switch ($driveLetters)
{
"d" {Get-Volume -DriveLetter D | Get-Partition | Remove-PartitionAccessPath -AccessPath D:\}
"e" {Get-Volume -DriveLetter E | Get-Partition | Remove-PartitionAccessPath -AccessPath E:\}
}
}

$DataPartition = Get-WMIObject Win32_Volume | where{ $_.Label -eq 'Data'}
$FileServerPartition = Get-WMIObject Win32_Volume | where{ $_.Label -eq 'FileServer'}

$DataPartition.DriveLetter = $null
$DataPartition.Put()
$FileServerPartition.DriveLetter = $null
$FileServerPartition.Put()



Try
{
Set-WmiInstance -input $DataPartition -Arguments @{DriveLetter="D:"} | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt -Append
Set-WmiInstance -input $FileServerPartition -Arguments @{DriveLetter="E:"} | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt -Append

}
Catch
{
$ErrorMessage = $_.Exception.Message | Out-File -FilePath C:\Windows\Temp\FixPartitionsLog.txt
}
sleep 5
Restart-Service server -Force

关于powershell - Powershell检查驱动器号是否存在,如果存在,请删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53106618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com