panhas

Archive for March, 2008

How to find and disable inactive domain users (Ελληνική Έκδοση)

In Windows Server 2003 on March 18, 2008 at 1:23 am

Σενάριο:

Είμαι ένας φτωχός και μόνος System Administrator…

…και έχω ένα δίκτυο με Active Directory και δεκάδες ή εκατοντάδες χρήστες…

…και έρχονται και φεύγουν πολλοί χρήστες στο δίκτυό μου…

…και δημιουργούνται νέοι λογαριασμοί χρηστών και απενεργοποιούνται παλιοί…

…κλπ, κλπ, κλπ…

…και παίζω με τις μπίλιες από τα παλιά ποντίκια περιμένοντας να ωριμάσει το TCP/IP v6…

…και έρχονται στιγμές που αναρωτιέμαι (and I wonder) μήπως ΞΕΧΑΣΑ (λέω μήπως) κανέναν; Μήπως έφυγε κάποιος και ΞΕΧΑΣΑ να τον ΑΠΕΝΕΡΓΟΠΟΙΗΣΩ; Γιατί ως γνωστόν όταν ένας χρήστης φεύγει ΔΕΝ τον διαγράφουμε αμέσως, αλλά μετά από ένα χρονικό διάστημα. Και είναι κουραστικό να πάρω σβάρνα όλα τα OU’s του AD και να ψάχνω ψύλλους στ’ άχυρα.

Εκτέλεση:

Συνδέομαι σε έναν Domain Controller με Administrative Privileges (λέγε με Διαχειριστικά Δικαιώματα ή με την καινούργια Vista ορολογία της Microsoft, Elevated Privileges – Υψηλότερα Προνόμια), ανοίγω ένα Command Prompt και γράφω:

dsquery user domainroot -inactive 4|dsmod user -disabled yes

Εξήγηση:

  • Η dsquery είναι η εντολή με την οποία εκτελούμε “ερωτήματα” προς το AD (όσοι έχουν ασχοληθεί με DB γνωρίζουν)
  • Η πρώτη παράμετρος ορίζει το αντικείμενο του ερωτήματος και είναι user. Δηλαδή ρωτάω για χρήστες (dsquery user)
  • Η δεύτερη παράμετρος ορίζει το πεδίο έρευνας και είναι domainroot. Δηλαδή ρωτάω για χρήστες σε όλο το domain (dsquery user domainroot).
  • Ακολουθεί η ιδιότητα (attribute) και είναι -inactive (ανενεργοί). Δηλαδή ρωτάω για χρήστες σε όλο το domain οι οποίοι έχουν την ιδιότητα (attribute) να είναι ανενεργοί (dsquery user domainroot -inactive)
  • Το 4 είναι η τιμή (value) της ιδιότητας (attribute) και μετρά χρονικό διάστημα σε εβδομάδες. Δηλαδή ρωτάω (dsquery) για χρήστες (user) σε όλο το domain (domainroot) που έχουν την ιδιότητα (attribute) να είναι ανενεργοί (-inactive) για τέσσερις (4) εβδομάδες

Και το υπόλοιπο; τι είναι το υπόλοιπο;

  • Στη συνέχεια κάνουμε pipe. Ο χαρακτήρας | ονομάζεται pipe. Δηλαδή “διοχετεύουμε” τα αποτελέσματα μιας εντολής σε μια άλλη (όπως στην υδραυλική χρησιμοποιούμε ένα σωλήνα – pipe για να διοχετεύσουμε νερό)
  • Η δεύτερη εντολή είναι η dsmod η οποία χρησιμοποιείται για να πραγματοποιήσουμε αλλαγές στο AD (dsmod – Directory Service Modification)
  • Η παράμετρος είναι user, δηλαδή αλλαγή σε χρήστες (dsmod user)
  • Η ιδιότητα (attribute) είναι -disabled (απενεργοποίηση), δηλαδή “άλλαξε στους χρήστες την ιδιότητα απενεργοποίηση” (dsmod user -disabled
  • Και η τιμή της ιδιότητας -disabled, είναι yes. Η ιδιότητα -disabled μπορεί να πάρει τις τιμές yes και no. Με το yes ενεργοποιείται η ιδιότητα (δηλαδή απενεργοποιείται ο χρήστης) και με το no το αντίθετο.

Συνοψίζουμε. Εκτελούμε μια εντολή η οποία μας επιστρέφει όλους τους χρήστες που είναι ανενεργοί για ένα συγκεκριμένο χρονικό διάστημα και στη συνέχεια το αποτέλεσμα (output) αυτής της εντολής το παρέχουμε (pipe) ως είσοδο (input) σε μια άλλη εντολή η οποία απενεργοποιεί όλους τους χρήστες που βρήκε η πρώτη εντολή.

Όσοι έχουν ασχοληθεί έστω και λίγο με το UNIX γνωρίζουν τη δύναμη των pipes

Επίσημες πληροφορίες:

Microsoft TechNet: dsquery

Οι dsquery και dsmod έχουν και άλλα τέσσερα αδελφάκια: dsadd, dsrm, dsmove και dsget. Και φυσικά μπορούμε να εργαστούμε και στα υπόλοιπα αντικείμενα του Active Directory (OU, groups, computers, κλπ.)

Στο παρακάτω link οι αρχικές πληροφορίες και κάποια απλά παραδείγματα:

Microsoft Knowledge Base Article 322684: How to use the Directory Service Command-Line Tools to manage Active Directory Objects in Windows Server 2003

Windows Workgroup Network without Passwords or Accounts (Ελληνική Έκδοση)

In Vista, XP on March 12, 2008 at 3:26 am

Σενάριο:

Πριν από μερικές μέρες, συζητώντας με ένα φίλο προέκυψε το εξής:

Συνδέουμε δυο υπολογιστές peer-to-peer (είτε με καλώδιο crossover, είτε μέσω switch) και θέλουμε να μοιράσουμε αρχεία. Υπό Κ.Σ. (κανονικές συνθήκες) θα ακολουθήσουμε τους κανόνες ενός Workgroup.

Δηλαδή:

  1. Θα δημιουργήσουμε πανομοιότυπους λογαριασμούς χρηστών (User Accounts) με το ίδιο όνομα χρήστη (Username) και τον ίδιο κωδικό πρόσβασης (Password) και στους δυο υπολογιστές που συνδέσαμε.
  2. Θα “μοιράσουμε” (File & Folder Sharing) τους φακέλους και τα αρχεία που θέλουμε, δίνοντας πρόσβαση (Share Permissions) μόνο στους χρήστες που δημιουργήσαμε προηγουμένως

Όλα ωραία και καλά. Και η αλήθεια είναι, πως αυτή είναι η επίσημη διαδικασία για όλα τα δίκτυα τύπου Workgroup ή Peer-to-Peer, από δυο μέχρι δέκα υπολογιστές που είναι το θεωρητικό όριο του Workgroup λόγω του ότι τα Windows Client (λέγε με 2000 Professional, XP Pro, Vista Business κλπ.) υποστηρίζουν μέχρι δέκα ταυτόχρονες (concurrent) συνδέσεις.

Υπάρχουν όμως κάποια πρακτικά θεματάκια που υπό συνθήκες είναι ενοχλητικά:

  • Όσο πληθαίνουν οι υπολογιστές, τόσο πληθαίνουν και τα User Accounts σε κάθε υπολογιστή και οι αλλαγές στα Permissions
  • Αν χρησιμοποιείς Welcome Screen αντί για Logon Screen, εμφανίζονται όλο και περισσότερα εικονίδια με ονόματα χρηστών
  • Όσοι χρήστες δεν έχουν Password στα Windows (λέγε με κενό κωδικό πρόσβασης ή Blank Password) δεν έχουν πρόσβαση σε μοιρασμένα αρχεία και φακέλους, οπότε τους “δίνουμε” και ένα Password

Έστω όμως ότι βρισκόμαστε σε ένα ελεγχόμενο περιβάλλον από πλευράς φυσικής ασφάλειας (ένα γραφείο που δεν μπαινοβγαίνει κόσμος, test περιβάλλον, οικιακό δίκτυο κλπ) ή πολύ απλά ο “ιδιοκτήτης” του δικτύου δεν θέλει ούτε να ακούσει για χρήστες, κωδικούς πρόσβασης κλπ. (σας θυμίζει τίποτε;) Είναι το κλασσικό PC το οποίο μετά την εκκίνηση, το Λειτουργικό “μπαίνει κατευθείαν” στο περιβάλλον.

Τα Windows από default επιτρέπουν την τοπική πρόσβαση (Local Access) ή αλλιώς από κονσόλα σε ένα User που έχει κενό Password ακόμη κι αν αυτός είναι ο Administrator. Αυτή η ρύθμιση ορίζεται από την τοπική πολιτική ασφαλείας (Local Security Policy) την οποία θα βρείτε μεσα στα εργαλεία διαχείρισης του συστήματος (Administrative Tools).

Διαδικασία:

Αν λοιπόν ανοίξουμε το Local Security Policy, από αριστερά που είναι οι κατηγορίες, πηγαίνουμε Security Settings -> Local Policies -> Security Options. Δεξιά, η τρίτη ρύθμιση λέει: Accounts: Limit local account use of blank passwords to console logon only και δίπλα λέει Enabled. Αν αυτό γίνει Disabled τότε επιτρέπεται η πρόσβαση στο σύστημα από λογαριασμούς που δεν έχουν κωδικό πρόσβασης και ΕΚΤΟΣ της κονσόλας (δηλαδή από το δίκτυο).

Αυτό λύνει και ένα άλλο μυστήριο. Όταν σε ένα περιβάλλον Workgroup μοιράζουμε ένα φάκελο με Permissions Everyone και προσπαθεί κάποιος χρήστης από το δίκτυο να “δει” τα αρχεία, παραδόξως δεν τα βλέπει. Και όντως παραδόξως διότι το User Group Everyone, κανονικά περιλαμβάνει και όσους είναι εκτός των προσδιορισμένων Local User Groups (αυτά που λέγαμε παραπάνω). Στην πράξη όμως δεν λειτουργεί αν δεν κάνουμε και αυτή τη μικρή “επέμβαση” στο Local Security Policy που προαναφέρθηκε.

Επίλογος:

Την επόμενη φορά λοιπόν που θέλουμε να μοιράσουμε αρχεία γρήγορα και εύκολα, χωρίς να χρειάζεται να μπλέκουμε με δημιουργία λογαριασμών χρηστών, Permissions κλπ. (μιας και δεν τίθεται θέμα Security στο σενάριο που αναφέρθηκε) ξέρουμε πλέον ποια ρύθμιση πρέπει να πειράξουμε και γιατί.

Επίσημες Πληροφορίες:

Microsoft Technet: Understanding Logon and Authentication

Recover Windows XP Corrupted Registry (Ελληνική Έκδοση)

In XP on March 6, 2008 at 2:12 am

Σενάριο:

Ένα απροσδόκητο shutdown: Διακοπή ρεύματος, έπεσε η ασφάλεια, “πατήθηκε” το πολύπριζο, ή τέλος πάντων μπορεί και να ήταν ένα κανονικό shutdown αλλά… με την επόμενη εκκίνηση εμφανίζεται ένα μήνυμα του στυλ: “Windows XP could not start because the following file is missing or corrupt C:\Windows\System32\Config\System” ή το ίδιο να τελειώνει σε Software αντί για System. Κάνουμε επανεκκίνηση πατάμε το F8, εμφανίζεται το μενού με τις επιλογές εκκίνησης, επιλέγουμε το Last Known Good, και… τίποτε. Ξανά Reboot, F8, Safe Mode… όχι. Ότι και να διαλέξουμε… αδιέξοδο!

Εξήγηση:

Αυτό που έγινε, είναι ότι το μητρώο των Windows XP καταστράφηκε. Το μητρώο αποτελείται από πέντε αρχεία: System, Software, SAM, Security και Default. Οποιοδήποτε από τα πέντε και αν καταστραφεί το λειτουργικό δεν “φορτώνει” σε κανένα mode. Άρα τι κάνουμε; Format! Όχι βέβαια. Τα Windows έχουν “κρατήσει” αντίγραφα των πέντε αρχείων για “‘ώρα ανάγκης” στο Directory C:\Windows\Repair. Tα συγκεκριμένα αντίγραφα, είναι το μητρώο των Windows μετά το τέλος της αρχικής εγκατάστασης. “Καθαρό μητρώο” δηλαδή.

Διαδικασία:

  1. “Ξεκινάμε” τoν H/Y κάνοντας Boot από το CD-ROM με το CD εγκατάστασης των Windows, και επιλέγουμε Recovery Console
  2. Αντιγράφουμε τα “χτυπημένα” αρχεία του μητρώου από το C:\Windows\System32\Config σε ένα προσωρινό φάκελο
  3. Αντιγράφουμε “από πάνω” (overwrite) τα αρχεία από το C:\Windows\Repair στο C:\Windows\System32\Config
  4. Κάνουμε επανεκκίνηση (βγάζουμε το CD από το Tray) και ως δια μαγείας τα XP “φορτώνουν” κανονικά και είναι “καθαρή” εγκατάσταση. Δεν υπάρχουν εφαρμογές εγκατεστημένες, οι άγνωστες συσκευές στον Device Manager έχουν ερωτηματικό, η ανάλυση της οθόνης είναι η Default κλπ.
  5. Ανοίγουμε τον Windows Explorer και εμφανίζουμε τα Hidden Files. Στο C:\ εμφανίζεται ένας φάκελος με όνομα System Volume Information. Αν προσπαθήσουμε να προσπελάσουμε τα περιεχόμενα του φακέλου θα δούμε το μήνυμα Access Denied. Είναι λογικό! Δεν έχουμε Permissions. Αν ρίξτε μια ματιά στο Security από τα Properties του φακέλου θα δείτε μόνο το System Account.
  6. Κάνουμε Add και προσθέτουμε τον εαυτό μας στην ACL (Access Control List) των NTFS Security Permissions. Τώρα έχουμε πρόσβαση στα περιεχόμενα του φακέλου.
  7. Βλέπουμε φακέλους με “περίεργα” ονόματα όπως: _restore {D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}\RP1\Snapshot
  8. Αυτοί οι “περίεργοι” φάκελοι είναι τα Restore Points του System Restore. (Σημείωση: Αν δεν υπάρχουν φάκελοι αυτού του τύπου σημαίνει πως το System Restore ήταν απενεργοποιημένο, οπότε… ξεκινάμε την επανεγκατάσταση των οδηγών και των εφαρμογών. Τουλάχιστον γλιτώσαμε το χρόνο του αρχικού Windows Setup, κάτι είναι και αυτό)
  9. Ανοίγουμε τον πιο πρόσφατο φάκελο Snapshot (βλέπουμε τις ημερομηνίες αλλάζοντας την προβολή σε λεπτομέρειες) και βλέπουμε τα πέντε αρχεία με λίγο διαφορετικά ονόματα: _registry_user_.default, _registry_machine_security, _registry_machine_software, _registry_machine_system, _registry_machine_SAM. Τα αντιγράφουμε σε ένα προσωρινό φάκελο και τα μετονομάζουμε στα κανονικά τους ονόματα (default, security, software, system, SAM)
  10. Κάνουμε επανεκκίνηση πάλι από το CD εγκατάστασης και επιλέγουμε και πάλι Recovery Console
  11. Αντιγράφουμε τα αρχεία που μετονομάσαμε στο C:\Windows\System32\Config
  12. Αφαιρούμε το CD από το tray, κάνουμε επανεκκίνηση και… όλα καλά!

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

Με τον καιρό ανακαλύπτουμε πως αυτή η λύση “δουλεύει” και σε άλλες περιπτώσεις αρκεί να είμαστε σε θέση να αναγνωρίσουμε ότι το μήνυμα σφάλματος ή η μπλε οθόνη έχει ως ρίζα του κακού ένα κατεστραμμένο μητρώο. Η διαδικασία είναι πλήρως αναστρέψιμη αν κρατάμε αντίγραφα σε κάθε βήμα της διαδικασίας, οπότε είναι σχεδόν ακίνδυνο να το “δοκιμάζουμε” σε περιπτώσεις που έχουμε απλά την υποψία του κατεστραμμένου μητρώου.

Η διαδικασία επίσης λειτουργεί και σε Windows 2000 αλλά με μια διαφορά. Επειδή δεν υπάρχει System Restore στα 2000, αν έχουμε “προνοήσει” και έχουμε ένα System State Backup, μπορούμε να πάρουμε τα πέντε αρχεία κάνοντας Restore σε ένα άλλο PC. Εξ’ άλλου, είτε έχουμε 2000 είτε XP, το System State είναι μια διαδικασία που αν πραγματοποιείται καθημερινά, τα αρχεία που περιέχει μπορούν να μας “σώσουν” από πολλές “απροσδόκητες” ή “ανεπιθύμητες” καταστάσεις.

Επίσημες Πληροφορίες:
Microsoft Support Knowledge Base Article 307545

 

Windows XP Scheduled Shutdown (Ελληνική Έκδοση)

In XP on March 6, 2008 at 12:16 am

Σενάριο:

Έστω ότι επιθυμούμε να πραγματοποιήσουμε τερματισμό του συστήματος σε προκαθορισμένο χρόνο.

Παράδειγμα:

Θέλουμε να τερματίσουμε τη λειτουργία των Windows αφού ολοκληρωθεί μια εργασία αλλά η εφαρμογή που “τρέχουμε” ενώ διαθέτει auto save (σχεδόν όλες έχουν πλέον), ΔΕΝ διαθέτει shutdown when done. Δηλαδή εγώ θα φύγω στις 6:00 το απόγευμα από το γραφείο αλλά μια «δουλειά» που έχω αφήσει να «τρέχει» έχω υπολογίσει ότι θα τελειώσει γύρω στις 9:30 με 10 παρά το βράδυ. Οπότε ας προγραμματίσω ένα shutdown για τις 10 το βράδυ.

Διαδικασία:

Ανοίγουμε ένα command prompt (Start -> Run, πληκτρολογούμε cmd και Enter) και γράφουμε: at 22:00 shutdown.exe /s /f

Ανάλυση:

Ο συνδυασμός των εντολών at και shutdown δημιουργεί ένα scheduled task (Start -> Programs -> Accessories -> System Tools -> Task Scheduler) το οποίο θα “τρέξει στις 22:00 (10 το βράδυ).

Άρα με την εντολή at έχουμε τη δυνατότητα από command prompt να προγραμματίσουμε εργασίες στα Windows. Αν “ψάξετε” λίγο τις παραμέτρους των εντολών at και shutdown (χρησιμοποιώντας το /? καθώς και ερευνώντας λίγο στη Knowledge Base της Microsoft) θα μας δοθούν ιδέες και για παρόμοια σενάρια όπως: Πως μπορώ να πάρω ένα backup στα XP σε ένα server του δικτύου πριν τον τερματισμό των XP, πως να τερματίζουν τη λειτουργία τους κάθε βράδυ στην ώρα που εμείς επιθυμούμε όλα τα “ξεχασμένα ανοιχτά” PC του δικτύου, κλπ.

Επίσημες Πληροφορίες:

Microsoft Support Knowledge Base Article 313565

Windows Server 2003 Shutdown Event Tracker (English Version)

In Windows Server 2003 on March 5, 2008 at 11:15 pm

Κλικ εδώ για την Ελληνική έκδοση
Scenario:

A small but useful information. Windows Server 2003 Operating System Family, has a feature that the previous Windows 2000 Server Family had not. When you choose to shutdown or restart the system, a new type of menu appears which asks to provide a reason for the selected action. It has a list of predefined choices, as well as a text filed so we can add our own custom comments.

But what if I want to disable this feature, and go back to the good old shutdown menu?

Procedure:

  1. Click Start->Run, type gpedit.msc and press Enter
  2. The Local Security Policy object editor opens
  3. In the left pane navigate to Computer Configuration -> Administrative Templates -> System
  4. In the list that appears on the right pane of the mmc console, after the folder list, the third choice is “Display Shutdown Event Tracker”
  5. Double-click to open the item and select disable
  6. Click OK, close Group Policy Object Editor, and you’re done

Note:

You don’t have to run “gpupdate /force” because this is a Local Security Policy and not a Domain Policy. Furthermore, if you wish to make this change on the other servers of your network using the same method you have to visit them all one by one because this is a local setting.

Official Information:

Microsoft Support KB Article 293814: Description of the Shutdown Event Tracker

Microsoft Support KB Article 55541: How to enable or disable Shutdown Event Tracker

Microsoft Technet Website: Shutdown Event Tracker Best Practices

Windows Server 2003 Shutdown Event Tracker (Ελληνική Έκδοση)

In Windows Server 2003 on March 5, 2008 at 3:06 pm

Click here for English Version
Σενάριο:

Μια μικρή πλην όμως χρήσιμη πληροφορία. Το Λειτουργικό Σύστημα Windows Server 2003, έχει ένα χαρακτηριστικό που δεν διέθετε η προηγούμενη οικογένεια λειτουργικών Windows 2000 Server. Όταν τερματίζεις ή επανεκκινήσεις το σύστημα εμφανίζεται ένα πλαίσιο διαλόγου το οποίο ζητά να ενημερώσουμε το σύστημα για το λόγο της ενέργειας στην οποία προβαίνουμε. Διαθέτει μια σειρά από προκαθορισμένες επιλογές, καθώς και ένα πεδίο κειμένου για δικές μας προσθήκες.

Τι γίνεται όμως αν εγώ επιθυμώ την απενεργοποίηση αυτού του χαρακτηριστικού και την “επιστροφή” στο “παραδοσιακό” μενού;

Διαδικασία:

  1. Start->Run και πληκτρολογούμε gpedit.msc και Enter
  2. Ανοίγει το Local Security Policy
  3. Πηγαίνουμε στο Computer Configuration -> Administrative Templates -> System
  4. Στη λίστα δεξιά, μετά τα Folders, η τρίτη επιλογή λέει Display Shutdown Event Tracker
  5. Ανοίγουμε με διπλό Click ή Enter και επιλέγουμε Disable
  6. Click στο OK, και κλείνουμε τον Group Policy Object Editor

Σημείωση:

Δεν χρειάζεται gpupdate /force διότι είναι Local Security Policy και όχι Domain. Επίσης, αν επιθυμούμε την αλλαγή και σε άλλους servers του δικτύου μας, πρέπει να “επισκεφθούμε” τον καθένα ξεχωριστά, καθότι πρόκειται για τοπική ρύθμιση.

Επίσημες Πληροφορίες:

Microsoft Support KB Article 293814: Description of the Shutdown Event Tracker

Microsoft Support KB Article 55541: How to enable or disable Shutdown Event Tracker

Microsoft Technet Website: Shutdown Event Tracker Best Practices