New-PSSession-WinRM无法处理请求

时间:2019-01-11 06:25:04

标签: powershell

我正在尝试使用PowerShell脚本列出远程服务器上IIS中的所有网站。以下是我尝试连接到服务器的方式:

$s = New-PSSession -ComputerName $Server

但是当我运行脚本时,出现以下错误:

New-PSSession : [Server] Connecting to remote server Server failed with the
following error message : WinRM cannot process the request. The following error
occurred while using Kerberos authentication: Cannot find the computer Server.
Verify that the computer exists on the network and that the name provided is
spelled correctly. For more information, see the about_Remote_Troubleshooting
Help topic.
At C:\AppServers\Application.ps1:8 char:8
+         $s = New-PSSession -ComputerName Server
+              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : NetworkPathNotFound,PSSessionOpenFailed

服务器已启用接收远程请求。

  

更新:

下面是我要运行的完整功能:

function audit-servers {  
if (Test-path "ApplicationsOnTheServer.txt") {Remove-Item "ApplicationsOnTheServer.txt"}
if (Test-Path "ServersList.txt") {
foreach ($server in Get-Content .\ServersList.txt) {

    "Application Server : $server`n" | out-file -FilePath "ApplicationsOnTheServer.txt" -Append
    "Applications list:" | out-file -FilePath "ApplicationsOnTheServer.txt" -Append
    $s = New-PSSession -ComputerName $server -Credential domainabc\myname
    Invoke-Command -Session $s -ScriptBlock {Import-Module WebAdministration;Get-iissite} | out-file -FilePath "ApplicationsOnTheServer.txt" -Append
}
} else {
    "ServersList.txt file is missing"
     break;
}
"`nAll Done!`n"}

ServersList.txt具有atstappvmabc.tsteag.com

3 个答案:

答案 0 :(得分:0)

您收到的FullyQualifiedErrorId : NetworkPathNotFound错误通常意味着您传递给-ComputerName参数的名称无法解析。

也许尝试运行Test-Connection $Server来解决那里发生的事情。

答案 1 :(得分:0)

错误消息明确指出,您想连接到名为Server的服务器,而不是连接到名称存储在$Server变量中的服务器(粗体文本实际上是您尝试使用的服务器的名称)连接):

  

New-PSSession:[服务器]连接到远程服务器服务器失败

如果您尝试连接到名为MyServer01.example.com的服务器,则会收到如下错误(被截断):

PS C:\> New-PSSession -ComputerName "MyServer01.example.com"
  

New-PSSession:[ MyServer01.example.com ]连接到远程服务器 MyServer01.example.com 失败(...)

即使您声明要尝试执行

$s = New-PSSession -ComputerName $Server

您实际上执行了(注意缺少美元符号)

$s = New-PSSession -ComputerName Server

以上内容也来自您粘贴的错误消息。我建议先跳过该变量,然后尝试在命令本身中输入服务器路径以验证其是否正常工作:

$s = New-PSSession -ComputerName "MyServer01.example.com"

然后,如果可行,将路径放入变量并再次测试。

答案 2 :(得分:0)

您的变量$ Server包含错误的值。您必须为$ Server分配有效的计算机名称。