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
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)); // <===
}
}

Nasıl boru hattı girişi kabul eden bir...
XML - net.net vs boru.tcp vs http BaÄŸl...
EÄŸer PowerShell `profil.ps1` dosya?...
Boru Vim dış komut için tampon...
Nasıl PowerShell komut satırı değişken...