Skip to main content

Microsoft Network Policy Server Synchronization Script

This powershell script is written for automating to export configuration from master NPS and then import it on a secondary NPS in order to keep a secondary NPS ready with latest configuration. Script must run on secondary node. The account that runs the script must be the member of both of the master and secondary servers local administrators group.

$nps_master = "master_nps_server" #Master Network Policy Server's HostName or IP Address
$nps_conf_dir = "C:\Tmp\NpsConf\" #XML configuration file store directory.
$nps_conf_path = "C:\Tmp\NpsConf\NpsConf-$nps_master.xml" #XML configuration file path.
$nps_conf_share_path = "\\$nps_master\Tmp\NpsConf\NpsConf-$nps_master.xml" #Master Network Policy Server's share path.
if (!(get-eventlog -logname "Application" -source "Nps-Config-Sync")) {new-eventlog -logname "Application" -source "Nps-Config-Sync"}
trap {write-eventlog -logname "Application" -eventID 0001 -source "Nps-Config-Sync" -EntryType "Error" -Message "NPS Synchronization Script Error: $_. The Script is $($MyInvocation.MyCommand.Definition)"; exit}
invoke-command -ComputerName $nps_master -ArgumentList $nps_conf_path -scriptBlock {param ($nps_conf_path) Export-NpsConfiguration -Path $nps_conf_path}
copy-item -path $nps_conf_share_path -destination $nps_conf_dir
get-item $nps_conf_path
Import-NpsConfiguration -Path $nps_conf_path
remove-item -path $nps_conf_share_path
remove-item -path $nps_conf_path
$success_message = "Network Policy Server Configuration is successfully synchronized from $nps_master. The Script is $($MyInvocation.MyCommand.Definition)"
write-eventlog -logname "Application" -eventID 0002 -source "Nps-Config-Sync" -EntryType "Information" -Message $success_message


Popular posts from this blog

Find and replace with sed command in Linux

Find and replace feature is always handy. It can turn into a torture when it comes to change or delete a simple constant string in a text file. There is a handy tool in linux for doing these kind of tihngs. Actually sed is not a text editor but it is used outside of the text file to make changes.

Sending Jboss Server Logs to Logstash Using Filebeat with Multiline Support

In addition to sending system logs to logstash, it is possible to add a prospector section to the filebeat.yml for jboss server logs. Sometimes jboss server.log has single events made up from several lines of messages. In such cases Filebeat should be configured for a multiline prospector.
Filebeat takes lines do not start with a date pattern (look at pattern in the multiline section "^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}" and negate section is set to true) and combines them with the previous line that starts with a date pattern.

server.log file excerpt where DatePattern: yyyy-MM-dd-HH and ConversionPattern: %d %-5p [%c] %m%n
Logstash filter: