В subscript.ps1 параметр $custClassData
должен проверять тип [CustClass]
, а не [object]
. Так что-то вроде:
param(
[string]$someString,
[CustClass]$custClassData
)
Таким образом, данные, передаваемые этому параметру, должны иметь тип [CustClass]
.
Кроме того, способ, которым вы звоните subscript.ps1 , не выглядит правильным. Вам не нужно вызывать powershell.exe
, чтобы вызвать subscript.ps1 . powershell.exe
всегда выдаст ошибку здесь.
Вы должны изменить subscript.ps1 на subscript.psm1 , превратить содержимое скрипта в функцию и использовать ее следующим образом:
In subscript.psm1 :
function Do-TheNeedful {
param(
[string]$someString,
[CustClass]$custClassData
)
#~
# do work
#~
}
В main.ps1
class custClass{
[string]$string1
[string]$string2
[string]$string3
}
Import-Module subscript.psm1
$customizedObject = [custClass]::new()
$customizedObject.string1 = "smthng1"
$customizedObject.string2 = "smthng2"
$customizedObject.string3 = "smthng3"
Do-TheNeedful -someString "a_string" -custClassData $customizedObject