私は2台のマシンを持っています A そして B。
どちらも有効です:psremotingが有効になり、credsspがクライアントとサーバーの両方として有効になります。
機械から A 私は新しい所有権を作成することができます B-Authentication credssp
で
機械から B 私は新しい所有権を作成することができます A-Authentication credssp
で
この時点ですべてが正常に機能しています。私の問題は、コンピューターで実行されるスクリプトがあることです A 両方で新しいセッションを開始します A そして B いくつかのファイルを移動します(SharePointのものはまったく別の問題です)。私が書いたスクリプトは元々外部コンピューターから実行されていたため、両方のシステムにリモート接続するコードが含まれています。しかし今、スクリプトはコンピューターから実行されています A そして、私の人生の間、ローカルホストでcredsspを動作させることはできません。
-delegatecomputer
(enable-wsmancredssp -role clientの場合)および-computername
(new-pssession -authentication credsspの場合)を.
、localhost
、またはのいずれかに設定してみました127.0.0.1
。それらのどれも私がコンピュータから新しいpssessionを始めることを許可しませんでした A コンピューターに戻る A。
したがって、私の質問の核心は次のとおりです。
ローカルコンピュータへの接続は問題なく機能するはずです。ただし、自分で簡単に試してみると、ローカルホストではなく、ローカルコンピューターのコンピューター名を使用して接続する必要がありました(これはNTLMとKerberosの関係であると推測されます)。したがって、次のコマンドを(PowerShell2を搭載したWindowsServer 2008 R2コンピューターで)実行すると、うまくいきました。
Enable-WSManCredSSP -Role Server Enable-WSManCredSSP -Role Client -DelegateComputer MyComputerNameHere $ session = New-PSSession -ComputerName MyComputerNameHere -Authentication Credssp -Credential(Get-Credential)
ただし、ドメインに参加していないコンピューター(PowerShell4を搭載したWindows8.1コンピューター)で機能させるには、グループポリシーを変更する必要がありました(表示されるエラーメッセージに記載されています)。作成する必要のある構成は、Computer Configuration -> Administrative Templates -> System -> Credentials Delegation -> Allow Delegating Fresh Credentials with NTLM-only Server Authentication
構成を有効にし、そのポリシーのコンピューター名リストにコンピューター名を追加することでした。その変更後、上記のコードは、ドメインに参加していないコンピューターでも問題なく機能しました。