powershell - Powershell 调用命令 $input
问题描述
我有麻烦..有人可以帮我吗?这是我的代码:
$A = '123'
$servers = 'computer1'
$Properties = [ordered]@{A = $A
servers = $servers
}
$MyObject = New-Object -TypeName PSObject -Property $Properties
$MyObjec
...
$result = Invoke-Command -ComputerName Machine -UseSSL -InDisconnectedSession -ScriptBlock {
$MyObject.A
$MyObject.servers
$env:computername
}`
–InputObject $MyObjec -port 5986 -ConfigurationName myEndpoint -SessionOption @{OutputBufferingMode="Drop"} -Credential $credential | Receive-PSSession
$result
问题:为什么$result
不显示任何关于的内容$MyObject
?
它只显示$MyObjec
(不在调用命令中)和$env:computername
(在调用命令中)
我该如何解决?
PS这真的是我想做的,我想同时进入6个不同AD的多台机器,但他们应该使用不同的用户名,我需要远程机器中的$A来处理另一件事。
$A = '123'
$servers = 'computer1'
$Properties = [ordered]@{A = $A
servers = $servers
}
$MyObject = New-Object -TypeName PSObject -Property $Properties
$MyObjec
...
#Add
$servers@{'Machine1','Machine2','Machine3'}
Foreach ($servers in $servers) {
Star-Job {
$username = $servers+'account'
$password = $password
$credential = ....($username,$password)
$result = Invoke-Command -ComputerName $servers -UseSSL -InDisconnectedSession -ScriptBlock {
$MyObject.A
$MyObject.servers
$env:computername
}`
–InputObject $MyObjec -port 5986 -ConfigurationName myEndpoint -SessionOption @{OutputBufferingMode="Drop"} -Credential $credential | Receive-PSSession
$result
}
}
我将尝试 -Argument-List 和 param{} Beacase 我尝试使用 -Argument-List 和 $Using 进行 Start-Job,但出现错误。谢谢你的回复!
解决方案
因为其中的部分在-Scriptblock { ... }
远程系统上执行,因此无法访问本地系统上的变量(不同的范围)。
您可以通过使用如下-Argument-List
参数将变量传递给远程系统来更改它:
Invoke-Command -ComputerName Machine -ArgumentList $MyObject -ScriptBlock {
param($MyObject)
$MyObject.A
}
或用于$using:
访问本地定义的变量,如下所示:
Invoke-Command -ComputerName Machine -ScriptBlock {
$using:MyObject.A
}
推荐阅读
- java - Android:如何像头像联系人一样创建图像?
- sql - 在 SQL 中将 strtotime 转换为日期格式
- css - 如何使用边框图像和线性渐变设置多色边框?
- javascript - 如何使用 bootstrap-4-react 在模态中添加条件?
- git - 为什么 AWS EB 工具不使用分支的默认环境?
- android - 如何在获取 API 时修复连接错误?尝试进行身份验证时一直崩溃
- c# - 如果 DbParameter.DbType 是 Binary,那么 DbParameter.Size 的值是多少?
- ruby-on-rails - 为什么 Rails 无法识别请求标头中的 `Accept: application/json`?
- swift - 有没有办法将变量/布尔值携带到视图的超级视图中?
- java - mysql连接-检查与您的mysql服务器版本相对应的手册