PowerShell kezdő kérdés

Sziasztok!

Meglehetősen kezdő kérdésem lenne PowerShell témakörben. Adott a DNS szerver debug logjai állapotának lekérdezése:

PS C:\Users\Administrator> Get-DnsServerDiagnostics


SaveLogsToPersistentStorage          : True
Queries                              : True
Answers                              : True
Notifications                        : True
Update                               : True
QuestionTransactions                 : True
UnmatchedResponse                    : True
SendPackets                          : True
ReceivePackets                       : True
TcpPackets                           : True
UdpPackets                           : True
FullPackets                          : False
FilterIPAddressList                  : 
EventLogLevel                        : 7
UseSystemEventLog                    : False
EnableLoggingToFile                  : True
EnableLogFileRollover                : True
LogFilePath                          : C:\Temp\dnslog.txt
MaxMBFileSize                        : 65536
WriteThrough                         : True
EnableLoggingForLocalLookupEvent     : True
EnableLoggingForPluginDllEvent       : True
EnableLoggingForRecursiveLookupEvent : True
EnableLoggingForRemoteServerEvent    : True
EnableLoggingForServerStartStopEvent : True
EnableLoggingForTombstoneEvent       : True
EnableLoggingForZoneDataWriteEvent   : True
EnableLoggingForZoneLoadingEvent     : True

Tesztképpen az EnableLoggingToFile paraméter értékét szeretném lekérdezni, de ez a kiment objektumok listája (a színfalak mögött):

PS C:\Users\Administrator> Get-DnsServerDiagnostics | Get-Member EnableLoggingToFile


   TypeName: Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DNS/DnsServerDiagnostics

Name                MemberType Definition                         
----                ---------- ----------                         
EnableLoggingToFile Property   bool EnableLoggingToFile {get;set;}

Egy olyan egyszerű lekérdezést szeretnék, ami True/False értéket ad vissza, és egyszerűen le tudnám kérdezni ennek a paraméternek az értékét.
Próbálkoztam több mindennel, de nem bizonyultam túl sikeresnek.

Előre is köszünöm a segítséget!

Hozzászólások

Ha egy "if" kifejezésbe szeretnék két ilyet beletenni, akkor hogy lenne értelme megcsinálni?

$eee=Get-DnsServerDiagnostics
if (($eee | Select-Object -ExpandProperty TcpPackets) -and ($eee | Select-Object -ExpandProperty UdpPackets)) { echo "Hello World" }

Ha már berakod egy változóba, akkor így is írhatod:

$eee=Get-DnsServerDiagnostics
if ($eee.TcpPackets -and $eee.UdpPackets) {
  echo "Log file path: $($eee.LogFilePath)"
}

De meg lehet csinálni változó nélkül is:

Get-DnsServerDiagnostics |
  Where-Object { $_.TcpPackets -and $_.UdpPackets } |
  ForEach-Object { echo "Log file path: $($_.LogFilePath)" }

Köszi a segítséget, az első lett a nyerő, mert ezt (illetve egy előzőhöz hasonló kifejezést) egy if-else feltételes kifejezésbe kell tennem, de a második kétségtelenül profibb.

vagy -expandproperty

pl:

> Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -expandproperty CSName
NB5410

(Get-DnsServerDiagnostics).EnableLoggingToFile