web-dev-qa-db-ja.com

ローカルホストへのpsremotingおよびcredssp認証

私は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

したがって、私の質問の核心は次のとおりです。

  1. Credssp資格情報をローカルホストに委任できますか?
  2. そうでない場合は、そのセッション内で引き続きSharePointにログインできるようにする(つまり、資格情報をさらに渡す)pssessionを作成する方法はありますか?
  3. 最悪の場合:スクリプトを書き直す必要があります。
1
CodePartizan

ローカルコンピュータへの接続は問題なく機能するはずです。ただし、自分で簡単に試してみると、ローカルホストではなく、ローカルコンピューターのコンピューター名を使用して接続する必要がありました(これは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構成を有効にし、そのポリシーのコンピューター名リストにコンピューター名を追加することでした。その変更後、上記のコードは、ドメインに参加していないコンピューターでも問題なく機能しました。

1