2011-08-15 42 views
3

私はpowershellを使用して、自分のコンピュータでポートが開かれているかどうかを調べます。私は8つの窓2008 R2マシンを持って、私は次のスクリプトを実行します。Powershellはネットワーク共有にアクセスできない

$localhost = get-content env:computername 

foreach($port in get-content "\\computer1\txtfiles\ports.txt") 
{ 

foreach ($hostname in get-content "\\compiuter1\txtfiles\servers.txt") 
    { 
    try { 
     $sock = new-object System.Net.Sockets.Socket -ArgumentList $([System.Net.Sockets.AddressFamily]::InterNetwork),$([System.Net.Sockets.SocketType]::Stream),$([System.Net.Sockets.ProtocolType]::Tcp) 
    $sock.Connect($hostname,$Port) 
    $output = $localhost+","+$hostname+","+$port+","+$sock.Connected 
    $output 
    $sock.Close() 
} 
catch { 

    $output = $localhost+","+$hostname+","+$port+","+$sock.Connected 
    $output 

} 
} 

}

をそして私が使用してコンピュータ1から8コンピュータでこのスクリプトを実行します。

Invoke-Command -ComputerName computer1,computer2 -FilePath F:\scripts\port-test.ps1 

を最初のコンピュータで(私は、スクリプトを実行するマシンをcomputer1-)私は出力を得たが、私が持ってコンピューター上:

Cannot find path '\\computer1\txtfiles' because it does not exist. 

    + CategoryInfo   : ObjectNotFound: (\\computer1\txt 
    files:String) [Set-Location], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand 

なぜPowershellはネットワーク共有を見ませんか?どうすれば修正できますか?

+0

2つのアドレスは異なるはずですか? '\\ computer1 \ txtfiles'!= ' \\ compiuter1 \ txtfiles' – JohnL

答えて

1

編集:

これを再現することができ、ダブルホップの問題になる可能性があります。


http://blogs.msdn.com/b/clustering/archive/2009/06/25/9803001.aspx

(またはマットが与えられていたことリンク)コンピュータ2と他のコンピュータがそのシェアを見ることができていることを確認してください:私はここで指示に従って、それを解決しました。他のマシンが最初に共有を見ることができない場合、Powershellは何もできません。簡単なチェックのために

は行います

Invoke-Command -computer computer2 -script {dir \\computer1\txtfiles} 
+0

彼らは – alex

+0

がその方法で動作していないことを見ることができます – alex

4

は、ダブルホップの問題のような音 - http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx - 基本的に1台のマシンにリモート処理し、その後、別のマシンにアクセスしようとしています。あなたのケルベロストークンは、オリジナルとデスティネーションの間にマシンがあるため無効と見なされます。

どのOSが使用されていますか(送信元と送信先のOSはCredSSPに関連しています)?それが通過するすべての道のWindows 2008またはWindows 7で、問題がダブルホップであるならば、あなたはそれを避けるために、私たちのCredSSPにできる可能性があります - http://www.ravichaganti.com/blog/?p=1230

HTH、 マット

+0

私はWindows 2008 R2を書いています。私のポストを読んでください。私はここでダブルホップを使用していない! – alex

+0

ごめんなさい、CredSSPを設定する必要があると思います。ダブルホップはあなたが使っているものではなく、ここで書いたすべてのことが問題になっていることを指摘しています(Manojldsが与えたコードがうまくいきません)。 – Matt

+0

1行目:私は8台のWindows 2008 R2マシンを持っています。ダブルホップは:http://www.ravichaganti.com/blog/?p = 1230それを読んでください。しかし、私はそれをきちんと確かめた。それは助けになりませんでした。 – alex

1

それは、アクセス制御に問題がない場合は

Cannot find path '\\computer1\d$\path' because it does not exist.

それ作品ファイル名の前にMicrosoft.PowerShell.Core\FileSystem::を追加した後:このエラーでサーバ上のファイルをコピーするときに、私が直面した同様の問題を考えます

copy-item "Microsoft.PowerShell.Core\FileSystem::\\computer1\d$\path\installer.msi" "Microsoft.PowerShell.Core\FileSystem::\\computer2\d$\path\installer.msi" 
関連する問題