Forefront TMG 2010 - Scripting με VBScript και Powershell
Σκοπός αυτού του άρθρου είναι να παρουσιάσουμε εν συντομία το τρόπο με τον οποίο μπορούμε να διαχειριστούμε τον Forefront TMG κάνοντας χρήση VBScript καθώς επίσης πως μπορούμε να συλλέξουμε πληροφορίες διαμέσου της δυνατότητας υποστήριξης πρόσβασης "read only" PowerShell στον Forefront TMG.
Ας ξεκινήσουμε
Πρώτα απ'όλα θα πρέπει να σας εκμηστηρευτώ ότι σε καμία περίπτωση δεν είμαι ένας Scripting ή programming guru. Κατά την διάρκεια των φοιτητικών μου χρόνων ασχολήθηκα με προγραμματισμό σε γλώσσες όπως η Borland Turbo Pascal, η COBOL καθώς και η C++, αλλά ποτέ δεν ασχολήθηκα με τον προγραμματισμό επαγγελματικά. Παρόλα αυτά νομίζω ότι σε αυτό το άρθρο θα λάβετε αρκετή πληροφορία η οποία θα σας φανεί ιδιαίτερα χρήσιμη έτσι ώστε να καταλάβετε την δύναμη του VBScript και του PowerShell στον Forefront TMG, έτσι ώστε να είναι εύκολο για τον καθέναν μας να αναπτύξει τα δικά του scripts. Επιπροσθέτως θα ρίξουμε μια ματιά στο Forefront TMG SDK, στο οποίο περιλαμβάνεται και μια σειρά από ιδιαιτέρως χρήσιμα preconfigured scripts τα οποία έχουν σαν σκοπό να αυτοματοποιήσουν την εργασία της διαχείρισης του.
O Forefront TMG ως COM
To COM χρησιμοποιείται από τις τεχνολογίες scripting όπως η VBScript για την απόκτηση πρόσβασης στον Forefront TMG με την μέθοδο του προγραμματισμού. Σύμφωνα με την Wikipedia
ο όρος COM σημαίνει Component Object Model. Το Component Object Model (COM)
αποτελεί ένα πρότυπο binary-interface το οποίο σχετίζεται άμεσα με το software componentry και ανακοινώθηκε για πρώτη φορά από την Microsoft το 1993. Χρησιμοποιείται για την ενεργοποίηση του interprocess communication και του
dynamic object creation σε ένα μεγάλο εύρος γλωσσών προγραμματισμού. Συχνά δε ο όρος COM χρησιμοποιείται στην βιομηχανία ανάπτυξης λογισμικού γύρω από τα προϊόντα της Microsoft ο οποίος λειτουργεί ως ομπρέλλα κάτω από την οποία περιλαμβάνονται και τα OLE, OLE Automation, ActiveX,
COM+ και οι DCOM technologies. Το COM αποτελεί μια interface technology η οποία καθορίζεται και εφαρμόζεται/αναπτύσεται ως πρότυπο μόνον στα Microsoft Windows και στο Apple's Core
Foundation 1.3 και νεότερες εκδόσεις. Σε κάποιες δε εφαρμογές το COM αντικαταστάθηκε σε κάποιο βαθμό από το Microsoft .NET framework, όπως επίσης και η υποστήριξη των Web Services διαμέσου του Communication Foundation
(WCF). Εντούτοις, τα COM objects μπορούν να χρησιμοποιηθούν με όλες τις .NET languages διαμέσου του .NET COM Interoperability.
Ο Forefront TMG COM έχει ένα root object το οποίο ονομάζεται
FPC.Root. Αυτό το root object διαχειρίζεται το Enterprise object το οποίο ταυτοποιείται/αναγνωρίζεται ως FPCEnterprise και στους Arrays ως FPCArrays.FPC. Το Root αποτελεί το root του administration COM object hierarchy, και παρέχει πρόσβαση κάνοντας χρήση προγραμματισμού - (programmatic access) - σε άλλα FPC objects. Κάθε υπολογιστικό σύστημα Forefront TMG σχετίζεται - (associated) - με έναν μοναδικό array ως ένα από αρκετά fpcServer objects μέσα σε μία συλλογή από fpcServers.
Άλλα objects τα οποία διαχειρίζονται από αυτό το Enterprise object και από το Array object είναι τα ακόλουθα:
-
Admin Security object (χρησιμοποιείται από το Enterprise και από το Array)
-
Extensions object (χρησιμοποιείται από το Enterprise και από το Array)
-
Policy Rule object (χρησιμοποιείται από το Enterprise και από το Array)
-
Server object (χρησιμοποιείται από το Array)
-
Rule Elements object (χρησιμοποιείται από το Enterprise και από το Array)
-
Cache object (χρησιμοποιείται από το Array)
-
Network Configuration object (χρησιμοποιείται από το Enterprise και από το Array)
-
Array Policy object (χρησιμοποιείται από το Array)
-
IP object (χρησιμοποιείται από το Array)
Based on this knowledge you should have a better
understanding about the VBScript script examples which you can found on
several Internet websites and in the Forefront TMG SDK. An understanding
of COM objects is also helpful when you use the PowerShell to query
Forefront TMG objects. Forefront TMG has no built-in PowerShell CMDLets
and will use COM.
Forefront TMG SDK
Αρχικά θα ξεκινήσουμε με το Forefront TMG SDK, το οποίο μπορούμε να το κατεβάσουμε δωρεάν από το Microsoft website. Θα βρείτε τον διαδικτυακό σύνδεσμο (link) για να κατεβάσετε αυτό το SDK στο τέλος αυτού του άρθρου. Το Forefront TMG SDK
έρχεται με ένα πάρα πολύ χρήσιμο documentation στο οποίο περιγράφεται εκτενώς ο προγραμματισμός του Forefront TMG
καθώς επίσης πληροφορίες ανώτερου επιπέδου σχετικά με μία σειρά από εσωτερικά Forefront TMG
concepts. Το Forefront TMG SDK περιλαμβάνει και μια σειρά από παραδείγματα scripting από τα οποία θα χρησιμοποιήσω ορισμένα κομμάτια κώδικα.
Εικόνα 1: Forefront TMG SDK – Παραδείγματα Script
Ένα από τα παραδείγματα scripts μας επιτρέπει να προσθέσουμε Forefront
TMG Administrators στο role based access model του Forefront TMG, όμως μόνον στο Monitor group. Εδώ επιτρέψτε μου ότι θα αποτελούσε μια ευχάριστη άσκηση ο εμπλουτισμός του συγκεκριμένου script έτσι ώστε να προσθέσετε τον Αdministrator και σε άλλα Forefront TMG roles.
Εικόνα 2: Προσθήκη χρήστη στο Monitor role group του Forefront TMG
Παραδείγματα VBScript
Ο ευκολότερος τρόπος για να αυτοματοποιήσουμε ορισμένα tasks στον Forefront TMG είναι με την χρήση των VBScript.
Τα VBScript ήταν επίσης διαθέσιμα και στην παλαιότερη έκδοση του Forefront TMG και μπορούν να χρησιμοποιηθούν για την αυτοματοποίηση ορισμένων administration tasks. Το πρώτο παράδειγμα script σας εμφανίζει όλους τους Forefront TMG arrays.
Το script ξεκινα με την ρύθμιση του Forefront TMG
root το οποίο είναι πάντοτε το FPC.Root και οριοθετεί μια παράμετρο - (set a variable) - η οποία θα περιέχει τους Forefront TMG arrays (objFPC.Arrays). Το script θα εμφανίζει ένα Input Box όπου θα εισάγουμε το όνομα του Forefront TMG array ή αντιστοίχως θα αφήνουμε το dialog box κενό έτσι ώστε να αλμβάνουμε μία λίστα από όλους τους διαθέσιμους Forefront TMG arrays.
Εικόνα 3: Εμφάνιση πληροφοριών για τον Forefront TMG array.
Ένα κλασικό Script
Ένα κλασικό script το οποίο έχω χρησιμοποιήσει αρκετές φορές σε εγκαταστάσεις ISA Server και Forefront TMG
είναι η εξαγωγή όλου του Forefront TMG configuration κάνοντας χρήση ενός
script. Μπορείτε να χρησιμοποιήσετε το παρακάτω script σε συνδυασμό με τον Windows Task Scheduler για να εξάγετε το όλο το Forefront TMG configuration σε κάποιον άλλο host σε επαναλαμβάνομενα χρονικά διαστήματα.
Dim fileName
Dim WSHNetwork
Dim shareName: shareName = WScript.Arguments(0)
Dim xmldom : set xmldom = CreateObject("Msxml2.DOMDocument")
Dim fpc : set fpc = WScript.CreateObject("Fpc.Root")
Dim array : set array = fpc.GetContainingArray
set WSHNetwork = CreateObject("WScript.Network")
fileName=shareName & "\" & WSHNetwork.ComputerName & "-" &
Month(Now) & "-" & Day(Now) & "-" & Year(Now) & ".xml"
array.Export xmldom, 0
xmldom.save(fileName)
Αυτό το script χρησιμοποιεί το Windows Scripting Host (WSH), καθορίζει το Forefront TMG Root (FPC.Root), ορίζει κα΄ποιες μεταβλητές και εν συνεχεία δημιουργεί ένα αρχείο XML το οποίο βασίζεται στην συγκεκριμένη ημέρα κατά την οποία αυτό το script εκτελέστηκε. Συνεπώς δεν έχετε παρά να σώσετε το παραπάνω παράδειγμα scripting ως ένα αρχείο με .VBS extension και αμέσως μετά δημιουργήστε ένα αρχείο batch με την ακόλουθη σύνταξη:
Cscript TMGBACKUP.VBS \\RemoteServer\TMG-BACKUP
Το παραπάνω θα δημιουργήσει ένα αντίγραφο ασφαλείας του Forefront TMG
configuration στο προκαθορισμένο file share (TMG-Backup). Εάν επιθυμείτε να δημιουργήσετε επαναλαβάνομενα backups του δικού σας Forefront TMG configuration απλά πρέπει να δημιουργήσετε ένα task με το Windows Task Scheduler, το οποίο θα εκτελεί το συγκεκριμένο αρχείο batch.
Εξαγωγή του ISA Server 2006 VPN configuration και εισαγωγή του στον Forefront TMG
Το επόμενο παράδειγμα είναι πιο περίπλοκο. Πραγματοποιεί την εξαγωγή του ISA Server 2006 VPN
configuration και την εισαγωγή του σε έναν Forefront TMG Server. Το script αυτό δημιουργήθηκε από τον MVP
Christian Groebner. To πλήρες άρθρο μπορείτε να το βρείτε στον παρακάτω σύνδεσμο ο οποίος είναι αφιερωμένος αποκλειστικά στον ISA Server και τον Forefront TMG.
Εάν θέλετε να χρησμοποιήσετε αυτό το script example απλά κάνετε copy όλο το κείμενο στο Notepad και το σώζετε με .VBS extension.
' ----- Sub restore_ipsec_settings ----- |
Εμφάνιση των Forefront TMG URL κατηγοριών
Μία από τις καινούριες ιδιότητες - λειτουργίες του Forefront TMG είναι η υποστήριξη του for dynamic
URL filtering. Το URL filtering χρησιμοποιεί κατηγορίες. Για να εμφανίσετε όλες τις τις Forefront TMG URL filter κατηγορίες, θα πρέπει να δημιουργήσετε ένα script με τον παρακάτω κώδικα:
set root=CreateObject("FPC.Root")
For Each cat in root.GetContainingArray().RuleElements.UrlCategories
wscript.echo "'" & cat.Name & "' --> " & cat.CategoryID
Next
Το output του παραπάνω script παρουσιάζεται παρακάτω:
Εικόνα 4: Εμφάνιση του Forefront TMG array information
Ο Forefront TMG και το PowerShell
Ο Forefront
TMG δεν έχει ενσωματωμένο το Windows PowerShell cmdlet, αλλά μπορούμε αν'αυτού να χρησιμοποιήσουμε τα COM objects. Όταν έχουμε πρόσβαση στο ProgID ενός COM component,
το οποίο είναι αποθηκευμένο στην Registry μπορούμε να χρησιμοποιήσουμε την εντολή New-Object command στο Windows PowerShell όπως θα διαπιστώσετε στο επόμενο screenshot (Root
Object is always FPC.Root).
Εικόνα 5: Καθορισμός του TMG Root Object
Εμφάνιση του Forefront TMG Root
Αμέσως μετά τον καθορισμό του Forefront TMG Root Object στο Windows
PowerShell μπορούμε να λάβουμε πληροφορία σχετικά με το Forefront TMG Root Object
configuration, όπως αυτό παρουσιάζεται στο παρακάτω screenshot.
Εικόνα 6: Εμφάνιση του Forefront TMG root
Query single Forefront TMG objects.
Εάν θέλουμε να κάνουμε query σε ένα και μόνον Forefront TMG objects εισάγουμε $TMGRoot. στο Windows PowerShell window και κάνουμε κλικ στο TAB key πίσω από το $TMGRoot. definition για να εμφανιστούν όλα τα στοιχεία (all elements).
Εικόνα 7: Query Forefront TMG objects κάτω από το FPC.Root
Εικόνα 8: Εμφάνιση των properties του FPC.Root
Καθορισμός του Forefront TMG Enterprise και του Array configuration με το Export
Στο τελευταίο μας παράδειγμα θα μάθουμε τον τρόπο με τον οποίο μπορούμε να χρησιμοποιήσουμε το PowerShell σε συνδυασμό με τον Forefront TMG. Αυτό το παράδειγμα script μπορείτε να το κατεβάσετε από αυτόν τον σύνδεσμο. Το script αυτό καθορίζει τον Forefront TMG Enterprise και τους συνδεόμενους σε αυτόν arrays και εξάγει το configuration σε ένα αρχείο XML.
Συμπέρασμα
Ολοκληρώνοντας σε αυτό το άρθρο σας παρουσίασα μια σύντομη εισαγωγή του τρόπου με τον οποίο μπορείτε να διαχειριστείτε τον Forefront TMG κάνοντας χρήση των VBscript και του Microsoft PowerShell. Υπάρχουν διαθέσιμα στο διαδίκτυο πολλά ελεύθερα προς κατέβασμα και χρήση παραδείγματα Script όπου με λίγη προγραμματιστική προσπάθεια πιστεύω ότι μπορείτε να δημιουργήσετε τα δικά σας scripts
τα οποία είμαι βέβαιος ότι θα διευκολύνουν την καθημερινή σας διαχείριση του Forefront TMG. Ελπίζω ότι η επόμενη έκδοση του Forefront TMG θα παρέχει πλήρη υποστήριξη του PowerShell.
0 Comments
Recommended Comments
There are no comments to display.