此场景中有两台机器:
我使用以下命令启动使用CredSSP执行“second-hop”身份验证的psremote会话:
$session = New-PSSession -cn server.sub.domain.com -Credential $credential -Authentication Credssp
Invoke-Command -Session $session -ScriptBlock {. '\\client\Profile\Microsoft.PowerShell_profile.ps1'}
Invoke-Command -Session $session -ScriptBlock { Import-Module \\client\Profile\Modules\Posh-SSH }
上面的最后一行产生下面的错误(我使用的任何二进制模块都会发生此错误)。我需要这个该死的错误才能消失!
无法加载文件或程序集'file:// \ client \ Profile \ Modules \ Posh-SSH \ Assembly \ Renci.SshNet.dll'或其依赖项之一。不支持操作。 (来自HRESULT的异常:0x80131515)+ CategoryInfo:validOperation:(:) [Import-Module],FileLoadException
以下是我尝试/验证的所有内容:
在 server.sub.domain.com :
上PS C:\Users\MKANET\Desktop\Dev>Get-WSManCredSSP
The machine is not configured to allow delegating fresh credentials.
This computer IS CONFIGURED to receive credentials from a remote client computer.
在 client.sub.domain.com :
上PS C:\Users\MKANET\Desktop\Dev>Get-WSManCredSSP
The machine IS CONFIGURED to allow delegating fresh credentials to the following target(s): wsman/*.sub.domain.com
This computer is not configured to receive credentials from a remote client computer.
我将以下内容放在客户端 $ PSHome \ Powershell.exe.config
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
On Client :(我尝试运行以下命令,因为没有其他工作。不用说,这没有任何帮助。)
Set-Alias CasPol "$([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory())CasPol.exe"
CasPol -pp off -machine -addgroup 1.2 -url file://\S858018\Profile\Modules\* FullTrust
在客户端和服务器上:
PS C:\Users\MKANET\Desktop\Dev>$psversiontable
Name Value
---- -----
WSManStackVersion 3.0
PSCompatibleVersions {1.0, 2.0, 3.0}
SerializationVersion 1.1.0.1
BuildVersion 6.2.9200.16398
PSVersion 3.0
CLRVersion 4.0.30319.1008
PSRemotingProtocolVersion 2.2
答案 0 :(得分:0)
在远程计算机上接收invoke-command的进程不是powershell.exe,而是wsmprovhost.exe。您需要更改该进程的配置文件,就像您对powershell.exe所做的那样,如果您希望它有任何效果。
在调试程序集加载问题时,可以使用Fusion log。请务必在远程计算机上执行此操作,因为这是装配加载的地方。
你也试过远程机器上的caspol东西吗?