-
Notifications
You must be signed in to change notification settings - Fork 0
/
DiskCheck.psm1
129 lines (81 loc) · 3.55 KB
/
DiskCheck.psm1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Function DiskCheck([string]$para1, [string]$para2){
Add-Type -AssemblyName System.Windows.Forms
if($PSScriptRoot.length -eq 0){
$scriptRoot="C:\testing_AI\modules\"
}
else{
$scriptRoot=$PSScriptRoot
}
$tcpath=(Split-Path -Parent $scriptRoot)+"\currentjob\TC.txt"
$tcnumber=((get-content $tcpath).split(","))[0]
$tcstep=((get-content $tcpath).split(","))[1]
$actionss ="screenshot"
Get-Module -name $actionss|remove-module
$mdpath=(Get-ChildItem -path $scriptRoot -r -file |Where-object{$_.name -match "^$actionss\b" -and $_.name -match "psm1"}).fullname
Import-Module $mdpath -WarningAction SilentlyContinue -Global
if($para1.Length -eq 0){
$disklist = Get-WmiObject -Class Win32_LogicalDisk | ?{$_.providername -notlike "\\*"} | Select-Object DeviceID
}else{
$disklist = $para1
}
$diskjud = Get-WmiObject -Class Win32_LogicalDisk | ?{$_.providername -notlike "\\*"}
if($diskjud.DeviceID -match $disklist){
foreach ($list in $disklist) {
if($para1.Length -eq 0){
$filePath = $list.DeviceID # 請將路徑替換為實際的檔案路徑
$scname = $list.DeviceID.Substring(0,1) + "-Disk"
}else{
$filePath = $list
$scname = $list.Substring(0,1) + "-Disk"
}
# 使用 Start-Process 打開檔案屬性
Start-Process "explorer.exe" -ArgumentList "/select, $filePath"
Start-Sleep -s 30
[System.Windows.Forms.SendKeys]::SendWait("%~")
Start-Sleep -s 5
if($para2.Length -ne 0){
Start-Sleep -s 8
[System.Windows.Forms.SendKeys]::SendWait("+{TAB}")
Start-Sleep -s 5
[System.Windows.Forms.SendKeys]::SendWait("{RIGHT}")
Start-Sleep -s 5
[System.Windows.Forms.SendKeys]::SendWait("{TAB}")
Start-Sleep -s 5
#$dlllist = get-process -Name "*dllhost*"
Start-Sleep -s 5
[System.Windows.Forms.SendKeys]::SendWait("C")
Start-Sleep -s 8
[System.Windows.Forms.SendKeys]::SendWait(" ")
do{
echo "Watting for diskcheck complete..."
#$dllhostfordiskcheck = Get-Process -Name "*dllhost*"
Start-Sleep -s 5
[System.Windows.Forms.SendKeys]::SendWait("^c")
}until( (Get-Clipboard) -match "Footer" )
echo "Diskcheck complete!!"
Set-Clipboard -Value " "
screenshot -para3 "nonlog" -para5 ($scname + "-check")
Start-Sleep -s 5
[System.Windows.Forms.SendKeys]::SendWait(" ")
Start-Sleep -s 5
}else{
screenshot -para3 "nonlog" -para5 $scname
}
Start-Sleep -s 5
Stop-Process -Name "explorer"
}
$results = "OK"
}
else{
$results = "NG"
}
$action = "checkScreenshot"
######### write log #######
Get-Module -name "outlog"|remove-module
$mdpath=(Get-ChildItem -path "C:\testing_AI\modules\" -r -file |Where-object{$_.name -match "outlog" -and $_.name -match "psm1"}).fullname
Import-Module $mdpath -WarningAction SilentlyContinue -Global
#write-host "Do $action!"
outlog $action $results $tcnumber $tcstep $index
}
# 匯出模組成員
Export-ModuleMember -Function DiskCheck