Jump to content













Photo
- - - - -

Powershell – Enable Remoting using GPO

Posted by gvarakis , 09 August 2012 · 679 views

Καθώς τα συστήματα αυξάνονται και πληθύνονται, γίνεται όλο και πιο έντονη η ανάγκη για αυτοματοποίηση των διαδικασιών, αλλά και για εύκολη μαζική εκτέλεση διεργασιών. Ο ιδανικός βοηθός της νέας εποχής, είναι το 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 Smile

Η πιο εξειδικευμένη θα είναι να εφαρμόσουμε τις κατάλληλες ρυθμίσεις, σύμφωνα με τις ενέργειες που είδαμε παραπάνω :

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 Smile