Задание настроек ведения журналов DNS
param( $computer="localhost", $change, [switch]$query, $restart, [switch]$stop, [switch]$start, [switch]$help ) function funHelp() { $helpText=@" DESCRIPTION: NAME: ConfigureDNSLogging.ps1 Configures DNS Server logging information on a local or remote machine. PARAMETERS: -computer Specifies the name of the computer to run the script -change Property to configure on the DNS server < LogLevel, LogPath, LogSize, LogIPFilter, EventLogLevel > -query List current logging configuration -stop Stops the DNS server service -start Starts the DNS server service -restart Stops the DNS server service and waits for a specified interval prior to starting the service backup -help prints help file SYNTAX: ConfigureDNSLogging.ps1 -change loglevel,107009 Changes diagnostic logging to record all DNS queries and responses, using TCP that are incoming to local computer ConfigureDNSLogging.ps1 -computer MunichServer -change logPath, "C:\fso" Changes default DNS Server diagnostic logging directory on a remote server named MunichServer to the c:\fso directory ConfigureDNSLogging.ps1 -computer MunichServer -query Queries a remote server named MunichServer to for all logging settings ConfigureDNSLogging.ps1 -computer MunichServer -change eventloglevel, 4 Configures a remote server named MunichServer to record all events in the system event log related to DNS ConfigureDNSLogging.ps1 -computer MunichServer -restart 5 Causes a remote server named MunichServer restart the DNS service. Waits For 5 seconds between stopping and starting the DNS service ConfigureDNSLogging.ps1 -help Prints the help topic for the script "@ $helpText exit } function funchange($change) { $class="MicrosoftDNS_Server" $dnsServer=Get-WmiObject -class $class -computername $computer ` -namespace root\microsoftDNS switch($change[0]) { "LogLevel" { $dnsServer.logLevel = $change[1] ; $dnsServer.put() } "LogPath" { $dnsServer.logFilePath = $change[1] ; $dnsServer.put() } "LogSize" { $dnsServer.LogFileMaxSize = $change[1] ; $dnsServer.put() } "LogIPFilter" { $dnsServer.LogIPFilterList = $change[1] ; $dnsServer.put() } "EventLogLevel" { $dnsServer.EventLogLevel = $change[1] ; $dnsServer.put() } DEFAULT { "You must specify an action" ; funhelp } } } function funQuery() { $class="MicrosoftDNS_Server" Get-WmiObject -class $class -computername $computer ` -namespace root\microsoftDNS | format-list -property Log*, *log* exit } function funStart() { $class="MicrosoftDNS_Server" $dnsServer = Get-WmiObject -class $class -computername $computer ` -namespace root\microsoftDNS $dnsServer.StartService() exit } function funStop() { $class="MicrosoftDNS_Server" $dnsServer = Get-WmiObject -class $class -computername $computer ` -namespace root\microsoftDNS $dnsServer.StopService() exit } function funRestart($restart) { $class="MicrosoftDNS_Server" $dnsServer = Get-WmiObject -class $class -computername $computer ` -namespace root\microsoftDNS "Stopping service ..." $dnsServer.StopService() for($i = 0 ; $i -le $restart ; $i++) { Start-Sleep -Seconds 1 Write-Host "." -NoNewline } "Starting service ..." $dnsServer.StartService() exit } if($help) { "Printing help now..." ; funHelp } if($query) { "Printing the current DNS server log settings" ; funQuery } if($change) { "Change $($change[0]) to $($change[1]) now ..." ; funChange($change) } if($start) { "Starting DNS service now..." ; funStart } if($stop) { "Stopping DNS service now..." ; funStop } if($restart) { "Restarting DNS service in $($restart) seconds..." ; funRestart($restart) } ELSE { "No action was specified..." ; funhelp }
Голосов пока нет
Оставить комментарий