Powershell – Enable Remoting using GPO
Καθώς τα συστήματα αυξάνονται και πληθύνονται, γίνεται όλο και πιο έντονη η ανάγκη για αυτοματοποίηση των διαδικασιών, αλλά και για εύκολη μαζική εκτέλεση διεργασιών. Ο ιδανικός βοηθός της νέας εποχής, είναι το Windows Powershell, και ειδικότερα η δυνατότητα του Remoting, μέσω της οποία μπορούμε να συνδεθούμε από μια κονσόλα Powershell v2.0 που τρέχει στον υπολογιστή μας, σε έναν ή περισσότερους απομακρυσμένους υπολογιστές, προκειμένου να εκτελέσουμε εντολές ή και ολόκληρα scripts. Το Remoting, βασίζεται στο Windows Remote Management Service (WinRM) και το transport γίνεται πάνω από http (default : tcp port 5985)
Με την εγκατάσταση ενός Windows Server 2008R2, το Powershell Remoting ΔΕΝ είναι ενεργοποιημένο. Μπορούμε να το ενεργοποιήσουμε από ένα Privileged Powershell Session, με χρήση της εντολής Enable-PSRemoting –Force
Τι κάνει λοιπόν η παραπάνω εντολή?
Βάζει το WinRM Service σε Auto Start mode (default στα Windows Server 2008R2, disabled στα Windows 7)
Δημιουργεί ένα listener για το WinRM Service
Δημιουργεί τα κατάλληλα Windows Firewall Exceptions
Τι γίνεται όμως αν τα συστήματα είναι πολλά; Θα κάνουμε logon ένα προς ένα, θα ανοίγουμε Powershell και θα εκτελούμε Enable-PSRemoting?
Μάλλον όχι …
Θα καταφύγουμε σε γνωστές καλές πρακτικές, με χρήση Group Policy Object
Η πιο απλή περίπτωση είναι η χρήση ενός logon script, το οποίο θα περιέχει μία μόνο γραμμή, και θα γράφει (τι άλλο?) Enable-PSRemoting –Force
Η πιο εξειδικευμένη θα είναι να εφαρμόσουμε τις κατάλληλες ρυθμίσεις, σύμφωνα με τις ενέργειες που είδαμε παραπάνω :
Computer Configuration > Windows Settings > Security Settings > System Services : Windows Remote Management (WS-Management) Properties
Computer Configuration > Administrative Templates > Windows Components > Windows Remote Management (WinRM) > WinRM Service : Allow Automatic Configuration of Listeners
Computer Configuration > Windows Settings > Security Settings > Windows Firewall with Advanced Security > Inbound Rules
Αφού γίνει Apply η GPO, έχουμε πλέον τη δυνατότητα να συνδεθούμε απομακρυσμένα σε ένα Remote Powershell Session :
$cred = Get-Credentials
Enter-PSSession –ComputerName Server1 –Credential $cred
Run any command you like
0 Comments
Recommended Comments
There are no comments to display.