WinRM - απομακρυσμένη εργασία με το PowerShell. WinRM - απομακρυσμένη εργασία με PowerShell Ρύθμιση εμπιστοσύνης μεταξύ υπολογιστών

17/10/2011 Ντον Τζόουνς

Συνειδητοποίησα ότι οι δημιουργοί του PowerShell ήταν λίγο τεμπέληδες, και αυτό είναι καλό. Δεν ήθελαν να χρειάζεται να κωδικοποιούν την παράμετρο -ComputerName για κάθε εντολή, έτσι δημιούργησαν ένα γενικό σύστημα που ονομάζεται "απομακρυσμένο". Ουσιαστικά, αυτό το σύστημα επιτρέπει την εκτέλεση οποιασδήποτε εντολής σε έναν απομακρυσμένο υπολογιστή. Μπορείτε ακόμη και να εκτελέσετε διαφορετικές εντολές που υπάρχουν στον απομακρυσμένο υπολογιστή αλλά δεν υπάρχουν στον δικό σας. Αυτό σημαίνει ότι δεν χρειάζεται να εγκαθιστάτε συνεχώς κάθε εντολή στο σταθμό εργασίας σας. Αυτό το απομακρυσμένο σύστημα είναι πολύ αποτελεσματικό και παρέχει μια σειρά από ενδιαφέροντα διοικητικά χαρακτηριστικά

Όταν άρχισα να χρησιμοποιώ το PowerShell, με ενδιέφερε η εντολή Get-Service και παρατήρησα ότι είχε μια παράμετρο -ComputerName. Αυτό δεν σημαίνει ότι μπορείτε να συνδεθείτε στην υπηρεσία από άλλους υπολογιστές; Αφού έκανα μια σειρά πειραμάτων, διαπίστωσα ότι αυτό ακριβώς λέει. Ενδιαφέρθηκα και άρχισα να ψάχνω για παραμέτρους -ComputerName από άλλες εντολές. Και στεναχωρήθηκα όταν έμαθα ότι ήταν μόνο λίγοι.

Το PowerShell παρέχει δύο τύπους τηλεχειρισμού: απομακρυσμένο ένα προς ένα (1:1) και ένα προς πολλά (1:n). Πριν μιλήσω για αυτά, θέλω να εξηγήσω μερικά βασικά.

Βασικά απομακρυσμένα στο PowerShell

Το τηλεχειριστήριο PowerShell λειτουργεί όπως το Telnet και άλλες παλαιότερες τεχνολογίες τηλεχειρισμού. Όταν εκτελείτε μια εντολή, στην πραγματικότητα εκτελείται στον απομακρυσμένο υπολογιστή. Όλα όσα επιστρέφονται στον υπολογιστή σας είναι το αποτέλεσμα αυτής της εντολής. Σε αντίθεση με το Telnet ή το Secure Shell (SSH), το PowerShell χρησιμοποιεί ένα νέο πρωτόκολλο συστήματος επικοινωνιών που ονομάζεται Web Services for Management (WS-Management). Το πρωτόκολλο λειτουργεί πάνω από το HTTP ή το HTTP Secure (HTTPS), γεγονός που διευκολύνει τη δρομολόγηση μέσω τείχους προστασίας εάν είναι απαραίτητο, καθώς το πρωτόκολλο χρησιμοποιεί μόνο μία θύρα για την πραγματοποίηση επικοινωνιών. Η υλοποίηση του WS-Management από τη Microsoft έρχεται με τη μορφή μιας υπηρεσίας παρασκηνίου που ονομάζεται απομακρυσμένη διαχείριση των Windows. Το WinRM είναι εγκατεστημένο με το PowerShell 2.0 και εκτελείται από προεπιλογή σε διακομιστές όπως ο Windows Server 2008 R2. Στα Windows 7 είναι εγκατεστημένο από προεπιλογή, αλλά δεν είναι ενεργοποιημένο. Πρέπει να ενεργοποιήσετε το WinRM στους υπολογιστές στους οποίους θέλετε να στείλετε την εντολή. Ο υπολογιστής από τον οποίο είστε φυσικά πίσω δεν χρειάζεται να εκτελεί την υπηρεσία WinRM.

Όλες οι εντολές PowerShell παράγουν αντικείμενα ως έξοδο. Όταν εκτελείτε μια εντολή από απόσταση, η έξοδος της πρέπει να είναι σε μορφή που να μπορεί εύκολα να μεταδοθεί μέσω του δικτύου χρησιμοποιώντας HTTP ή HTTPS. Για παράδειγμα, το PowerShell μετατρέπει αυτόματα τα αντικείμενα εξόδου σε αρχεία XML που αποστέλλονται μέσω του δικτύου. Μόλις φτάσουν στον υπολογιστή σας, μετατρέπονται ξανά σε αντικείμενα με τα οποία μπορεί να λειτουργήσει το PowerShell. Ωστόσο, αυτά τα αντικείμενα που έχουν μετατραπεί πίσω είναι στην πραγματικότητα στιγμιότυπα. Δεν μπορούν να ενημερώνονται κάθε λεπτό. Έτσι, εάν πρέπει να φτάσετε σε αντικείμενα που αντιπροσωπεύουν διεργασίες που εκτελούνται σε έναν απομακρυσμένο υπολογιστή, τότε το αποτέλεσμα που προκύπτει θα ισχύει μόνο για τη συγκεκριμένη χρονική περίοδο κατά την οποία δημιουργήθηκαν αυτά τα αντικείμενα. Τιμές όπως η χρήση μνήμης και CPU δεν θα αλλάξουν. Επιπλέον, δεν θα μπορείτε να αναγκάσετε τα αντικείμενα που έχουν μετατραπεί ξανά να κάνουν τίποτα. Για παράδειγμα, δεν μπορείτε να δώσετε εντολή σε ένα αντικείμενο να σταματήσει μόνο του. Αυτός είναι ένας σημαντικός περιορισμός της εξ αποστάσεως συνεργασίας, αλλά δεν θα σας εμποδίσει να εργαστείτε και να κάνετε ενδιαφέροντα πράγματα.

Υπάρχουν μόνο μερικές βασικές απαιτήσεις για τη χρήση ενός συστήματος τηλεχειρισμού.

  • Πώς πρέπει ο υπολογιστής σας (γνωστός και ως τοπικός υπολογιστής) και αυτός στον οποίο θέλετε να στείλετε μια εντολή (γνωστός και ως απομακρυσμένος υπολογιστής) να λειτουργεί με το Windows PowerShell 2.0; Τα Windows XP είναι μια παλαιού τύπου έκδοση των Windows στην οποία μπορείτε να εγκαταστήσετε το PowerShell 2.0. Έτσι, η παλιά έκδοση μπορεί επίσης να συμμετέχει στην απομακρυσμένη συνεδρία.
  • Στην ιδανική περίπτωση, οι τοπικοί και απομακρυσμένοι υπολογιστές θα πρέπει να είναι μέλη του ίδιου τομέα ή μέλη αξιόπιστων/έμπιστων τομέων. Μπορείτε να εργαστείτε με το απομακρυσμένο σύστημα εκτός τομέα, αλλά είναι δύσκολο και δεν θα μιλήσω γι' αυτό εδώ. Για να μάθετε περισσότερα σχετικά με αυτό το σενάριο, ανατρέξτε στο θέμα της Βοήθειας του PowerShell σχετικά με το Remote_Troubleshooting.

Αναθεώρηση WinRM

Τώρα ας προχωρήσουμε στο WinRM, αφού πρέπει να διαμορφώσετε τις ρυθμίσεις για να ξεκινήσει η απομακρυσμένη λειτουργία αυτής της υπηρεσίας. Και πάλι, χρειάζεται μόνο να ορίσετε τις ρυθμίσεις τηλεχειρισμού WinRM και PowerShell στον απομακρυσμένο υπολογιστή. Στα περισσότερα περιβάλλοντα στα οποία έχω εργαστεί, οι διαχειριστές έχουν ενεργοποιήσει την απομακρυσμένη λειτουργία σε κάθε υπολογιστή που εκτελεί εκδόσεις XP ή νεότερες εκδόσεις. Αυτό καθιστά δυνατή τη διείσδυση σε επιτραπέζιους και φορητούς υπολογιστές χωρίς να γίνει αντιληπτός, κάτι που μπορεί να είναι πολύ χρήσιμο (που σημαίνει ότι οι χρήστες τέτοιων υπολογιστών δεν θα ξέρουν τι κάνετε).

Αυτό δεν σημαίνει ότι το WinRM είναι κάτι ιδιαίτερο για το PowerShell. Το WinRM μπορεί να δρομολογήσει την κυκλοφορία σε πολλές διαχειριστικές εφαρμογές. Ουσιαστικά, το WinRM λειτουργεί ως διεκπεραιωτής. Όταν φτάσει η κυκλοφορία, το WinRM αποφασίζει ποια εφαρμογή θα αλληλεπιδράσει μαζί της και της επισημαίνει το όνομα της εφαρμογής προορισμού. Η εφαρμογή λήψης πρέπει να εγγραφεί στο WinRM, ώστε το WinRM να μπορεί να ακούει την εισερχόμενη κίνηση για λογαριασμό του. Με άλλα λόγια, δεν χρειάζεται μόνο να ενεργοποιήσετε το WinRM, αλλά και να καταχωρήσετε το Power Shell ως τελικό σημείο για το WinRM.

Ο ευκολότερος τρόπος για να ολοκληρώσετε και τις δύο εργασίες είναι να εκτελέσετε το PowerShell ως διαχειριστής και να εκτελέσετε την εντολή Enable-PSRemoting. Μπορείτε να δείτε το εγχειρίδιο για μια άλλη εντολή που ονομάζεται Set-WSManQuickConfig. Δεν χρειάζεται να εκτελέσετε την εντολή. Το Enable-PSRemoting το κάνει αυτό για εσάς και εκτελεί επίσης πολλά άλλα βήματα που είναι απαραίτητα για την απομακρυσμένη επικοινωνία και λειτουργία. Ουσιαστικά, η εντολή Enable-PSRemoting ξεκινά την υπηρεσία WinRM, τη διαμορφώνει ώστε να ξεκινά αυτόματα, καταχωρεί το PowerShell ως τελικό σημείο και ορίζει ακόμη και εξαιρέσεις στο Τείχος προστασίας των Windows για να επιτρέπεται η εισερχόμενη κίνηση WinRM.

Εάν δεν θέλετε να περάσετε από κάθε υπολογιστή για να ενεργοποιήσετε την απομακρυσμένη λειτουργία, μπορείτε να χρησιμοποιήσετε ένα αντικείμενο πολιτικής ομάδας (GPO). Οι απαιτούμενες ρυθμίσεις GPO είναι ενσωματωμένες στους ελεγκτές τομέα Windows Server 2008 R2. Απλώς ανοίξτε το GPO και μεταβείτε στη διαδρομή Computer Configuration\

Πρότυπα διαχείρισης\Στοιχεία Windows. Στο κάτω μέρος της λίστας θα βρείτε τις ρυθμίσεις απομακρυσμένου κελύφους και απομακρυσμένης διαχείρισης των Windows (WRM) για τις οποίες πρέπει να διαμορφώσετε. Η ενότητα Βοήθεια σχετικά με προβλήματα του συστήματος απομακρυσμένης επικοινωνίας (Remote_Troubleshooting) θα σας δώσει λεπτομερείς οδηγίες για το πώς να το κάνετε αυτό. Ανατρέξτε στις ενότητες Τρόπος ενεργοποίησης απομακρυσμένης λειτουργίας σε μια επιχείρηση και Τρόπος ενεργοποίησης ακροατών με χρήση πολιτικής ομάδας στη Βοήθεια.

Το WinRM 2.0 (το οποίο χρησιμοποιεί το PowerShell) χρησιμοποιεί από προεπιλογή τη θύρα TCP 5985 για HTTP και τη θύρα 5986 για HTTPS. Αυτό διασφαλίζει ότι το WinRM δεν έρχεται σε διένεξη με τοπικά εγκατεστημένους διακομιστές ιστού που έχουν ρυθμιστεί για ακρόαση στις θύρες 80 και 443. Μπορείτε να ρυθμίσετε το WinRM ώστε να χρησιμοποιεί εναλλακτικές θύρες, αλλά δεν το συνιστώ. Εάν αφήσετε αυτές τις θύρες, όλες οι εντολές απομακρυσμένης πρόσβασης του PowerShell θα λειτουργήσουν καλά. Εάν αλλάξετε αυτές τις θύρες, θα πρέπει πάντα να προσδιορίζετε την εναλλακτική θύρα κατά την εκτέλεση της εντολής απομακρυσμένης πρόσβασης. Αυτό σημαίνει ότι θα πρέπει να πληκτρολογήσετε περισσότερα. Εάν χρειάζεται οπωσδήποτε να αλλάξετε τη θύρα, μπορείτε να εισαγάγετε την εντολή:

Σετ Winrm winrm/config/ ακροατή; Διεύθυνση=* +Transport=HTTP @(Port="1234")

Οι αριθμοί 1234 υποδεικνύουν τη θύρα που χρειάζεστε. Εδώ αυτή η εντολή είναι γραμμένη σε πολλές γραμμές, αλλά πρέπει να την εισαγάγετε σε μία γραμμή. Το ίδιο ισχύει για όλες τις άλλες εντολές που περιγράφονται στο άρθρο. Εάν πρέπει να χρησιμοποιήσετε HTTPS αντί για http, μπορείτε να τροποποιήσετε αυτήν την εντολή για να διαμορφώσετε μια νέα θύρα HTTPS. Πρέπει να παραδεχτώ ότι υπάρχει τρόπος να ρυθμίσετε τις παραμέτρους του WinRM σε τοπικούς υπολογιστές προκειμένου να χρησιμοποιήσετε εναλλακτικές θύρες από προεπιλογή. Με αυτόν τον τρόπο, δεν χρειάζεται να ορίζετε συνεχώς μια εναλλακτική θύρα όταν εκτελείτε την εντολή απομακρυσμένης πρόσβασης. Ας δουλέψουμε όμως με τις προεπιλεγμένες ρυθμίσεις που δίνει η Microsoft.

Εάν ψάξετε στις ρυθμίσεις GPO στο Remote Shell, θα παρατηρήσετε ότι μπορείτε να ορίσετε, για παράδειγμα, πόσο καιρό μια απομακρυσμένη περίοδος λειτουργίας θα παραμείνει ανενεργή προτού ο διακομιστής την τερματίσει. πόσοι ταυτόχρονοι χρήστες μπορούν να έχουν πρόσβαση στον απομακρυσμένο διακομιστή ταυτόχρονα. πόση μνήμη και πόσες διεργασίες μπορεί να χρησιμοποιήσει κάθε απομακρυσμένο κέλυφος. Ο μέγιστος αριθμός απομακρυσμένων κελυφών που μπορούν να ανοίξουν οι χρήστες ταυτόχρονα. Αυτές οι ρυθμίσεις θα σας βοηθήσουν να διασφαλίσετε ότι οι διακομιστές σας δεν υπερφορτώνονται από ξεχαστικούς διαχειριστές. Ωστόσο, από προεπιλογή πρέπει να είστε διαχειριστής για να χρησιμοποιήσετε την απομακρυσμένη λειτουργία, ώστε να μην χρειάζεται να ανησυχείτε μήπως φράξουν τους διακομιστές σας από τακτικούς χρήστες.

Απομακρυσμένη αλληλεπίδραση 1:1

Με τηλεχειρισμό 1:1, έχετε ουσιαστικά πρόσβαση στη γραμμή εντολών σε έναν απομακρυσμένο υπολογιστή. Οποιεσδήποτε εντολές δίνετε εκτελούνται απευθείας στον απομακρυσμένο υπολογιστή και βλέπετε τα αποτελέσματα στο παράθυρο της γραμμής εντολών. Είναι κάπως παρόμοιο με τη χρήση της σύνδεσης απομακρυσμένης επιφάνειας εργασίας, εκτός από το ότι περιορίζεστε στο περιβάλλον της γραμμής εντολών του PowerShell. Η απομακρυσμένη λειτουργία PowerShell χρησιμοποιεί ένα κλάσμα των πόρων που απαιτεί η Απομακρυσμένη επιφάνεια εργασίας, επομένως έχει πολύ μικρότερο αντίκτυπο στους διακομιστές σας.

Για να δημιουργήσετε μια σύνδεση 1:1 με έναν απομακρυσμένο υπολογιστή που ονομάζεται Server-R2, πρέπει να εκτελέσετε

Enter-PSSession -Διακομιστής ονόματος υπολογιστή-R2

Αν υποθέσουμε ότι έχετε ενεργοποιήσει την απομακρυσμένη λειτουργία στην απομακρυσμένη συσκευή, ο υπολογιστής βρίσκεται στον ίδιο τομέα και το δίκτυό σας λειτουργεί κανονικά, θα έχετε τη σύνδεση που χρειάζεστε. Το PowerShell σάς ενημερώνει ότι έχετε επιτύχει τον στόχο σας αλλάζοντας τη γραμμή εντολών σε

ΥΓ Γ:\>

Το τμήμα σας ενημερώνει ότι ό,τι κάνετε συμβαίνει στον Server-R2. Μετά από αυτό μπορείτε να εκτελέσετε όποιες εντολές θέλετε. Μπορείτε ακόμη να εισαγάγετε οποιεσδήποτε μονάδες και να προσθέσετε επεκτάσεις PowerShell (PSSnapins) που θα βρίσκονται στον απομακρυσμένο υπολογιστή.

Ακόμα και τα δικαιώματα θα παραμείνουν ίδια. Το αντίγραφο του PowerShell θα εκτελείται με το ίδιο διακριτικό ασφαλείας με το οποίο ξεκίνησε. Το PowerShell το κάνει αυτό χρησιμοποιώντας το Kerberos, επομένως δεν μεταδίδει το όνομα χρήστη και τον κωδικό πρόσβασης μέσω του δικτύου. Οποιαδήποτε εντολή εκτελείτε στον απομακρυσμένο υπολογιστή θα εκτελείται κάτω από τα διαπιστευτήριά σας, επομένως οτιδήποτε έχετε άδεια να κάνετε, μπορείτε να το κάνετε. Αυτό είναι παρόμοιο με την απευθείας καταγραφή από την κονσόλα του υπολογιστή και τη χρήση αντιγράφου του PowerShell αυτού του υπολογιστή. Είναι σχεδόν έτσι. Εδώ είναι μερικές διαφορές.

  • Εάν έχετε μια δέσμη ενεργειών PowerShell για το προφίλ σας στον απομακρυσμένο υπολογιστή, δεν θα εκτελεστεί όταν συνδέεστε χρησιμοποιώντας το σύστημα απομακρυσμένης πρόσβασης. Με απλά λόγια, τα προφίλ είναι ένα πακέτο εντολών που εκτελούνται αυτόματα κάθε φορά που ανοίγετε ένα παράθυρο γραμμής εντολών. Χρησιμοποιούνται για αυτόματη λήψη επεκτάσεων, λειτουργικών μονάδων και παρόμοια.
  • Περιορίζεστε από την Πολιτική εκτέλεσης του απομακρυσμένου υπολογιστή. Ας υποθέσουμε ότι η πολιτική του υπολογιστή σας έχει οριστεί σε RemoteSigned, ώστε να μπορείτε να εκτελείτε τοπικά ανυπόγραφα σενάρια. Εάν η πολιτική απομακρυσμένου υπολογιστή έχει οριστεί σε Περιορισμένη (η προεπιλεγμένη ρύθμιση), δεν θα επιτρέψει την εκτέλεση σεναρίων όταν επικοινωνείτε εξ αποστάσεως.

Πολλές εντολές PowerShell έρχονται σε ζεύγη: η μία κάνει κάτι, η άλλη κάνει το αντίθετο από αυτό. Στην περίπτωσή μας, το Enter-PSSession σας συνδέει με τον απομακρυσμένο υπολογιστή και το Exit-PSSession κλείνει τη σύνδεση. Το Exit-PSSession δεν απαιτεί παραμέτρους. Μόλις εκκινηθεί, η απομακρυσμένη σύνδεση κλείνει και η γραμμή εντολών του παραθύρου επιστρέφει στο κανονικό. Τι γίνεται αν ξεχάσετε να εκτελέσετε το Exit-PSSession; Μην ανησυχείς. Το PowerShell και το WinRM μπορούν να καταλάβουν τι κάνατε και να κλείσουν την απομακρυσμένη σύνδεση εάν είναι απαραίτητο.

Θέλω να δώσω μια συμβουλή. Όταν συνδέεστε σε έναν απομακρυσμένο υπολογιστή, μην εκτελείτε το Enter-PSSession σε αυτόν μέχρι να έχετε πλήρη επίγνωση του τι κάνετε. Για παράδειγμα, εργάζεστε στο ComputerA. Συνδέεστε στον διακομιστή-R2. Στη γραμμή PowerShell που εκτελείτε

PS C:\>Enter-PSSession Server-DC4

Ο διακομιστής-R2 περιέχει τώρα μια ανοιχτή σύνδεση με τον διακομιστή-DC4. Αυτό δημιουργεί μια «αλυσίδα απομακρυσμένης» που είναι δύσκολο να εντοπιστεί. Επιπλέον, οι διακομιστές σας υπερφορτώνονται άσκοπα. Μπορεί να υπάρχουν φορές που θα πρέπει να το κάνετε αυτό (για παράδειγμα, ο Server-DC4 βρίσκεται πίσω από ένα τείχος προστασίας και δεν μπορείτε να έχετε απευθείας πρόσβαση σε αυτό, επομένως πρέπει να χρησιμοποιήσετε τον Server-R2 ως ενδιάμεσο). Ωστόσο, ο γενικός κανόνας είναι ο εξής: προσπαθήστε να αποφύγετε τις αλυσίδες από απόσταση.

1:n τηλεχειριστήριο

Ένα από τα πιο όμορφα πράγματα για το PowerShell είναι το τηλεχειριστήριο 1:n. Σας επιτρέπει να στέλνετε εντολές σε πολλούς απομακρυσμένους υπολογιστές ταυτόχρονα - πλήρης κατανεμημένη υπολογιστική. Κάθε υπολογιστής θα εκτελέσει ξεχωριστά την εντολή και θα σας στείλει τα αποτελέσματα. Όλα γίνονται χρησιμοποιώντας την εντολή Invoke-Command σε αυτή τη μορφή:

Invoke-Command -ComputerName Server-R2, Server-DC4, Server12 -Command (Get-EventLog Security -Νεότερο 200 | Where ($_.EventID -eq 1212))

Η εντολή στα εξωτερικά σγουρά στηρίγματα αποστέλλεται και στους τρεις απομακρυσμένους υπολογιστές. Από προεπιλογή, το PowerShell μπορεί να μιλήσει με έως και 32 υπολογιστές ταυτόχρονα. Εάν καθορίσετε περισσότερους από 32 υπολογιστές, θα μπουν στην ουρά. Στη συνέχεια, όταν ένας υπολογιστής τερματίζεται, ο επόμενος εκτελεί την εντολή. Εάν έχετε ένα πραγματικά γρήγορο δίκτυο και ισχυρούς υπολογιστές, μπορείτε να αυξήσετε τον αριθμό τους χρησιμοποιώντας την παράμετρο εντολής ThrottleLimit. Μπορείτε να διαβάσετε σχετικά με τον τρόπο χρήσης αυτής της παραμέτρου στο Invoke-Command στη σελίδα Βοήθεια.

Η μόνη παράμετρος που δεν θα δείτε στη σελίδα Βοήθειας αυτής της εντολής είναι η παράμετρος Command. Όπως έχω ήδη δείξει, λειτουργεί εξαιρετικά. Η παράμετρος Command είναι ένα ψευδώνυμο ή σύντομο όνομα για την παράμετρο ScriptBlock, η οποία παρατίθεται στη σελίδα Βοήθεια. Θεωρώ ότι είναι πιο εύκολο να χρησιμοποιήσω το Command, επομένως τείνω να το χρησιμοποιώ αντί για ScriptBlock, αλλά λειτουργούν το ίδιο.

Εάν διαβάσατε προσεκτικά τη σελίδα Βοήθειας για το Invoke-Command, παρατηρήσατε επίσης μια επιλογή που σας επιτρέπει να καθορίσετε ένα αρχείο σεναρίου αντί για μια εντολή. Η παράμετρος FilePath σάς επιτρέπει να στείλετε το σενάριο σε απομακρυσμένους υπολογιστές. Αυτό σημαίνει ότι μπορείτε να αυτοματοποιήσετε ορισμένες πολύπλοκες εργασίες και να αναθέσετε σε κάθε υπολογιστή το μερίδιο της δουλειάς που του αναλογεί.

Τώρα ας εστιάσουμε στην παράμετρο Computer Name. Στον κώδικα παραδείγματος Invoke-Command, είχα μια λίστα ονομάτων υπολογιστών διαχωρισμένη με κόμμα. Εάν έχετε πολλούς υπολογιστές, ίσως να μην θέλετε να πληκτρολογείτε τα ονόματά τους κάθε φορά που συνδέεστε σε αυτούς. Αντίθετα, μπορείτε να δημιουργήσετε ένα αρχείο κειμένου που περιέχει ένα όνομα υπολογιστή σε μία γραμμή, χωρίς κόμματα, εισαγωγικά ή οτιδήποτε άλλο. Για παράδειγμα, εάν το αρχείο κειμένου σας ονομαζόταν webservers.txt, θα χρησιμοποιούσατε κώδικα όπως αυτός:

Invoke-Command -Command ( dir ) - ComputerName (Get-Content webservers.txt)

Οι παρενθέσεις αναγκάζουν το PowerShell να εκτελέσει πρώτα την εντολή Get-Content - αυτό είναι παρόμοιο με το πώς λειτουργούν οι παρενθέσεις στα μαθηματικά. Στη συνέχεια, τα αποτελέσματα του Get-Content ενσωματώνονται στην παράμετρο -ComputerName.

Είναι επίσης δυνατό να αναζητήσετε το όνομα του υπολογιστή στην υπηρεσία καταλόγου Active Directory, αλλά αυτό είναι πιο περίπλοκο. Για να βρείτε έναν υπολογιστή, μπορείτε να χρησιμοποιήσετε την εντολή Get-ADComputer, αλλά δεν θα περικλείσετε την εντολή σε παρένθεση όπως κάνατε με το Get-Content. Γιατί όχι? Το Get-Content παράγει απλές συμβολοσειρές κειμένου, ενώ το Get-ADComputer παράγει αντικείμενα τύπου "computer". Η παράμετρος -ComputerName αναμένει μια συμβολοσειρά. Αν έπρεπε να λάβει αντικείμενα υπολογιστή, δεν θα ήξερε τι να τα κάνει. Επομένως, εάν θέλετε να χρησιμοποιήσετε το Get-ADComputer, πρέπει να λάβετε τις τιμές από την ιδιότητα Name των αντικειμένων του υπολογιστή. Σαν αυτό:

Invoke-Command -Command (dir) -ComputerName (Get-ADComputer -Filter * -SearchBase "ou=Sales, dc=company, dc=pri" | Select-Object -Expand Name)

Σε παρένθεση, τα αντικείμενα υπολογιστή μεταβιβάζονται στην εντολή Select-Object και η παράμετρος -Expand χρησιμοποιείται για την εύρεση της ιδιότητας Name αυτών των αντικειμένων υπολογιστή. Το αποτέλεσμα της έκφρασης σε παρένθεση είναι ένα σύνολο ονομάτων υπολογιστή, όχι αντικειμένων υπολογιστή. Τα ονόματα υπολογιστών είναι ακριβώς αυτό που χρειάζεται η παράμετρος -Computer Name.

Εάν δεν είστε εξοικειωμένοι με το Get-ADComputer, ας ρίξουμε μια ματιά στο τι κάνει αυτή η εντολή. Η παράμετρος -Filter καθορίζει ότι όλοι οι υπολογιστές πρέπει να περιλαμβάνονται στα αποτελέσματα και η παράμετρος -Search Base δίνει εντολή στο PowerShell να ξεκινήσει την αναζήτηση υπολογιστών στην ομάδα οργάνωσης πωλήσεων (OU) στον τομέα company.pri. Η εντολή Get-ADComputer είναι διαθέσιμη μόνο στον Windows Server 2008 R2 και στα Windows 7 μετά την εγκατάσταση των Εργαλείων διαχείρισης απομακρυσμένου διακομιστή. Σε αυτά τα λειτουργικά συστήματα εκτελείτε

Εισαγωγή-Μονάδα ActiveDirectory

για να φορτώσετε εντολές υπηρεσίας καταλόγου σε ένα κέλυφος εντολών ώστε να μπορούν να χρησιμοποιηθούν.

Υπάρχει και κάτι άλλο!

Όλα αυτά τα παραδείγματα δόθηκαν για απομακρυσμένες συνεδρίες peer-to-peer. Εάν πρόκειται να συνδεθείτε ξανά με τους ίδιους υπολογιστές (ή υπολογιστή) πολλές φορές σε σύντομο χρονικό διάστημα, μπορείτε να δημιουργήσετε επαναχρησιμοποιήσιμες, μόνιμες περιόδους λειτουργίας. Αυτό είναι πολύ χρήσιμο εάν η σύνδεση απαιτεί εναλλακτικά διαπιστευτήρια, έναν μη προεπιλεγμένο αριθμό θύρας ή οτιδήποτε άλλο απαιτεί πρόσθετες παραμέτρους.

Για να δημιουργήσετε μόνιμες περιόδους λειτουργίας, πρέπει να χρησιμοποιήσετε την εντολή New-PSSession και, στη συνέχεια, να τις αποθηκεύσετε σε μια μεταβλητή για εύκολη πρόσβαση. Για παράδειγμα, ο ακόλουθος κώδικας δημιουργεί μια απομακρυσμένη περίοδο λειτουργίας με τρεις υπολογιστές και τους αποθηκεύει στη μεταβλητή $sessions:

$sessions = New-PSSession -ComputerName One, Two, Three -Port 5555 -Credential DOMAIN\Administrator

Οι απομακρυσμένες συνεδρίες κλείνουν αυτόματα όταν κλείνετε το κέλυφος εντολών, αλλά μέχρι τότε ενδέχεται να καταλαμβάνουν μνήμη και κάποια χρήση της CPU στα τοπικά και απομακρυσμένα συστήματα. Για να τα κλείσετε ακριβώς, μπορείτε να χρησιμοποιήσετε την εντολή Remove-PSSession:

$συνεδρίες | Remove-PSSession

Όταν χρειάζεται να ανοίξετε ξανά τις συνεδρίες, μπορείτε να χρησιμοποιήσετε το Invoke-Command:

Invoke-Command -Command (dir) -Session $sessions

Ή μπορείτε να χρησιμοποιήσετε το Enter-PSSession:

Enter-PSSession -Session $session

Σημειώστε ότι στον κωδικό Enter-PSSession ανοίγει ξανά μόνο μία απομακρυσμένη περίοδος λειτουργίας. Η μεταβλητή ευρετηρίου 1 λέει στο PowerShell ότι πρέπει να ανοίξει ξανά μια περίοδο λειτουργίας με τον υπολογιστή με το όνομα Two (το ευρετήριο βασίζεται στο μηδέν).

Όπως μπορούμε να δούμε, υπάρχουν πολλά πλεονεκτήματα από το τηλεχειριστήριο PowerShell. Αν το χρησιμοποιήσετε, θα δείτε πόσο θα διευρύνει τους ορίζοντές σας.

Ντον Τζόουνς ( [email προστατευμένο]) είναι τεχνικός εκπαιδευτής της PowerShell (www.windowsitpro.com/go/DonJonesPowerShell), συγγραφέας περισσότερων από 35 βιβλίων. Έχει τον τίτλο του Microsoft MVP



Απομακρυσμένη διαχείριση των Windows με χρήση WinRM

Πράγματι WinRMΑπομακρυσμένη διαχείριση των Windows) και μεταφράζεται ως «τηλεχειριστήριο Windows". WinRM– υπηρεσία απομακρυσμένης διαχείρισης για λειτουργικά συστήματα Windows. Έχει συμπεριληφθεί στα λειτουργικά συστήματα από τότε Μακρινή θέαΚαι Διακομιστής 2008, Για Windows XPΚαι Διακομιστής 2003πρέπει να εγκατασταθεί ξεχωριστά από εδώ. WinRM– το τμήμα διακομιστή της εφαρμογής τηλεχειριστηρίου, στο οποίο είναι δυνατή η απομακρυσμένη σύνδεση με χρήση πελάτη Windows Remote Shell (WinRS).

WinRMμε βάση την υπηρεσία Υπηρεσίες Web για διαχείριση (WS-Management)και χρησιμοποιεί αιτήματα HTTP (θύρα 80) ή HTTPS (443) και SOAP για να ολοκληρώσει τη δουλειά. Ανεξάρτητα από το πρωτόκολλο που χρησιμοποιείται, όλη η κίνηση αποστέλλεται WinRMείναι κρυπτογραφημένο (εκτός αν απενεργοποιήσετε συγκεκριμένα αυτήν την επιλογή). Το προεπιλεγμένο πρωτόκολλο ελέγχου ταυτότητας είναι Kerberos.

ΣΕ Windows Server 2008 WinRMεγκατεστημένο, αλλά (για λόγους ασφαλείας) δεν είναι ενεργοποιημένο από προεπιλογή. Για να ελέγξετε αν λειτουργεί WinRMστον υπολογιστή μας, πληκτρολογήστε τη γραμμή εντολών winrm απαριθμεί winrm/config/listener

Αν δεν υπάρχει απάντηση, τότε WinRMΔεν τρεχω. Για να στηθεί WinRMγια να ξεκινήσει αυτόματα και να επιτραπεί η απομακρυσμένη σύνδεση με τον υπολογιστή, πληκτρολογήστε την εντολή winrm quickconfigή winrm qc

Για να αποτρέψετε το WinRM να ζητά επιβεβαίωση, μπορείτε να προσθέσετε το κλειδί στην κλήση -ησυχια. Μπορείτε να μάθετε πληροφορίες σχετικά με τη λεπτομερή ρύθμιση της ενσωματωμένης βοήθειας. WinRM: winrm help config

Λοιπόν, απενεργοποιήστε το WinRMμπορείτε να χρησιμοποιήσετε αυτήν την εντολή:
winrm διαγραφή winrm/config/listener?IPAdress=*+Transport=HTTP

Επίσης, όλες οι απαραίτητες ρυθμίσεις μπορούν να γίνουν χρησιμοποιώντας πολιτικές ομάδας. Για να το κάνετε αυτό χρειάζεστε:

  • Ρυθμίστε μια υπηρεσία WinRMγια αυτόματη εκκίνηση
  • Επιτρέψτε τις συνδέσεις στις κατάλληλες θύρες (80 και 443) στο τείχος προστασίας Windows
  • Διαμορφώστε ένα στοιχείο Πολιτικής ομάδας Computer Configuration\Administrative Templates\Windows Components\Windows Remote Management\Windows Remote Management\Να επιτρέπεται η αυτόματη εγκατάσταση ακροατών (Computer Configuration\Administrative Templates\Windows Components\Windows Remote Management\WinRM Service\Να επιτρέπεται η αυτόματη διαμόρφωση των ακροατών). Εδώ θα χρειαστεί να καθορίσετε τις διευθύνσεις IP από τις οποίες επιτρέπονται οι συνδέσεις.

Τώρα ας προχωρήσουμε στη χρήση. Για να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή χρησιμοποιούμε το βοηθητικό πρόγραμμα WinRS. WinRS– συντομογραφία για Windows Remote Shell(απομακρυσμένο περιβάλλον Windows). ΜΕ WinRSμπορούμε να κάνουμε απομακρυσμένα αιτήματα σε υπολογιστές που εκτελούνται WinRM. Ωστόσο, έχετε κατά νου ότι το μηχάνημά σας πρέπει επίσης να λειτουργεί WinRMγια να δουλέψω με WinRS.

Κύριος τρόπος χρήσης WinRSείναι η εκτέλεση εντολών σε ένα απομακρυσμένο μηχάνημα. Το όνομα υπολογιστή καθορίζεται από το κλειδί -rακολουθούμενη από την εντολή που θα εκτελεστεί, για παράδειγμα κερδίζειr: SRV2 ipconfig / όλαεκτελείται σε απομακρυσμένο υπολογιστή SRV2ομάδα ipconfig/όλα

Το προεπιλεγμένο πρωτόκολλο για τις επικοινωνίες είναι http, αλλά μπορείτε επίσης να χρησιμοποιήσετε https: winrs -r:https://SRV2 ipconfig /all

Μπορείτε επίσης να χρησιμοποιήσετε WinRSανοίξτε μια διαδραστική περίοδο λειτουργίας σε έναν απομακρυσμένο υπολογιστή: winrs -r:SRV2 cmd.exe

Αυτή η λειτουργία είναι παρόμοια με τη σύνδεση μέσω telnet, αλλά χρήση WinRSΣίγουρα καλύτερο από άποψη ασφάλειας.

Για να χρησιμοποιήσετε το WinRM, όλοι οι υπολογιστές πρέπει να είναι μέλη του ίδιου τομέα. Εάν αυτό δεν συμβαίνει στην περίπτωσή σας, τότε μπορείτε να δοκιμάσετε να μειώσετε το επίπεδο ασφάλειας. Για να το κάνετε αυτό, στον υπολογιστή στον οποίο θέλουμε να έχουμε πρόσβαση, πληκτρολογήστε τις ακόλουθες εντολές:

« αληθής")

« »}

Ορισμός WinRM winrm/config/client @(TrustedHosts= « Όνομα υπολογιστή" }

όπου ComputerName είναι ο απομακρυσμένος υπολογιστής από τον οποίο θα γίνει η σύνδεση.

Στον υπολογιστή από τον οποίο θα συνδεθούμε, πληκτρολογήστε:

Σετ WinRM winrm/config/service/auth @(Basic= « αληθής")

Ορισμός WinRM winrm/config/client @(TrustedHosts= « »}

Ορισμός WinRM winrm/config/client @(TrustedHosts="Όνομα υπολογιστή" }

όπου ComputerName είναι ο υπολογιστής που θα διαχειριστούμε.

Στη συνέχεια, δημιουργούμε μια σύνδεση χρησιμοποιώντας την εντολή:

winrs -r:"Όνομα υπολογιστή" : –u:Τομέας\Όνομα χρήστη -Π:Κωδικός πρόσβασης cmd.exe

όπου Domain\Username είναι ένας λογαριασμός χρήστη με δικαιώματα διαχειριστή στον απομακρυσμένο υπολογιστή.

Τα WinRM και WinRS είναι νέα στα Windows Vista, Windows Server 2003 R2, Windows Server 2008 (και Server 2008 Core). Αυτά είναι ισχυρά νέα εργαλεία γραμμής εντολών που προσφέρουν στους διαχειριστές συστήματος βελτιωμένες δυνατότητες τηλεχειρισμού και απομακρυσμένης εκτέλεσης σε μηχανήματα Windows. Ωστόσο, πρέπει πρώτα να ενεργοποιηθούν και θα χρειαστεί λίγος χρόνος για να μάθετε τη λειτουργικότητά τους. Είστε τυχεροί, αυτό το άρθρο έχει όλα όσα χρειάζεστε για να αρχίσετε να χρησιμοποιείτε αυτά τα εργαλεία σήμερα!

Τι είναι η απομακρυσμένη διαχείριση των Windows (WinRM);

Η απομακρυσμένη διαχείριση των Windows (συντομογραφία WinRM) είναι μια νέα βολική υπηρεσία απομακρυσμένης διαχείρισης για Windows Server 2003 R2, Windows Vista και Windows Server 2008. Το WinRM είναι το στοιχείο "διακομιστής" αυτής της εφαρμογής απομακρυσμένης διαχείρισης και το WinRS (Windows Remote Shell) είναι " πελάτη" για το WinRM που εκτελείται σε έναν απομακρυσμένο υπολογιστή σε μια προσπάθεια απομακρυσμένου ελέγχου του διακομιστή WinRM. Ωστόσο, θα πρέπει να σημειώσω ότι ΚΑΙ ΟΙ ΔΥΟ υπολογιστές πρέπει να έχουν εγκατεστημένο και ενεργοποιημένο το WinRM για να λειτουργήσει το WinRS και να λάβει πληροφορίες σχετικά με το απομακρυσμένο σύστημα. Το WinRM βασίζεται στα πρότυπα Web Services for Management (WS-Management). Αυτό σημαίνει ότι το WinRM χρησιμοποιεί αιτήματα HTTP (θύρα 80) και SOAP για να κάνει τη δουλειά. Το καλό με αυτό είναι ότι τα αιτήματα HTTP μπορούν εύκολα να σταλούν μέσω ενός τείχους προστασίας. Από αυτό προκύπτουν καλές και κακές συνέπειες: αφενός, θα είναι ευκολότερος ο έλεγχος ενός απομακρυσμένου υπολογιστή μέσω Διαδικτύου, αλλά, αφετέρου, θα είναι ευκολότερο για έναν εισβολέα να επιτεθεί στον ίδιο υπολογιστή εξ αποστάσεως. Ένα άλλο μικρό πλεονέκτημα της χρήσης της θύρας 80 είναι ότι δεν χρειάζεται να ανοίξετε άλλες θύρες στον διακομιστή, εάν οι εισερχόμενες συνδέσεις HTTP έχουν ήδη επιτραπεί.

Σύμφωνα με τη Microsoft, το WinRM είναι «το νέο εργαλείο της Microsoft για τη δημιουργία ενός API βασισμένου σε πρότυπα για τη διαχείριση συστήματος». Έτσι, εάν δεν σας ενδιέφερε προηγουμένως να μάθετε για τέτοια εργαλεία, νομίζω ότι το γεγονός ότι "είναι ένα νέο πρότυπο της Microsoft" το κάνει να αξίζει να μάθετε.

Μπορεί να είστε ήδη εξοικειωμένοι με τη βάση δεδομένων των Windows Management Instrumentation (WMI). Αλλά, για κάθε ενδεχόμενο, θα πω ότι αυτή η βάση δεδομένων περιέχει κάθε είδους πληροφορίες σχετικά με το υλικό και το λογισμικό του υπολογιστή. Σχεδόν κάθε εφαρμογή που διαχειρίζεται ένα σύστημα Windows πέφτει στο επίπεδο βάσης δεδομένων WMI για να εκτελέσει όλες τις διοικητικές εργασίες σε έναν δεδομένο υπολογιστή.

Το WinRM θα χρησιμοποιήσει τη βάση δεδομένων WMI για να εκτελέσει εργασίες παρόμοιες με αυτές που μπορεί να έχετε εκτελέσει με άλλο λογισμικό όπως το VBScript. Το πλεονέκτημα του WinRM είναι ότι χρησιμοποιεί HTTP (θύρα 80), όπως είπα, και υπάρχει ακόμη και ειδικός κώδικας που επιτρέπει στο WinRM να διαχωρίζει τις εισερχόμενες συνδέσεις στη θύρα 80 με ένα στοιχείο IIS που μπορεί να εκτελείται ήδη σε αυτήν τη θύρα.

Το WinRM υποστηρίζει διάφορους τύπους ελέγχου ταυτότητας για να αποτρέψει οποιονδήποτε από το να εκτελεί διαχειριστικές εργασίες στους πελάτες και τους διακομιστές σας. Φυσικά, πρέπει να θυμάστε ότι με την ενεργοποίηση του WinRM, ανοίγετε έναν άλλο δρόμο για επίθεση στο σύστημά σας. Ωστόσο, όπως κάνω για οποιαδήποτε ανοιχτή θύρα, εάν ο έλεγχος ταυτότητας και η κρυπτογράφηση έχουν ρυθμιστεί σωστά, μπορεί να θεωρηθεί ότι έχετε λάβει όλες τις εύλογες προφυλάξεις.

Ο κατασκευαστής του λογισμικού διαχείρισης του συστήματός σας μπορεί να έχει ήδη προγραμματίσει να χρησιμοποιήσει το WinRM σε μελλοντικές εκδόσεις του λογισμικού του, επομένως μπορεί να χρησιμοποιείτε ήδη το WinRM μέσω άλλων εφαρμογών. Ωστόσο, μπορείτε να χρησιμοποιήσετε αυτό το στοιχείο μόνοι σας χρησιμοποιώντας την εντολή winrm.cmd. Με αυτό το εργαλείο CLI, μπορείτε πολύ εύκολα να εξαγάγετε πληροφορίες από μια βάση δεδομένων WMI για οποιαδήποτε εργασία επιλύετε.

Όπως θα δείτε παρακάτω, το WinRM έχει μια διεπαφή γραμμής εντολών με πολλές επιλογές. Οι πληροφορίες βοήθειας σχετικά με το WinRM θα εμφανιστούν σε εσάς ακόμα κι αν δεν είναι ενεργοποιημένες στο σύστημά σας.

Εικόνα 1: Επιλογές γραμμής εντολών WinRM

Πώς να ενεργοποιήσετε και να χρησιμοποιήσετε το WinRM;

Εάν χρησιμοποιείτε Windows 2008 Server, το WinRM είναι ήδη εγκατεστημένο αλλά δεν είναι ενεργοποιημένο από προεπιλογή. Αυτή είναι μια καλή προφύλαξη. Ο ευκολότερος τρόπος για να ελέγξετε εάν το WinRM είναι ενεργοποιημένο και τρέχει στον υπολογιστή σας είναι να μεταβείτε στη γραμμή εντολών και να πληκτρολογήσετε:

winrm απαριθμεί winrm/config/listener

Εάν δεν λάβετε απάντηση, τότε το WinRM δεν εκτελείται. Για να ρυθμίσετε το WinRM ώστε να ξεκινά αυτόματα και να επιτρέπεται η απομακρυσμένη πρόσβαση, χρησιμοποιήστε την εντολή winrm quickconfig, Για παράδειγμα:

C:\Users\Administrator> winrm quickconfig Το WinRM δεν έχει ρυθμιστεί για να επιτρέπει την απομακρυσμένη πρόσβαση σε αυτό το μηχάνημα για διαχείριση.Πρέπει να γίνουν οι ακόλουθες αλλαγές:Δημιουργήστε ένα πρόγραμμα ακρόασης WinRM στο HTTP://* για να αποδεχτείτε αιτήματα WS-Man σε οποιαδήποτε IP σε αυτό το μηχάνημα.Να γίνουν αυτές οι αλλαγές; y Το WinRM έχει ενημερωθεί για απομακρυσμένη διαχείριση.Δημιούργησε ένα πρόγραμμα ακρόασης WinRM στο HTTP://* για να δέχεται αιτήματα WS-Man σε οποιαδήποτε IP σε αυτό το μηχάνημα.C:\Users\Administrator>Μετά τη ρύθμιση του quickconfig, επανέλαβα την εντολή απαρίθμησης με τα ακόλουθα αποτελέσματα: C:\Users\Administrator> winrm και winrm/config/listener ΑκροατήςΔιεύθυνση = *Μεταφορά = HTTPΛιμάνι = 80Όνομα κεντρικού υπολογιστήΕνεργοποιημένο = αληθέςURLPrefix = wsmanCertificateThumbprintListeningOn = 10.253.15.98, 127.0.0.1, ::1, fe80::5efe:10.253.15.98%11, fe80::9583:2148:e1ef:6444%10C:\Users\Administrator>

Τώρα ξέρω ότι το WinRM είναι ενεργοποιημένο.

Παρεμπιπτόντως, εάν θέλετε να απενεργοποιήσετε το WinRM, πρέπει να χρησιμοποιήσετε αυτήν την εντολή:

winrm διαγραφή winrm/config/listener?IPAdress=*+Transport=HTTP

Για να χρησιμοποιήσετε το WinRM, όλοι οι κόμβοι που επικοινωνούν μαζί του πρέπει να είναι μέλη του ίδιου τομέα με τον κόμβο που εκτελεί το WinRM. Εάν αυτό δεν συμβαίνει στην περίπτωσή σας, σας συνιστώ να εξοικειωθείτε με διάφορα σενάρια ασφαλείας στο άρθρο «Απομακρυσμένη διαχείριση του πυρήνα του διακομιστή σας χρησιμοποιώντας WinRM και WinRS».

Τι είναι το WinRS και πώς να το χρησιμοποιήσετε;

Το WinRS είναι ένα αρκτικόλεξο για το Windows Remote Shell. Με το WinRS μπορείτε να κάνετε απομακρυσμένα ερωτήματα σε μηχανήματα Windows που εκτελούν WinRM. Ωστόσο, μην ξεχνάτε ότι πρέπει επίσης να εκτελείτε το WinRM στον υπολογιστή σας για να εργαστείτε με το WinRS.

Όπως μπορείτε να δείτε στο παρακάτω διάγραμμα, κερδίζειείναι ένα πλήρες εργαλείο γραμμής εντολών με τεράστιο όγκο πληροφοριών αναφοράς για τον τρόπο χρήσης του.

Εικόνα 2: Επιλογές γραμμής εντολών WinRS

Ένας από τους πιο συνηθισμένους τρόπους χρήσης του WinRS είναι η εκτέλεση εντολών σε απομακρυσμένο μηχάνημα. Φυσικά, αυτή η επικοινωνία πραγματοποιείται χρησιμοποιώντας το πρωτόκολλο HTTP (θύρα 80) (προεπιλογή).

Ακολουθεί ένα παράδειγμα χρησιμοποιώντας το WinRS: Έτρεξα τις εντολές στον κεντρικό υπολογιστή localhost. Έτρεξα δύο εντολές: "" ver' Και ' σκηνοθεσία Γ:‘. Σε κάθε περίπτωση, ελήφθησαν επαρκείς πληροφορίες ως απάντηση.

Εικόνα 3: Επίδειξη εντολών WinRS

Αποτελέσματα

Τα WinRM και WinRS είναι πολύ ισχυρά νέα εργαλεία για τα οποία πρέπει να μάθουν οι διαχειριστές συστήματος των Windows. Σκεφτείτε τις δυνατότητες τηλεχειρισμού με WinRM/WinRS! Μπορείτε να εγκαταστήσετε προγράμματα, να αλλάξετε ρυθμίσεις, να λύσετε προβλήματα (φυσικά, εάν το πρόβλημα δεν είναι στην επικοινωνία δικτύου). Μπορείτε να προχωρήσετε περισσότερο και να συνδέσετε το WinRS με ένα σενάριο για να εκτελέσετε αυτές τις εργασίες σε πολλούς υπολογιστές. Επίσης, να θυμάστε ότι είτε χρησιμοποιείτε αυτά τα εργαλεία είτε όχι, το λογισμικό διαχείρισης του συστήματός σας θα τα χρησιμοποιεί σύντομα με τον ένα ή τον άλλο τρόπο.

Για όλα τα λειτουργικά συστήματα, ακόμα και τα XP.

Για μένα, εκτός από το ίδιο το PowerShell 2.0, το κύριο πράγμα είναι το WinRM. Όταν εφαρμόζεται στο PowerShell, είναι απλώς ένας τρόπος εκτέλεσης εντολών σε έναν απομακρυσμένο υπολογιστή.

Δείτε πώς να το κάνετε:
0. Εγκαταστήστε τον πυρήνα του πλαισίου διαχείρισης των Windows

1. Για να διαμορφώσετε το winrm στο μηχάνημα που θα είναι ο διακομιστής:
1.1 μεταβείτε στο cmd.exe (προσπάθησα να το κάνω από το ISE, αλλά δεν λειτουργεί με προγράμματα διαδραστικής κονσόλας)
1.2 τρέξιμο winrm qc
1.3 Απάντηση Υ στην ερώτηση σχετικά με τις αλλαγές

2. Τώρα μπορείτε να κάνετε κλικ στο εικονίδιο τερματικού στο PowerShell ISE στον υπολογιστή-πελάτη, να πληκτρολογήσετε το όνομα διακομιστή και τον λογαριασμό και, στη συνέχεια, να εισαγάγετε τον κωδικό πρόσβασης και να εργαστείτε με το συνηθισμένο ISE στο απομακρυσμένο μηχάνημα.

Και χρησιμοποιώντας το σύνολο εντολών *-PSSession, ένα τέτοιο σενάριο είναι δυνατό. Συνδεθείτε σε ένα απομακρυσμένο μηχάνημα, εκτελέστε μια μακρά λειτουργία εκεί, επιστρέψτε και όλα γίνονται.

ΥΣΤΕΡΟΓΡΑΦΟ. έστειλε μήνυμα από ανώνυμους:

"Γειά σου! Χρειάζεται βοήθεια γιατί... Δεν βρήκα λύση ο ίδιος ;)). Γενικά, το πρόβλημα είναι αυτό - δεν ξέρω πώς να επικοινωνήσω με τον συγγραφέα ενός από τα θέματα. Αυτό το άρθρο με ώθησε να εξοικειωθώ με τις δυνατότητες δικτύου του Powershell. Κατά τη ρύθμιση αυτής της δυνατότητας σε υπολογιστή με Windows XP SP3, προέκυψε ένα πρόβλημα - εμφανίστηκε το ακόλουθο σφάλμα:

PS C:\Documents and Settings\Administrator> winrm qc
Το WinRM δεν έχει ρυθμιστεί για λήψη αιτημάτων σε αυτό το μηχάνημα.
Πρέπει να γίνουν οι ακόλουθες αλλαγές:

Εκκινήστε την υπηρεσία WinRM.

Να γίνουν αυτές οι αλλαγές; y

Το WinRM έχει ενημερωθεί για να λαμβάνει αιτήματα.

Η υπηρεσία WinRM ξεκίνησε.
WSManFault
Μήνυμα = Δεν επιτρέπεται η πρόσβαση.

Αριθμός σφάλματος: -2147024891 0x80070005
Η πρόσβαση απαγορεύεται.
PS C:\Documents and Settings\Administrator>
**********************************************************************
Έψαχνα για πολύ, πολύ καιρό τρόπους για να λύσω αυτό το πρόβλημα στο Διαδίκτυο, αλλά και πάλι δεν μπόρεσα να βρω κάτι που να αξίζει τον κόπο. Ολα για όλα,
Για να λύσετε αυτό το πρόβλημα, μεταβείτε στο Έναρξη->Διαχείριση ->Ρυθμίσεις τοπικής ασφάλειας (secpol.msc) ->Επιλογή ασφαλείας ->Αναζητήστε "Πρόσβαση δικτύου: κοινή χρήση και μοντέλο ασφαλείας για τοπικούς λογαριασμούς" (Πρόσβαση δικτύου: Κοινή χρήση και μοντέλο ασφαλείας για τοπικοί λογαριασμοί) -> αλλάξτε την πολιτική σε "Κανονική -..." (Κλασική -...) -> Επανεκκίνηση και τέλος - το πρόβλημα τελείωσε!

Ένα τεράστιο αίτημα, στείλτε αυτό το μήνυμα στον συγγραφέα αυτού του θέματος, γιατί... Δεν μπορώ να το κάνω μόνος μου. Αφήστε τον να το δημοσιεύσει γιατί... Για το ρωσόφωνο τμήμα του πληθυσμού του Διαδικτύου, αυτό θα απλοποιήσει σημαντικά την αναζήτηση λύσης σε αυτό το πρόβλημα. Το πρόβλημα είναι αρκετά διαδεδομένο! Αλλά το παρατήρησα μόνο στα Windows XP. (Όλα δοκιμάστηκαν σε εικονική μηχανή με καθαρό σύστημα). Σας ευχαριστώ πολύ εκ των προτέρων!»

Σε αυτό το άρθρο, θα προσπαθήσω να σας πω πώς μπορείτε να ενεργοποιήσετε και να ρυθμίσετε κεντρικά την υπηρεσία απομακρυσμένης διαχείρισης των Windows (WinRM) σε όλους τους υπολογιστές-στόχους χρησιμοποιώντας την Πολιτική ομάδας. Επιτρέψτε μου να σας υπενθυμίσω ότι η απομακρυσμένη διαχείριση των Windows είναι μια ειδική υπηρεσία που επιτρέπει στους διαχειριστές να αποκτήσουν τη δυνατότητα απομακρυσμένης πρόσβασης και διαχείρισης των λειτουργικών συστημάτων πελάτη και διακομιστή Windows (και νομίζω ότι αν έχετε χρησιμοποιήσει προηγουμένως τη σουίτα βοηθητικών προγραμμάτων Microsoft Sysinternals, τότε θα θέλατε WRM).
Ας πάρουμε έναν κανονικό υπολογιστή με και στον οποίο δεν είναι ενεργοποιημένη η λειτουργία απομακρυσμένης διαχείρισης των Windows. Στη γραμμή εντολών, πληκτρολογήστε την ακόλουθη εντολή:


, θα πρέπει να δείτε το ακόλουθο μήνυμα σφάλματος που υποδεικνύει ότι το WRM δεν είναι εγκατεστημένο:
Σφάλμα WSMan. Ο πελάτης δεν μπορεί να συνδεθεί στον προορισμό που καθορίζεται στο αίτημα. Αριθμός σφάλματος: - 2144108526 0x80338012

Εάν πρέπει να ρυθμίσετε το WinRM με μη αυτόματο τρόπο σε ένα ξεχωριστό σύστημα, απλώς πληκτρολογήστε την εντολή:

Winrm Quickconfig

Εάν πρέπει να διαμορφώσετε το WinRM σε μια ομάδα υπολογιστών, μπορείτε να χρησιμοποιήσετε ειδικές ρυθμίσεις πολιτικής ομάδας. Η πολιτική που μας ενδιαφέρει βρίσκεται στην ενότητα: Computer Configuration -> Policies -> Windows Components -> Windows Remote Management (WinRM) -> WinRM Service. Πρέπει να ενεργοποιηθούν οι ακόλουθες παράμετροι:
Να επιτρέπεται η αυτόματη διαμόρφωση των ακροατών
Να επιτρέπεται ο βασικός έλεγχος ταυτότητας


Στην ενότητα φίλτρου IPv4 υποδεικνύουμε *, που σημαίνει ότι ο υπολογιστής μπορεί να δέχεται συνδέσεις (και επομένως εντολές ελέγχου) από οπουδήποτε, αυτό σημαίνει ότι οι ακροατές στον υπολογιστή θα δέχονται αιτήματα σε όλες τις διεπαφές IP.


Στη συνέχεια, στην ενότητα Computer Configuration -> Policies -> Windows Components -> Windows Remote Shell, ενεργοποιήστε το στοιχείο:
Να επιτρέπεται η απομακρυσμένη πρόσβαση κελύφους


Και τέλος, πρέπει να ορίσετε τον τύπο εκκίνησης της Απομακρυσμένης Υπηρεσίας των Windows σε "Αυτόματα". Επιτρέψτε μου να σας υπενθυμίσω ότι μπορείτε να ελέγξετε τον τρόπο εκκίνησης των υπηρεσιών από την ακόλουθη ενότητα πολιτικής ομάδας: Διαμόρφωση υπολογιστή -> Ρυθμίσεις Windows -> Ρυθμίσεις ασφαλείας -> Υπηρεσίες συστήματος.


Αφού ενεργοποιήσετε το WinRM χρησιμοποιώντας την πολιτική ομάδας, ελέγξτε την κατάσταση της υπηρεσίας στο σύστημα πελάτη χρησιμοποιώντας τη γνωστή εντολή:


Ας βεβαιωθούμε ότι ο τύπος εκκίνησης της υπηρεσίας WinRM έχει οριστεί σε αυτόματη. Αν και στην πραγματικότητα ο τύπος εκτόξευσης είναι «αυτόματος με καθυστέρηση», επειδή Από προεπιλογή, η υπηρεσία WinRM έχει ένα σύνολο καθυστέρησης εκκίνησης (παράμετρος DelayedAutoStart=1 στον κλάδο HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinRM).

Τώρα, μετά την ενεργοποίηση του WinRM με χρήση της Πολιτικής ομάδας, η διαχείριση αυτού του συστήματος μπορεί να γίνει απομακρυσμένα χρησιμοποιώντας εντολές WinRS. Η ακόλουθη εντολή θα ανοίξει μια γραμμή εντολών που εκτελείται στο απομακρυσμένο σύστημα:

Winrs –r:computer01 cmd

Μόλις εμφανιστεί το παράθυρο της γραμμής εντολών, μπορείτε να εκτελέσετε και να δείτε τα αποτελέσματα οποιασδήποτε εντολής στον απομακρυσμένο υπολογιστή, σαν να εργάζεστε σε αυτήν τοπικά. Σημειώστε ότι το WinRM πρέπει επίσης να είναι ενεργοποιημένο στον κεντρικό υπολογιστή σας.

mob_info