首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我使用PowerShell,为什么WinRS不能工作?

如果我使用PowerShell,为什么WinRS不能工作?
EN

Stack Overflow用户
提问于 2013-03-31 06:43:27
回答 2查看 1.4K关注 0票数 2

我有一个文件"test.ps1“,其内容如下:

代码语言:javascript
复制
$getRSDBName =
{
    Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    $rsdb = Get-SPRSDatabase

    return $rsdb
}


$rsdb = invoke-command  -scriptblock $getRSDBName 

$rsdb

如果我称之为:

代码语言:javascript
复制
powershell -f c:\test.ps1

如果我使用WinRS,我会得到一个错误:

代码语言:javascript
复制
winrs -r:xxxxx -u:xxxxxx -p:xxxxx powershell -f c:\test.ps1

我也尝试过输入-Authentication CredSSP -Credential $creds作为Invoke-Command的参数,但结果和以前一样。在这两种情况下,错误是:

无法进入当地农场。没有注册带有FeatureDependencyId的Cmdlet。获取-SPRSDatabase:无法访问本地场。验证本地场是否已正确配置,当前可用,并且在再次尝试之前,您是否有适当的每个任务访问数据库。At C:\clean.ps1:181 char:29 + $rsdb = Get-SPRSDatabase <<<< + CategoryInfo : InvalidData:(Microsoft.Repor...ServiceDatabase: GetReportingServiceDatabase) Get-SPRSDatabase,SPCmdletException + FullyQualifiedErrorId :InvalidData

有人能解释一下发生了什么吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-18 17:03:58

这是由描述这里的“第二跳”问题引起的,远程服务器上的命令试图依次到达sql数据库(必须向其传递凭据,但不能再次委托它们)。

若要解决此问题,请在服务器上运行以下命令

代码语言:javascript
复制
Enable-WSManCredSSP –Role server

以及客户机上的这一点(需要提升特权)

代码语言:javascript
复制
Enable-WSManCredSSP –Role client –DelegateComputer *

那就记住要用

代码语言:javascript
复制
$session = New-PSSession -ComputerName $computer -Credential $credential -Authentication CredSSP

当您打开远程会话并传递$session调用-命令时

代码语言:javascript
复制
Invoke-Command -ScriptBlock $doSomething -Session $session  

这为我解决了:)一般来说,我发现在使用invoke-命令时发现的任何奇怪问题都与第二个hop问题有关。这实际上是一个安全特性,因此,它是为了帮助我们,即使它有点无聊,但并不难解决它。

票数 1
EN

Stack Overflow用户

发布于 2013-09-13 17:28:42

您能创建一个PS会话,然后在远程shell中运行脚本吗?如果是这样,为什么不向当前脚本添加一个创建/销毁会话?

代码语言:javascript
复制
$Session = New-PSSession -ComputerName "computerNameHere"
Import-PSSession -Session $Session

$getRSDBName = {
    Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    $rsdb = Get-SPRSDatabase

    return $rsdb
}
$rsdb = invoke-command  -scriptblock $getRSDBName 
$rsdb

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

https://stackoverflow.com/questions/15727080

复制
相关文章

相似问题

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