首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有双跳的invoke-command

带有双跳的invoke-command
EN

Stack Overflow用户
提问于 2016-08-18 02:12:11
回答 1查看 831关注 0票数 0

我需要连接到另一个域中的服务器。从该服务器,我连接到其他3个域,以查找每个域中的用户帐户。

我连接到终端服务器,然后运行'invoke-command‘。出现了几个问题:

1-我指定了我的凭据是什么,但当我运行脚本时,它会提示输入凭据。

stating我得到一个错误,指出invokemethod为空

脚本如下:

代码语言:javascript
复制
PARAM (
    [Parameter(ValueFromPipeline)]
    $FullName
)
###Creds###
$Password = Read-Host -AsSecureString "Enter Your Password" 
$apcred = New-Object System.Management.Automation.PSCredential 
("server\username",$Password) 

### Double Hop  ###
$Session = New-PSSession -Name RDP -ComputerName Server.com -Credential
($apcred)
Enable-WSManCredSSP -Role Client -DelegateComputer server.com -Force 
Invoke-Command -Session $session -ScriptBlock {Enable-WSManCredSSP -Role 
Server -Force}

    Invoke-Command -Session $session -ScriptBlock {
$rrs = Get-ADUser -Filter * -Server server2.com -Credential ($apcred)
$rrsusers = ($rrs | Where-Object{$_.name -eq $Name})

这是我得到的错误:

代码语言:javascript
复制
You cannot call a method on a null-valued expression.
+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
EN

回答 1

Stack Overflow用户

发布于 2016-08-18 02:48:37

脚本块有自己的作用域,因此在您正在运行的脚本块的上下文中,$apcred是空的。您可以在-ArgumentList参数中传递对象,或者在变量前加上"using“前缀,就像在$using:apcred中一样。这会导致ScriptBlock进入外部作用域以获取$apcred变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39003623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档