我所拥有的简化版本是三个 powershell 脚本。一个使用凭据调用其他 powershell 脚本。第二个调用存储在第三个脚本中的函数。所以基本上我的第一个脚本的主要功能是这样的:
Invoke-Command -ScriptBlock { param($script,$param) &$script $param} -ArgumentList $scriptToRun,$param) -ComputerName $computerName -Credential $cred
此函数成功调用第二个脚本,该脚本接受传入的参数,如下所示:
param($path) . ./functions.ps1 addToiTunes $path
第三个脚本包含一个名为 addToiTunes 的函数,它的基本函数首先是为 iTunes 创建一个 COM 对象,如下所示:
function addToiTunes($path) {
$iTunes = New-Object -ComObject iTunes.application
Write-Host "Completed"
}
问题是,它永远不会到达 Write-Host 语句。它只是挂在 New-Object 语句上,然后最终停止并声明“脚本执行完成”。
知道为什么会发生这种情况吗?是因为它试图在后台进程中创建一个新的 com 对象吗?或者可能是我的凭据调用实际上不起作用?
有谁知道调用新对象的更好方法?还是我应该检查该应用程序的现有对象?我不确定问题是什么。