Я создал небольшую функцию, которая записывает Get-Volume
в локальный файл.В следующий раз, когда функция запускается, она сравнивает выходные данные нового Get-Volume
с ранее сохраненным в файловой системе.
Эта функция отлично работает для сервисов, но странным образом возвращает том как «другой», дажехотя мы можем видеть из выходных данных, что это не так.
function Compare-Volumes{
$Path = "$Env:PROGRAMDATA\VACS\states\"
$File = "volumes.csv"
$Volumes = Get-Volume | Select-Object OperationalStatus, HealthStatus, DriveType, FileSystemType, DedupMode, UniqueId, AllocationUnitSize, DriveLetter, FileSystem, FileSystemLabel, Size
if (![System.IO.File]::Exists($Path+$File)){
$Volumes | Export-CSV -Path $Path$File -Force
}else{
# Load file to object, get differences, submit to API, replace previous snapshot in file with new one
$Snapshot = Import-CSV -Path "$Path$File"
$StatusChanges = Compare-Object -ReferenceObject ($Snapshot) -DifferenceObject ($Volumes) -Property OperationalStatus, HealthStatus, DriveType, FileSystemType, DedupMode, UniqueId, AllocationUnitSize, DriveLetter, FileSystem, FileSystemLabel, Size -IncludeEqual
$StatusChanges
$Volumes | Export-CSV -Path $Path$File -Force
}
}
Мои ожидаемые результаты состоят в том, что все возвращается как равное / неизменное (==
), поскольку ни одно из свойств не изменяется, как ясно в выходных данных ниже.,Однако по какой-то причине свойство SideIndicator
, добавленное Compare-Object
, указывает на различия в значениях для тома, помеченного Recovery
.
OperationalStatus : Unknown
HealthStatus : Healthy
DriveType : CD-ROM
FileSystemType : Unknown
DedupMode : Disabled
UniqueId : \\?\Volume{2b4803c9-1ebe-11e6-9bed-005056c00008}\
AllocationUnitSize : 0
DriveLetter : E
FileSystem :
FileSystemLabel :
Size : 0
SideIndicator : ==
OperationalStatus : OK
HealthStatus : Healthy
DriveType : Fixed
FileSystemType : NTFS
DedupMode : NotAvailable
UniqueId : \\?\Volume{f688d14f-0ee7-11e5-b210-806e6f6e6963}\
AllocationUnitSize : 4096
DriveLetter : C
FileSystem : NTFS
FileSystemLabel : Windows
Size : 953903214592
SideIndicator : ==
OperationalStatus : Unknown
HealthStatus : Healthy
DriveType : CD-ROM
FileSystemType : Unknown
DedupMode : Disabled
UniqueId : \\?\Volume{f688d152-0ee7-11e5-b210-806e6f6e6963}\
AllocationUnitSize : 0
DriveLetter : D
FileSystem :
FileSystemLabel :
Size : 0
SideIndicator : ==
OperationalStatus : OK
HealthStatus : Healthy
DriveType : Fixed
FileSystemType : NTFS
DedupMode : NotAvailable
UniqueId : \\?\Volume{f688d14e-0ee7-11e5-b210-806e6f6e6963}\
AllocationUnitSize : 4096
DriveLetter :
FileSystem : NTFS
FileSystemLabel : Recovery
Size : 6291451904
SideIndicator : =>
OperationalStatus : OK
HealthStatus : Healthy
DriveType : Fixed
FileSystemType : NTFS
DedupMode : NotAvailable
UniqueId : \\?\Volume{f688d14e-0ee7-11e5-b210-806e6f6e6963}\
AllocationUnitSize : 4096
DriveLetter :
FileSystem : NTFS
FileSystemLabel : Recovery
Size : 6291451904
SideIndicator : <=