Skip to content

Commit 582167e

Browse files
committed
Test setup
1 parent efcb07c commit 582167e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

wmi-adapter/wmiAdapter.psm1

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,36 @@ function GetCimSpace {
131131
return $result
132132
}
133133

134+
function ValidateCimMethodAndArguments {
135+
[CmdletBinding()]
136+
param (
137+
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
138+
[dscResourceObject]$DesiredState
139+
)
140+
141+
$methodName = $DesiredState.properties.psobject.properties | Where-Object -Property Name -EQ 'methodName' | Select-Object -ExpandProperty Value
142+
if (-not $methodName) {
143+
"'methodName' property is required for invoking a WMI method." | Write-DscTrace -Operation Error
144+
exit 1
145+
}
146+
147+
$className = $DesiredState.type.Split("/")[-1]
148+
$namespace = $DesiredState.type.Split("/")[0].Replace(".", "/")
149+
150+
$cimClass = Get-CimClass -Namespace $namespace -ClassName $className -MethodName $methodName
151+
152+
if ($cimClass) {
153+
$properties = $DesiredState.properties.psobject.properties | Where-Object -Property Name -NE 'methodName'
154+
$parameters = $cimClass.CimClassMethods | Where-Object -Property Name -EQ $methodName | Select-Object -ExpandProperty CimMethodParameters
155+
156+
foreach ($prop in $properties) {
157+
158+
}
159+
}
160+
161+
return $cimClass
162+
}
163+
134164

135165
function Invoke-DscWmi {
136166
[CmdletBinding()]
@@ -165,4 +195,12 @@ class dscResourceObject {
165195
[string] $name
166196
[string] $type
167197
[PSCustomObject] $properties
198+
}
199+
200+
$inputObject = [DscResourceObject]@{
201+
name = 'root.cimv2/Win32_Process'
202+
type = 'root.cimv2/Win32_Process'
203+
properties = [PSCustomObject]@{
204+
methodName = 'Create'
205+
}
168206
}

0 commit comments

Comments
 (0)