$pciStats = (Get-WMIObject Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity') |
foreach {
# request connection properties from wmi
[pscustomobject][ordered]@{
Name = $_.Name
ExpressSpecVersion=$_.GetDeviceProperties('DEVPKEY_PciDevice_ExpressSpecVersion').deviceProperties.data
MaxLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkSpeed' ).deviceProperties.data
MaxLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkWidth' ).deviceProperties.data
CurrentLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkSpeed' ).deviceProperties.data
CurrentLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkWidth' ).deviceProperties.data
} |
# only keep devices with PCI connections
Where MaxLinkSpeed
}
$pciStats | Format-Table -AutoSize
Get-CimInstance -ClassName Win32_Volume | Select-Object DriveLetter, FileSystem, BlockSize| Format-Table -AutoSize
$Path001 = 'C:\DiskSpd\amd64\'
$Sp = $Path001 + "diskspd.exe"
cd $Path001
$Rn = Get-Random -Minimum 1 -Maximum 10
$Version = "070_" + $Rn
$Drives = @("C")
$FilesTemp = "Data4del"
$File001 = "deleteme_01a.dm"
$File002 = "deleteme_02a.dm"
$File003 = "deleteme_03a.dm"
$Out021 = $Drives[0] + ':\' + $FilesTemp + '\' + $File001
$Out022 = $Drives[0] + ':\' + $FilesTemp + '\' + $File002
$Out023 = "D" + ':\' + $FilesTemp + '\' + $File003
# $OutsFilesAA = @("$Out021", "$Out023", "$Out021 $Out022","$Out021 $Out023","$Out021 $Out022 $Out023") - не работает вот так и все.
$OutsFilesAA = @( "$Out022")
$Logs = @()
$Threads = @("-t1","-t2", "-t3", "-t4","-t5","-t6","-t7","-t8","-t9","-t10","-t11","-t12","-t13","-t14","-t15")
# $Threads = @("-t1")
# $Write = ("-w0","-w30", "-w100")
$Write = @("-w100")
#$BlockSize = ("-b4k","-b8k")
$BlockSize = @("-b4k")
# $Outstanding = @("-o2","-o4","-o8","-o16","-o32")
$Outstanding = @("-o2")
$Size = "-c200G"
$Time = "-d10"
foreach ($OutFilesGr in $OutsFilesAA){
foreach ($Drv in $Drives){
foreach ($Bl in $BlockSize) {
foreach ($Wr in $Write) {
foreach ($Outs in $Outstanding){
foreach ($T1 in $Threads){
$TimeNow = get-date -UFormat "-%d-%m-%Y-%R" | ForEach-Object {$_ -replace ":","-"}
Write-Host "TT " $TimeNow
$Out001 = $Drv + ':\' + $FilesTemp + '\' + $File001
$Out002 = $Drv + ':\' + $FilesTemp + '\' + $File002
$Out003 = "D" + ':\' + $FilesTemp + '\' + $File003
$Stat1 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_1.log'
$Stat2 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_2.log'
$Stat3 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_3.log'
$Logs += $Stat1
Write-Host "testing mode " $T1 $Wr $Bl $Outs 'time' $Time # "GR" $OutFilesGr
# &$Sp $T1 $Wr $Bl -W10 $Outs $Time -Suw -D -L $Size $Out021 $Out022 > $Stat1
&$Sp $T1 $Wr $Bl -W10 $Outs $Time -Suw -D -L $Size $Out021 > $Stat1
}}}}}}