您需要将运行空间放在 PowerShell 实例中(请参见此处):
$ps = [PowerShell]::Create()
$ps.Runspace = $r
[void]$ps.AddScript($sb)
$ps.Invoke()
$ps.Dispose()
$r
您打开的运行空间在哪里,是$sb
您要执行的脚本块。
您的脚本块中也有错误。该类Clipboard
是System.Windows.Forms
命名空间的一部分,所以它是System.Windows.Forms.Clipboard
,而不是System.Windows.Clipboard
。另外,您需要先加载相应的程序集。
完整示例:
$sb = {
Add-Type -Assembly 'System.Windows.Forms'
[Windows.Forms.Clipboard]::GetText() | Out-File 'C:\path\to\output.txt'
}
$ps = [PowerShell]::Create()
$ps.Runspace = [RunspaceFactory]::CreateRunspace()
$ps.Runspace.ApartmentState = 'STA'
$ps.Runspace.Open()
[void]$ps.AddScript($sb)
$ps.Invoke()
$ps.Dispose()