Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cls
- $file = Get-Content "access.txt" | Out-String
- #$regexStr = "Options for Scope (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):\r\n\r\n\tDHCP Standard Options :\r\n\tGeneral Option Values:\r\n\t(OptionId : (\d+) \r\n\tOption Value: \r\n\t\tNumber of Option Elements = \d+\r\t\tOption Element Type = \w\r\n\t\tOption Element Value = ([\r\n]+)\r\n)+"
- $regexStr = "\d+\) Name = [^\r\n]+\r\n +General\r\n +Name +=([^\r\n]+)\r\n +Description \(optional\) +=([^\r\n]*)\r\n +Type +=([^\r\n]+)\r\n +Evaluation order +=([^\r\n]+)\r\n" +
- " +Enabled +=([^\r\n]+)\r\n +From\r\n +This rule applies to traffice from these sources +=([^\r\n]+)\r\n" +
- " +To\r\n( +([^\r\n]+)\r\n){5}" +
- " +Users\r\n[^\r\n=]+=([^\r\n]+)\r\n" +
- " +Content Types\r\n( +([^\r\n]+)\r\n){2}" +
- " +Protocols\r\n( +([^\r\n]+)\r\n){5}" +
- " +Action\r\n( +([^\r\n]+)\r\n){4}" +
- " +Schedule\r\n( +([^\r\n]+)\r\n){2}"
- $regex = [regex]::Matches($file, $regexStr, [System.Text.RegularExpressions.RegexOptions]::Multiline -bor [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)
- $objArr = @()
- $regex | foreach {
- $To = [string]::Join(", ", ($_.Groups[7].Captures | where { $_ -match " +[^\r\n=]+=[^\r\n]+" } | foreach {$_.Value.Trim()}))
- $ContType = [string]::Join(", ", ($_.Groups[10].Captures | where { $_ -match " +[^\r\n=]+=[^\r\n]+" } | foreach {$_.Value.Trim()}))
- $Protocols = [string]::Join(", ", ($_.Groups[12].Captures | where { $_ -match " +[^\r\n=]+=[^\r\n]+" } | foreach {$_.Value.Trim()}))
- $Action = [string]::Join(", ", ($_.Groups[14].Captures | where { $_ -match " +[^\r\n=]+=[^\r\n]+" } | foreach {$_.Value.Trim()}))
- $Schedule = [string]::Join(", ", ($_.Groups[16].Captures | where { $_ -match " +[^\r\n=]+=[^\r\n]+" } | foreach {$_.Value.Trim()}))
- $obj = New-Object System.Object
- $obj | Add-Member -Name "Name" -MemberType NoteProperty -Value $_.Groups[1].Value
- $obj | Add-Member -Name "Description" -MemberType NoteProperty -Value $_.Groups[2].Value
- $obj | Add-Member -Name "Type" -MemberType NoteProperty -Value $_.Groups[3].Value
- $obj | Add-Member -Name "Order" -MemberType NoteProperty -Value $_.Groups[4].Value
- $obj | Add-Member -Name "Enabled" -MemberType NoteProperty -Value $_.Groups[5].Value
- $obj | Add-Member -Name "From" -MemberType NoteProperty -Value $_.Groups[6].Value
- $obj | Add-Member -Name "To" -MemberType NoteProperty -Value $To
- $obj | Add-Member -Name "Users" -MemberType NoteProperty -Value $_.Groups[9].Value
- $obj | Add-Member -Name "ContType" -MemberType NoteProperty -Value $ContType
- $obj | Add-Member -Name "Protocols" -MemberType NoteProperty -Value $Protocols
- $obj | Add-Member -Name "Action" -MemberType NoteProperty -Value $Action
- $obj | Add-Member -Name "$Schedule" -MemberType NoteProperty -Value $Action
- $objArr += $obj
- }
- #$objArr | ft DiskAllocation
- $objArr | Export-Csv "TMG_Rules.csv" -Encoding UTF8 -Delimiter ";" -NoTypeInformation
Advertisement
Add Comment
Please, Sign In to add comment