SORU
2 Kasım 2012, Cuma


Powershell v3.0 boru sorunu

Bu komut ile sorun yaşıyorum:

gc .\domains.txt | Get-ADDomain

Adı gibi, domains.txt Active Directory listesini sorgulamak için içerir anlamına gelir (tüm etki alanları aynı ormanda).

Eğer işletiyorum benim Windows 8 makine her şey gayet iyi çalışıyor ve ben beklenen sonuçları yerine Windows 2008 R2 SP1 üye sunucu (DC) ile WMF 3.0 aldığım sonuç sadece ilk etki alanı listesinde ve diğerleri:

Get-ADDomain : A referral was returned from the server

Listede bir etki ben Sorgu ile:

Get-ADDomain <Domain name here>

gayet iyi çalışıyor.

Benim İş İstasyonu

Microsoft Windows 8 Enterprise (6.2.9200) x 64

PS D:\Tools\Powershell> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      3.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.18010
BuildVersion                   6.2.9200.16384
PSCompatibleVersions           {1.0, 2.0, 3.0}
PSRemotingProtocolVersion      2.2

Server

Microsoft Windows 2008 R2 Standart SP1 (6.1.7601) x 64 Sunucu

PS C:\Tools\Powershell> $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.269
PSRemotingProtocolVersion      2.2

Güncelleme

Eğer sunucu üzerinde çalıştırmak için:

gc .\domains.txt | %{ Get-ADDomain $_ }

ince çalışır

İZ

trace-command -Name ParameterBinding { "DOMAIN_1","DOMAIN_2" | Get-ADDomain } -PSHost

Sunucu: http://pastebin.com/sRVJHaCU

İş istasyonu: http://pastebin.com/kj3JV6nV

Şimdiden teşekkürler

CEVAP
9 Ocak 2014, PERŞEMBE


Bu sürüm arasında bir fark PulseAll durumunda iş derhal döngü, tekrar nesne kilitleme tekrarlayın.

12 çekirdek, 12 iş parçacığı çalışan, düğmeyi kontrol ve döngü tekrar girin, nesne (birbiri ardına) kilitleme ve sonra bekleme durumuna giriyor. Zaman başka bir iş O dur. ManualEvent durumda iki olay var, konuları hemen döngü tekrar yok, ama ARES olaylar engellenmiş olur yerine - bu başka bir iş parçacığı kilit sahipliği verir daha hızlı.

ReadLastTimestampAndPublish içinde döngü sonunda uyku ekleyerek PulseAll simüle benzer bir davranış görmedim. Bu syncObj daha hızlı kilitlemek için başka bir iş parçacığı sağlar ve programdan alıyorum rakamları iyileştirmek gibi görünüyor.

static void ReadLastTimestampAndPublish()
{
    while(true)
    {
        lock(SyncObj)
        {
            Monitor.Wait(SyncObj);
        }
        IterationToTicks.Add(Tuple.Create(Iteration, s.Elapsed.Ticks - LastTimestamp));
        Thread.Sleep(TimeSpan.FromMilliseconds(100));   // <===
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • HER0R

    HER0R

    16 Aralık 2007
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011