web-dev-qa-db-ja.com

Active Directoryを使用してリモートPowershellを実行できない

Powershell経由でリモートサーバーに接続し、ActiveDirectoryモジュールを使用しようとしています。これをローカルで実行しようとすると、すべてが問題ないようです。

PS C:\Users\bar> Import-Module ActiveDirectory
PS C:\Users\bar> Get-ADUser 'baz'

DistinguishedName : CN=Foo Baz,OU=baz.myhost.com,OU=FooMachine,DC=foo,DC=blah,DC=loc
Enabled           : True
GivenName         : Baz
Name              : Foo Baz
ObjectClass       : user
ObjectGUID        : <some guid>
SamAccountName    : baz
SID               : <more info here>
Surname           : Baz
UserPrincipalName : baz@foo

私たちがリモートで同じことをするとき、私たちはそれほど幸運ではありません。

C:\> Enter-PSSession -ComputerName 172.1.2.3 -Credential foo\bar
[172.1.2.3]: PS C:\Users\bar\Documents> Import-Module ActiveDirectory
WARNING: Error initializing default drive: 'Unable to contact the server. This
may be because this server does not exist, it is currently down, or it does not
 have the Active Directory Web Services running.'.
[172.1.2.3]: PS C:\Users\bar\Documents> Get-ADUser 'baz'
Unable to contact the server. This may be because this server does not exist, i
t is currently down, or it does not have the Active Directory Web Services runn
ing.
    + CategoryInfo          :
    + FullyQualifiedErrorId : Unable to contact the server. This may be becaus
   e this server does not exist, it is currently down, or it does not have th
  e Active Directory Web Services running.,Microsoft.ActiveDirectory.Managem
 ent.Commands.GetADUser

[172.1.2.3]: PS C:\Users\bar\Documents>

クリストファー、そのドメインで実行されている2〜2008 R2ドメインコントローラーがあります。 Active Directory Webサービスは両方で実行されています( "Import-Module ActiveDirectory"はサーバーコンソールで正常に動作します-ところでドメインコントローラではありません)

5
Mark

このシナリオではCREDSSPが必要ですか?

3
Andy Milsark

これは同様の問題を解決するためにCredSSPを使用する例です 私はこれをテストしましたが、質問に投稿したAD Webサービスエラーを解決するために機能します。

記事から要約するには、まずクライアントとサーバーの両方でCredSSPを有効にする必要があります。

クライアント:Enable-WSManCredSSP -Role Client -DelegateComputer [computer name] -Force

サーバー:Enable-WSManCredSSP -Role Server –Force

次に、他のマシンに接続するための資格情報を取得または作成し、その資格情報を使用するセッションを作成する必要があります。次に、Invoke-Commandを使用して、その新しいセッションのスクリプトブロックでPowerShellコマンド/スクリプトを実行できます。これは、質問のコマンドを使用した、記事の一部の例です。

$credential = Get-Credential -Credential iammred\administrator

$session = New-PSSession -cn SQL1.Iammred.Net -Credential $credential -Authentication Credssp

Invoke-Command -Session $session -ScriptBlock { Import-Module ActiveDirectory; Get-ADUser 'baz' }

ただし、これはインタラクティブに認証情報を要求するため、それを回避したい場合は、代わりに$credentialに対して次のようにする必要があります。

$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "DOMAIN\username",$pass;

ここで、$passは、アカウントに関連付けられたパスワードの安全な文字列です。

6
chustedde

私はいくつかの環境で同じ問題を抱えていて、機能したのはファイアウォールの変更でした。どうやらADWSはポート9389を使用しています。これは、Powershellを使用してリモートでDCを管理しようとしているサーバーからは許可されていません。ポートを許可すると、すべてがスムーズに機能します。 。

3
cybernerd88

このリンクから- http://social.technet.Microsoft.com/Forums/en/winserverpowershell/thread/094f9dd3-669a-4bea-9f81-f2ea009384d1

ADモジュールを使用するには、AD PowerShellモジュールを備えたServer 2008 R2またはWindows 7マシンに加えて、Server 2008 R2 ADサーバーを実行していない場合は、次のものが必要です。

http://www.Microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=008940c6-0296-4597-be3e-1d24c1cf0dda

上記のアドオンを備えたServer 2003または2008 ADサーバーを使用する場合でも、ADモジュールを利用するには、Server 2008 R2またはWindows 7システムが必要です。 PowerShellリモート処理を使用すると、PowerShell v2がインストールされた任意のシステムを使用して、ADモジュールのコマンドレットをリモートで呼び出すことができます。

http://concentratedtech.com/item/view/id/34

2
Christopher

iPアドレスを使用してサーバーに接続した。この方法では、認証にKerberosを使用できません(そのため、資格情報を使用する必要がありました)。したがって、サーバーがユーザーに代わって認証しようとすると、2番目のホップの問題が発生します。サーバーは資格情報をサードパーティに渡すことができないため、エラーが発生します。

このシナリオでは、Kerberos経由でクライアントをサーバーに接続する必要があります。これは、クライアントがドメインメンバーであり、IPアドレスではなくサーバー名を使用している場合にのみ可能です。

トビアスwww.powershell.com

2
user60639