/ / / Geek School: Χρησιμοποιώντας το PowerShell για να πάρετε πληροφορίες υπολογιστή

Geek School: Χρησιμοποιώντας το PowerShell για να αποκτήσετε πληροφορίες για υπολογιστές

Το WMI και ο νεώτερος αδερφός του CIM μπορούν να χρησιμοποιηθούν και για τη διαχείριση των μηχανών των Windows στο περιβάλλον σας. Αλλά ξέρετε τη διαφορά μεταξύ τους; Ελάτε μαζί μας καθώς ρίχνουμε μια ματιά.

Βεβαιωθείτε ότι έχετε διαβάσει τα προηγούμενα άρθρα της σειράς:

  • Μάθετε πώς να αυτοματοποιήσετε τα Windows με το PowerShell
  • Μάθηση χρήσης Cmdlets στο PowerShell
  • Πώς να χρησιμοποιήσετε αντικείμενα στο PowerShell
  • Εκμάθηση μορφοποίησης, φιλτράρισμα και σύγκριση σε PowerShell
  • Μάθετε να χρησιμοποιείτε Remoting στο PowerShell

Και μείνετε συντονισμένοι για όλη την εβδομάδα.

Εισαγωγή

Το WMI σημαίνει Windows Instrumentation. Η λέξη "Instrumentation" αναφέρεται στο γεγονός ότι το WMI σας επιτρέπει να λαμβάνετε πληροφορίες σχετικά με την εσωτερική κατάσταση του υπολογιστή σας, όπως τα όργανα ταμπλό του αυτοκινήτου σας μπορούν να ανακτήσουν και να εμφανίσουν πληροφορίες σχετικά με την κατάσταση των εσωτερικών εξαρτημάτων των αυτοκινήτων σας.

Το WMI αποτελείται από ένα αποθετήριο που περιέχειπου αντιπροσωπεύουν στοιχεία που θα μπορούσαν να διαχειριστούν μέσα στο μηχάνημά σας. Με αυτό εννοούμε ακριβώς επειδή η WMI έχει μια κλάση Win32_Battery δεν σημαίνει ότι το μηχάνημά σας περιέχει μπαταρία. Αυτές οι κλάσεις μπορούν στη συνέχεια να αναζητηθούν για πληροφορίες τοπικά ή και σε ένα δίκτυο χρησιμοποιώντας μια γλώσσα ερωτήματος πολύ παρόμοια με την SQL που ονομάζεται WQL. Ωστόσο, το WMI είναι γνωστό ότι είναι πολύ αναξιόπιστο, κυρίως λόγω του γεγονότος ότι βασίζεται σε RPC (Remote Procedure Calls), οι οποίες κάνουν κάποια τρελά πράγματα με τα λιμάνια που επιλέγουν να επικοινωνούν.

Ξεκινώντας με τα Windows 8 και Server 2012, το WMI είναινα καταργηθεί σταδιακά υπέρ του κοινού μοντέλου πληροφοριών ή του CIM για σύντομο χρονικό διάστημα. Η μόνη διαφορά μεταξύ του WMI και του CIM είναι τα πρωτόκολλα μεταφοράς που χρησιμοποιούν. Ενώ το WMI εκτελεί ερωτήματα χρησιμοποιώντας απομακρυσμένες κλήσεις διαδικασίας, το CIM χρησιμοποιεί το HTTP, το οποίο φαίνεται να κάνει τεράστια διαφορά. Στο backend εξακολουθούν να μιλούν στον ίδιο χώρο αποθήκευσης πληροφοριών.

Χρησιμοποιώντας το WMI

Ο γρηγορότερος και ευκολότερος τρόπος εξερεύνησης τουοι πληροφορίες που έχετε στη διάθεσή σας μέσω του WMI είναι να τραβήξετε ένα αντίγραφο οποιουδήποτε ελεύθερου Browser αντικειμένου WMI. Μας αρέσει αυτό. Μετά τη λήψη, πυρπολίστε το και θα έχετε μια γραφική διεπαφή για να περιηγηθείτε στις κλάσεις WMI.

εικόνα

Αν θέλετε να μάθετε κάτι σχετικά με τη διαμόρφωση του δίσκου ενός υπολογιστή, πατήστε το συνδυασμό πλήκτρων Ctrl + F για να εμφανιστεί ένα πλαίσιο αναζήτησης και στη συνέχεια πληκτρολογήστε "logicaldisk" και πατήστε enter.

εικόνα

Αμέσως αυτό θα σας μεταφέρει στην κλάση Win32_LogicalDisk.

εικόνα

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

εικόνα

Μόλις έχουμε την τάξη που ψάχνουμε, η ερώτηση από το PowerShell είναι απλή.

Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

εικόνα

Δεν έχω δει αυτή τη σύνταξη για λίγο, με τους ανθρώπους αυτές τις μέρες να προτιμούν να χρησιμοποιούν τη νέα παραμετροποιημένη σύνταξη.

Get-WmiObject-Κλάση Win32_LogicalDisk

εικόνα

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

Get-WmiObject-Κλάση Win32_LogicalDisk -Υπολογιστής όνομα Viper -Credential admin

εικόνα

Χρησιμοποιώντας το CIM

Έχοντας κατά νου ότι το CIM είναι διαθέσιμο μόνο σε Windows 8 και Server 2012, προχωρώντας προς τα εμπρός αυτό είναι σίγουρα ο δρόμος προς την κατεύθυνση.

Get-CimInstance -ClassName Win32_LogicalDisk

εικόνα

Υπάρχει επίσης συμπλήρωση της καρτέλας για την παράμετρο -ClassName όταν χρησιμοποιείτε το Get-CimInstance, το οποίο δείχνει ότι η συνέχιση των προσπαθειών της Microsoft θα επικεντρωθεί.

Στην πραγματικότητα, το WMI αναπτύχθηκε πλήρωςξεχωριστή ομάδα της Microsoft, αλλά στη συνέχεια αναλήφθηκε από τους υπεύθυνους του PowerShell. Ήταν αυτοί που παρατήρησαν ότι θα είναι πολύ δύσκολο να καθαρίσετε το χάος WMI που απομένει. Σε μια προσπάθεια αντιμετώπισης της κατάστασης, προσπαθούν να καταστήσουν το WMI και το CIM πιο διαθέσιμο γράφοντας περιτύλιγμα cmdlet που χρησιμοποιούν WMI και CIM κάτω από την κουκούλα. Ο μόνος τρόπος για να ελέγξετε αν ένα cmdlet είναι περιτύλιγμα είναι να εξετάσετε την τεκμηρίωση. Για παράδειγμα, το cmdlet Get-Hotfix είναι ένα περιτύλιγμα για την κλάση Win32_QuickFixEngineering, όπως φαίνεται στην τεκμηρίωση.

εικόνα

Αυτό σημαίνει ότι μπορείτε να λάβετε τις επείγουσες επιδιορθώσεις σε απομακρυσμένα μηχανήματα χρησιμοποιώντας το cmdlet Get-HotFix αντί για ερώτημα WMI.

Get-HotFix -ComputerName localhost

εικόνα

Έτσι, εκεί έχετε. Απλά θυμηθείτε ότι εάν υπάρχει ένα ειδικό cmdlet, θα θέλετε πάντα να το χρησιμοποιήσετε, ακολουθούμενο από το CIM αν δεν υπάρχει cmdlet. Τέλος, εάν όλα τα άλλα αποτύχουν ή έχετε παλαιότερες μηχανές στο περιβάλλον σας, θα θέλετε να χρησιμοποιήσετε το WMI. Αυτό είναι το μόνο που έχω για αυτή τη φορά. Θα δούμε αύριο για περισσότερη διασκέδαση PowerShell.