我想在不必在脚本中传递凭据的情况下启动New-PSSession
。我知道您可以从文件中获取密码或在脚本中对其进行硬编码,然后将其转换为安全字符串以启动会话。但是,我想使用当前用户的凭据启动会话。
我尝试远程访问的计算机位于同一个域中。
我试过了:
Enter-PSSession -ComputerName machineInDomain
Enter-PSSession:连接到远程服务器失败了 以下错误消息:WinRM无法处理请求。该 使用Kerberos身份验证时发生以下错误: 找不到网络路径。可能的原因是:
- 用户名或 指定的密码无效 -Kerberos用于没有 验证方法,没有指定用户名 -Kerberos 接受域用户名,但不接受本地用户名 -服务 远程计算机名称和端口的主体名称(SPN)没有 存在。 - 客户端和远程计算机位于不同的域中 两个域之间没有信任。检查后 以上问题,请尝试以下方法:
- 检查事件查看器以查找事件 与认证有关 - 更改身份验证方法;加 目标计算机到WinRM TrustedHosts配置 设置或我们的HTTPS传输。注意计算机中的 TrustedHosts列表可能未经过身份验证 -欲获得更多信息 关于WinRM配置,运行以下命令:winrm help 配置。有关更多信息,请参阅about_Remote_Troubleshooting 帮助主题。在行:1个字符:16 + Enter-PSSession<<<< -ComputerName machineInDomain + CategoryInfo:InvalidArgument:(machineInDomain:String)[Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId:CreateRemoteRunspaceFailed
如果在同一个域中,Kerberos应该使用信任传递当前用户的凭据。
Enter-PSSession -ComputerName $RemoteHost -Authentication Kerberos
Enter-PSSession:连接到远程服务器失败,并显示以下错误消息 :WinRM无法处理请求。使用Kerberos身份验证时发生以下错误:计算机 Kerberos不知道$ RemoteHost。验证计算机是否存在于网络上,即该名称 提供的拼写正确,并且用于访问计算机的Kerberos配置是正确的。最多 常见的Kerberos配置问题是格式为HTTP / $ RemoteHost的SPN不是 为目标配置。如果不需要Kerberos,请指定协商身份验证机制并重新提交 操作。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。
At line:1 char:1 + Enter-PSSession -ComputerName $RemoteHost -Authentication Ke ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: ($RemoteHost) [Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
这似乎是一个域名问题。