You are previewing Microsoft® PowerShell, VBScript and JScript® Bible.
O'Reilly logo
Microsoft® PowerShell, VBScript and JScript® Bible

Book Description

Packed with more than 300 sample scripts and an extensive collection of library functions, this essential scripting book is the most thorough guide to Windows scripting and PowerShell on the market. You’ll examine how Windows scripting is changing the face of system and network administration by giving everyday users, developers, and administrators the ability to automate repetitive tasks. Plus, this is the first time that VBScript, Jscript, and Powershell are all covered in a single resource.

Table of Contents

  1. Copyright
  2. About the Authors
  3. About the Technical Editor
  4. Credits
  5. Acknowledgments
  6. Introduction
      1. William R. Stanek
    1. Who Should Read This Book
    2. How This Book Is Organized
      1. Conventions and Features
        1. Source-Code Formatting
    3. What's on the Companion Web site
    4. What You'll Learn from This Book
  7. I. Getting Started with Windows Scripting
    1. 1. Introducing Windows Scripting
      1. 1.1. Introducing Windows Scripting
        1. 1.1.1. Taking a look at Windows Scripting
      2. 1.2. Windows Script Host Architecture
        1. 1.2.1. Getting Started with Windows Script Host
        2. 1.2.2. Using and running scripts
        3. 1.2.3. Core object model
        4. 1.2.4. More on scripting hosts
        5. 1.2.5. More on scripting engines
      3. 1.3. Windows PowerShell Architecture
      4. 1.4. Summary
    2. 2. VBScript Essentials
      1. 2.1. Working with Variables
        1. 2.1.1. Variable naming
        2. 2.1.2. Declaring variables
        3. 2.1.3. Variable types
        4. 2.1.4. Converting variable types
      2. 2.2. Working with Constants
        1. 2.2.1. Using built-in constants
        2. 2.2.2. Declaring constants
      3. 2.3. Working with Arrays
        1. 2.3.1. Initializing arrays
        2. 2.3.2. Using arrays with multiple dimensions
        3. 2.3.3. Sizing arrays
      4. 2.4. VBScript Operators
        1. 2.4.1. Arithmetic operators
        2. 2.4.2. Comparison operators
        3. 2.4.3. Performing operations on strings
      5. 2.5. Conditional Statements
        1. 2.5.1. Using If...Then
        2. 2.5.2. Using Else and ElseIf
        3. 2.5.3. Select Case
        4. 2.5.4. Conditional controls and strings
      6. 2.6. Control Loops
        1. 2.6.1. For Next looping
        2. 2.6.2. For Each looping
        3. 2.6.3. Using Exit For
        4. 2.6.4. Using Do While loops
        5. 2.6.5. Using Do Until loops
        6. 2.6.6. Using Exit Do
        7. 2.6.7. While...WEnd loops
      7. 2.7. Using Procedures
        1. 2.7.1. Working with functions
        2. 2.7.2. Working with subroutines
      8. 2.8. Summary
    3. 3. JScript Essentials
      1. 3.1. Variables and Data Types
        1. 3.1.1. Variables and naming conventions
        2. 3.1.2. Working with data types
      2. 3.2. Using Strings
        1. 3.2.1. Concatenating strings
        2. 3.2.2. Converting to and from strings
      3. 3.3. Using Comments
      4. 3.4. Using Arrays
      5. 3.5. JScript Operators
        1. 3.5.1. Arithmetic operators
        2. 3.5.2. Comparison operators
        3. 3.5.3. Assignment operators
        4. 3.5.4. Logical operators
        5. 3.5.5. Bitwise operators
      6. 3.6. Conditional Statements
        1. 3.6.1. Using if
        2. 3.6.2. Using if...else
      7. 3.7. Control Flow with Looping
        1. 3.7.1. Using for loops
        2. 3.7.2. Using for in loops
        3. 3.7.3. Using while and do while loops
        4. 3.7.4. Using continue and break statements
        5. 3.7.5. Using switch case
      8. 3.8. Using Functions
        1. 3.8.1. Function structure
        2. 3.8.2. Calling functions
      9. 3.9. Summary
    4. 4. PowerShell Fundamentals
      1. 4.1. Shell Fundamentals
      2. 4.2. PowerShell Aliases
      3. 4.3. Cmdlets, Snap-ins, and Providers
      4. 4.4. Functions and Filters
      5. 4.5. Objects and Types and the PowerShell Pipe
      6. 4.6. Exploring PowerShell Variables
      7. 4.7. Richer Types and .NET Objects
      8. 4.8. Arrays
      9. 4.9. The PowerShell Pipe
      10. 4.10. Looping in PowerShell
      11. 4.11. Conditions
      12. 4.12. Scripts, Script Blocks, and Functions
      13. 4.13. Scripts and Security
      14. 4.14. Summary
  8. II. Windows VBScript and JScript
    1. 5. Creating Scripts and Scripting Files
      1. 5.1. Running Scripts
        1. 5.1.1. Starting a Script
        2. 5.1.2. Setting script properties
        3. 5.1.3. Command-line options for scripts
        4. 5.1.4. Using drag and drop with scripts
      2. 5.2. Creating Batch Scripts
        1. 5.2.1. Identifying the job name
        2. 5.2.2. Adding scripts and setting the scripting language
        3. 5.2.3. Setting the script source
        4. 5.2.4. Referencing external objects and type libraries
        5. 5.2.5. Setting job properties
        6. 5.2.6. Setting parsing instructions
        7. 5.2.7. Documentation and Usage
      3. 5.3. Summary
    2. 6. VBScript and JScript Scripting Basics
      1. 6.1. Key WSH Objects
      2. 6.2. Displaying Text Strings
        1. 6.2.1. Using Echo
        2. 6.2.2. Running the Echo script
      3. 6.3. Examining Script Information
        1. 6.3.1. Getting script host information
        2. 6.3.2. Getting scripting information
        3. 6.3.3. Getting script arguments
      4. 6.4. Working with Environment Variables
        1. 6.4.1. Understanding environment variables
        2. 6.4.2. Accessing environment variables
        3. 6.4.3. Working with environment variables: An alternative
      5. 6.5. Running Programs from Within Scripts
        1. 6.5.1. Starting an application
        2. 6.5.2. Passing arguments to an application
        3. 6.5.3. Additional features for Run
      6. 6.6. Running Scripts Remotely
      7. 6.7. Combining JScript and VBScript
      8. 6.8. Summary
    3. 7. Input, Output, and Error Handling with VBScript and JScript
      1. 7.1. Input and Output Essentials
      2. 7.2. Using Input Boxes
        1. 7.2.1. Input box basics
        2. 7.2.2. Setting default values for input boxes
        3. 7.2.3. Positioning input boxes
        4. 7.2.4. Converting input values
      3. 7.3. Using Message Boxes
        1. 7.3.1. Message box basics
        2. 7.3.2. Adding buttons
        3. 7.3.3. Adding icons
        4. 7.3.4. Evaluating button clicks
        5. 7.3.5. Help files for message boxes
        6. 7.3.6. Using pop-up dialog boxes
      4. 7.4. Error Detection and Handling
        1. 7.4.1. Handling runtime errors in VBScript
          1. 7.4.1.1. Preventing runtime errors from halting script execution
          2. 7.4.1.2. Checking for and catching errors in VBScript
          3. 7.4.1.3. Manually generating runtime errors
        2. 7.4.2. Handling runtime errors in JScript
          1. 7.4.2.1. Checking for and catching errors in JScript
          2. 7.4.2.2. Throwing errors
          3. 7.4.2.3. Other error-handling techniques
      5. 7.5. Summary
    4. 8. Working with Files and Folders in VBScript and JScript
      1. 8.1. Understanding the FileSystemObject
        1. 8.1.1. FSO objects and collections
        2. 8.1.2. FSO methods and properties
        3. 8.1.3. Using the FileSystemObject
      2. 8.2. Working with Folders
        1. 8.2.1. Checking folder contents
        2. 8.2.2. Examining folder properties
        3. 8.2.3. Creating folders
        4. 8.2.4. Copying, moving, and deleting folders
        5. 8.2.5. Issues for multiple folders
          1. 8.2.5.1. Using DeleteFolder
          2. 8.2.5.2. Using CopyFolder
          3. 8.2.5.3. Using MoveFolder
        6. 8.2.6. Issues for individual folders
          1. 8.2.6.1. Using Delete
          2. 8.2.6.2. Using Copy
          3. 8.2.6.3. Using Move
      3. 8.3. Using Special Folders
      4. 8.4. Working with Files
        1. 8.4.1. Examining file properties
        2. 8.4.2. Creating files
        3. 8.4.3. Copying, moving, and deleting files
        4. 8.4.4. Issues for multiple files
          1. 8.4.4.1. Using DeleteFile
          2. 8.4.4.2. Using CopyFile
          3. 8.4.4.3. Using MoveFile
        5. 8.4.5. Issues for individual files
          1. 8.4.5.1. Using Delete
          2. 8.4.5.2. Using Copy
          3. 8.4.5.3. Using Move
      5. 8.5. Summary
    5. 9. Reading and Writing Files
      1. 9.1. Opening Files
        1. 9.1.1. Using OpenTextFile
        2. 9.1.2. Using OpenAsTextStream
      2. 9.2. Reading Text Files
        1. 9.2.1. Preparing to read
        2. 9.2.2. Reading characters
        3. 9.2.3. Reading lines
        4. 9.2.4. Reading an entire file
      3. 9.3. Skipping Lines in a File
        1. 9.3.1. Skipping characters
        2. 9.3.2. Skipping lines
      4. 9.4. Writing to a File
        1. 9.4.1. Preparing to write
        2. 9.4.2. Writing characters
        3. 9.4.3. Writing lines
        4. 9.4.4. Writing blank lines
      5. 9.5. Summary
    6. 10. Managing Drives and Printers with VBScript and JScript
      1. 10.1. Managing Drives
      2. 10.2. Obtaining Drive Information
        1. 10.2.1. Checking for a drive
        2. 10.2.2. Using the Drive object
        3. 10.2.3. Examining all drives on a system
      3. 10.3. Mapping Network Drives
        1. 10.3.1. Connecting to a network share
        2. 10.3.2. Disconnecting from a network share
      4. 10.4. Managing Network Printers
        1. 10.4.1. Setting a default printer
        2. 10.4.2. Adding printer connections
        3. 10.4.3. Removing printer connections
      5. 10.5. Summary
    7. 11. Configuring Menus, Shortcuts, and Startup Applications
      1. 11.1. Working with Menus, Desktops, and Startup Applications
      2. 11.2. Creating Shortcuts and Menu Options
        1. 11.2.1. Obtaining a target folder for the shortcut
        2. 11.2.2. Obtaining a shortcut object
        3. 11.2.3. Setting properties for link shortcuts
          1. 11.2.3.1. Setting shortcut arguments
          2. 11.2.3.2. Setting shortcut hotkeys
          3. 11.2.3.3. Setting icon locations
          4. 11.2.3.4. Setting working directories
        4. 11.2.4. Setting properties for URL shortcuts
      3. 11.3. Managing Shortcuts and Menus
        1. 11.3.1. Creating menus
        2. 11.3.2. Accessing and listing menu options
        3. 11.3.3. Updating current shortcuts and menu options
        4. 11.3.4. Deleting shortcuts and menu options
        5. 11.3.5. Deleting menus
      4. 11.4. Adding and Removing Startup Applications
        1. 11.4.1. Adding startup options
        2. 11.4.2. Removing startup options
        3. 11.4.3. Moving startup options
      5. 11.5. Summary
    8. 12. Working with the Windows Registry and Event Logs
      1. 12.1. Working with the Windows Registry
        1. 12.1.1. Understanding the registry structure
        2. 12.1.2. Reading registry keys and values
        3. 12.1.3. Writing registry keys and values
        4. 12.1.4. Creating new keys
        5. 12.1.5. Deleting registry keys and values
        6. 12.1.6. Reconfiguring network services through the registry
          1. 12.1.6.1. Managing WINS through Windows scripts
          2. 12.1.6.2. Managing DHCP through Windows scripts
      2. 12.2. Using Event Logs
        1. 12.2.1. Viewing event logs
        2. 12.2.2. Understanding event entries
        3. 12.2.3. Archiving event logs
      3. 12.3. Writing to Event Logs
        1. 12.3.1. Event logging basics
        2. 12.3.2. Working with the LogEvent method
      4. 12.4. Reading Event Logs
        1. 12.4.1. Introducing Dumpel
        2. 12.4.2. Using Dumpel
        3. 12.4.3. Working with Dumpel in scripts
      5. 12.5. Generating Event Log Reports
        1. 12.5.1. Step 1: Creating the logs
        2. 12.5.2. Step 2: Formatting the logs for viewing
      6. 12.6. Summary
  9. III. Network and Dictionary Service Scripting
    1. 13. Scheduling One-time and Recurring Tasks
      1. 13.1. Scheduling Local and Remote Jobs
        1. 13.1.1. Scheduling basics
        2. 13.1.2. Synchronizing the system time
        3. 13.1.3. Scheduling utilities
      2. 13.2. Using the Graphical Task Scheduler
        1. 13.2.1. Running the wizard
        2. 13.2.2. Viewing wizard tasks
        3. 13.2.3. Changing task properties
      3. 13.3. Scheduling Jobs with AT
        1. 13.3.1. Using the AT Scheduler
        2. 13.3.2. Viewing scheduled AT jobs
        3. 13.3.3. Deleting scheduled AT jobs
      4. 13.4. Scheduling with Scripts
        1. 13.4.1. Using AT in a script
        2. 13.4.2. Automated job creation
        3. 13.4.3. Deleting jobs using scripts
        4. 13.4.4. Creating a scheduling manager script
      5. 13.5. Summary
    2. 14. Managing Computer and User Scripts
      1. 14.1. Why Use Computer and User Scripts?
      2. 14.2. Introducing Group Policies
        1. 14.2.1. How are policies used?
        2. 14.2.2. When are policies applied?
        3. 14.2.3. How are local group policies managed?
        4. 14.2.4. How are global group policies managed?
        5. 14.2.5. Using the policy consoles
      3. 14.3. Working with Computer and User Scripts
        1. 14.3.1. Managing startup and shutdown scripts
        2. 14.3.2. Managing logon and logoff scripts
        3. 14.3.3. Alternatives to group policy
      4. 14.4. Summary
    3. 15. Introducing Active Directory Services Interfaces
      1. 15.1. ADSI Essentials
        1. 15.1.1. Understanding ADSI providers
        2. 15.1.2. Understanding the ADSI architecture
        3. 15.1.3. Binding ADSI objects
      2. 15.2. Taking Advantage of ADSI
        1. 15.2.1. Working with the ADSI LDAP provider
        2. 15.2.2. Working with the ADSI WinNT provider
        3. 15.2.3. Working with the ADSI NDS provider
        4. 15.2.4. Working with the ADSI NWCOMPAT provider
      3. 15.3. ADSI Provider Basics
        1. 15.3.1. Generic object binding
        2. 15.3.2. Handling authentication and security
        3. 15.3.3. Accessing properties and updating objects
          1. 15.3.3.1. Working with IADs Properties
        4. 15.3.4. Working with IADs methods
      4. 15.4. Summary
    4. 16. Using Schema to Master ADSI
      1. 16.1. Exploring ADSI Schema
        1. 16.1.1. The core WinNT object model
        2. 16.1.2. The core LDAP object model
      2. 16.2. Working with Schema Class Objects
        1. 16.2.1. Accessing an object's schema class
        2. 16.2.2. Checking to see if an object is a container
        3. 16.2.3. Examining mandatory and optional properties
      3. 16.3. Viewing Property Syntax, Ranges, and Values
        1. 16.3.1. Accessing the IADsProperty interface
        2. 16.3.2. Examining object properties
      4. 16.4. Summary
    5. 17. Managing Local and Domain Resources with ADSI
      1. 17.1. Managing Domain Account Policies
        1. 17.1.1. Working with domain objects
        2. 17.1.2. Preparing to view and set account policies
        3. 17.1.3. Viewing and setting account policies
          1. 17.1.3.1. Using MinPasswordLength
          2. 17.1.3.2. Using MinPasswordAge and MaxPasswordAge
          3. 17.1.3.3. Using PasswordHistoryLength
          4. 17.1.3.4. Using MaxBadPasswordsAllowed, AutoUnlockInterval, and LockoutObservationInterval
      2. 17.2. Working with Local Computer Properties
      3. 17.3. Creating and Modifying User Accounts
        1. 17.3.1. User properties for WinNT
        2. 17.3.2. Working with user account properties
        3. 17.3.3. Managing user accounts with WinNT
        4. 17.3.4. Creating user accounts with WinNT
        5. 17.3.5. Deleting user accounts with WinNT
        6. 17.3.6. Setting and changing passwords
        7. 17.3.7. Checking group membership
      4. 17.4. Creating and Modifying Group Accounts
        1. 17.4.1. Understanding Windows group types
        2. 17.4.2. Creating groups with WinNT
        3. 17.4.3. Checking group membership
        4. 17.4.4. Adding and removing group members
      5. 17.5. Summary
    6. 18. Service and Resource Administration with ADSI
      1. 18.1. Managing Windows Services
        1. 18.1.1. Using and understanding Windows services
        2. 18.1.2. Working with service objects
        3. 18.1.3. Using service object properties
      2. 18.2. Checking Service Status and Dependencies
      3. 18.3. Viewing and Setting Service Information
      4. 18.4. Starting, Stopping, and Pausing Services
      5. 18.5. Managing Open Resources and User Sessions
        1. 18.5.1. Viewing open files and user sessions
        2. 18.5.2. Viewing resources and sessions in scripts
        3. 18.5.3. Working with Resource and Session objects
      6. 18.6. Summary
    7. 19. Maintaining Shared Directories, Printer Queues, and Print Jobs
      1. 19.1. Working with Shared Folders
        1. 19.1.1. Folder sharing essentials
        2. 19.1.2. Examining shared folders and their properties
        3. 19.1.3. Creating and deleting shared folders
      2. 19.2. Managing Print Queues
        1. 19.2.1. Examining print queues
        2. 19.2.2. Using the PrintQueue object
          1. 19.2.2.1. Using a banner page
          2. 19.2.2.2. Working with general printer information
          3. 19.2.2.3. Prioritizing print queues and print jobs
          4. 19.2.2.4. Scheduling print queue availability
          5. 19.2.2.5. Checking print queue status
        3. 19.2.3. Managing print queues
      3. 19.3. Controlling Print Jobs
        1. 19.3.1. Examining print job properties
        2. 19.3.2. Monitoring print job status
        3. 19.3.3. Pausing and resuming print jobs
      4. 19.4. Summary
    8. 20. Managing Active Directory Domain Extensions
      1. 20.1. Working with Naming Contexts and the RootDSE Object
        1. 20.1.1. Binding to a naming context
        2. 20.1.2. Using RootDSE properties
      2. 20.2. Accessing Active Directory Schema
        1. 20.2.1. Installing and starting ADSI Edit
        2. 20.2.2. Examining the domain-naming context
        3. 20.2.3. Common Active Directory objects
      3. 20.3. Managing Computer Objects with LDAP
        1. 20.3.1. Active Directory computer object properties
        2. 20.3.2. Creating and deleting computer accounts with LDAP
        3. 20.3.3. Moving and renaming computer accounts with LDAP
        4. 20.3.4. Enabling and disabling computer accounts with LDAP
      4. 20.4. Managing Contacts with LDAP
      5. 20.5. Managing Groups with LDAP
        1. 20.5.1. Active Directory group object properties
        2. 20.5.2. Creating groups with LDAP
        3. 20.5.3. Deleting, moving, and renaming groups with LDAP
        4. 20.5.4. Checking group membership with LDAP
        5. 20.5.5. Adding and removing group members with LDAP
      6. 20.6. Working with Organizational Units
        1. 20.6.1. Examining organizational unit properties
        2. 20.6.2. Creating organizational units
        3. 20.6.3. Modifying organizational units
        4. 20.6.4. Moving, renaming, and deleting organizational units
      7. 20.7. Managing User Accounts with LDAP
        1. 20.7.1. Examining user object properties with LDAP
        2. 20.7.2. Creating user accounts with LDAP
        3. 20.7.3. Setting user account flags
        4. 20.7.4. Viewing group membership
        5. 20.7.5. Moving, renaming, and deleting user accounts with LDAP
      8. 20.8. Summary
  10. IV. Windows PowerShell
    1. 21. Input, Output, and Error Handling in PowerShell
      1. 21.1. Output to the Console
      2. 21.2. A Little Diversion into Strings
      3. 21.3. Implicit and Explicit Output
      4. 21.4. Verbose and Debug Output
      5. 21.5. Managing Different Outputs from Cmdlets
      6. 21.6. More on Error Output
      7. 21.7. Session Transcripts
      8. 21.8. Tracking Progress
      9. 21.9. Taking More Control of Formatting
      10. 21.10. Sorting and Selecting Fields
      11. 21.11. Changing How PowerShell Formats Objects
      12. 21.12. Creating Custom Objects on Demand
      13. 21.13. Techniques for Switching in Output
      14. 21.14. Additional Output Cmdlets
      15. 21.15. Outputting in Specific File Formats
      16. 21.16. Every Export Has a Corresponding Import
      17. 21.17. More on Selecting Text
      18. 21.18. User Input
      19. 21.19. Summary
    2. 22. Working with Files and the Registry in PowerShell
      1. 22.1. Using PSDrives, Accessing the File System, Mapping Drives
        1. 22.1.1. Changing (setting) locations
        2. 22.1.2. Getting child items (a.k.a. getting a directory) and testing paths
        3. 22.1.3. Copying, deleting and renaming files
        4. 22.1.4. Creating and deleting directories
        5. 22.1.5. File properties and attributes
        6. 22.1.6. Viewing and setting ACL permissions
        7. 22.1.7. Working with file items: reading their content, creating and adding to them
        8. 22.1.8. Selecting strings and working with text data
        9. 22.1.9. Parsing text
        10. 22.1.10. Working with the Registry
      2. 22.2. Summary
    3. 23. Event Logging, Services, and Process Monitoring with PowerShell
      1. 23.1. Working with Services
      2. 23.2. Starting, Stopping, Suspending, Resuming, and Restarting Services
        1. 23.2.1. Stopping a service
        2. 23.2.2. Starting a service
        3. 23.2.3. Restarting a service
        4. 23.2.4. Suspending and resuming services
        5. 23.2.5. Configuring services
      3. 23.3. Working with Processes
        1. 23.3.1. Starting, finding, and stopping processes
      4. 23.4. Working with Event Logs
        1. 23.4.1. Clearing an event log
        2. 23.4.2. Exporting event logs
        3. 23.4.3. Finding entries in the event log
      5. 23.5. Summary
    4. 24. Working with Active Directory Using ADSI and PowerShell
      1. 24.1. A Quick Introduction to Active Directory
        1. 24.1.1. Directory activities
        2. 24.1.2. Caution
        3. 24.1.3. PowerShell and ADSI
      2. 24.2. Getting Entries from AD with [ADSI]
      3. 24.3. Creating Objects
      4. 24.4. Getting Directory Entries with the Searcher
        1. 24.4.1. It's a date Jim, but not as we know it
        2. 24.4.2. LDAP filters
        3. 24.4.3. Building a library of AD functions
        4. 24.4.4. Finding related entries in AD
      5. 24.5. Operations on Directory Entries
        1. 24.5.1. Creating objects
        2. 24.5.2. Setting single-valued properties
          1. 24.5.2.1. User Account Control flags
          2. 24.5.2.2. Setting passwords
          3. 24.5.2.3. Setting group types
        3. 24.5.3. Adding to (and deleting from) multivalued properties
        4. 24.5.4. Moving and deleting objects
        5. 24.5.5. Testing for the presence of an entry
      6. 24.6. Summary
    5. 25. Working with WMI in PowerShell
      1. 25.1. Displaying WMI Information
      2. 25.2. Querying WMI
        1. 25.2.1. Choosing to how to write the query
        2. 25.2.2. Finding WMI objects by association
        3. 25.2.3. The WMI Type Accelerators
      3. 25.3. Querying Across Computers
        1. 25.3.1. Logging on to the remote computer
      4. 25.4. Discovering WMI Objects
      5. 25.5. WMI Object Properties
      6. 25.6. Updating WMI Objects
      7. 25.7. WMI Object Methods
      8. 25.8. A Case Study for WMI: Server 2008 Hyper-V
      9. 25.9. Summary
  11. V. Windows Scripting Libraries
    1. 26. Library: File-System Utilities
      1. 26.1. Examining the File-System Utility Library
      2. 26.2. Using the File-System Utility Library
        1. 26.2.1. Using GetSubFolders, GetFiles, and GetFolderContents
        2. 26.2.2. Using CheckExists
        3. 26.2.3. Using GetInfo, GetSize, and GetType
        4. 26.2.4. Setting and clearing file attributes
        5. 26.2.5. Working with special folders, shortcuts, and menus
        6. 26.2.6. Managing menu options
        7. 26.2.7. Adding to the desktop and Start menu
        8. 26.2.8. Using NewFolder and NewFile
        9. 26.2.9. Using DeleteFile, DeleteFolder, and DeleteShortcut
      3. 26.3. Summary
    2. 27. Library: I/O Utilities
      1. 27.1. Examining the I/O Utility Library
      2. 27.2. Using the I/O Utility Library
        1. 27.2.1. Handling file I/O with the utility library
        2. 27.2.2. Handling other I/O tasks with the utility library
      3. 27.3. Summary
    3. 28. Library: Network Resource Utilities
      1. 28.1. Examining the Network Resource Utility Library
      2. 28.2. Using the Network Resource Utility Library
        1. 28.2.1. Using GetDriveInfo
        2. 28.2.2. Using CheckFreeSpace
        3. 28.2.3. Using MapDrive
        4. 28.2.4. Working with printers
        5. 28.2.5. Viewing, checking, and managing services
        6. 28.2.6. Using checkRS and viewDetailedRS
        7. 28.2.7. Using viewShareInfo, createShare, and deleteShare
      3. 28.3. Summary
    4. 29. Library: Account Management Utilities
      1. 29.1. Building the Account Management Library
      2. 29.2. Using the Account Management Utilities
        1. 29.2.1. Configuring domain account policies with the library utilities
        2. 29.2.2. Managing groups with the library utilities
        3. 29.2.3. Managing users with the library utilities
        4. 29.2.4. Managing computers with the library utilities
        5. 29.2.5. Functions for renaming and moving accounts
      3. 29.3. Summary
    5. 30. Library: Building a PowerShell Library
      1. 30.1. Customizing Your PowerShell Environment
        1. 30.1.1. Exploring the PowerShell host
        2. 30.1.2. The PowerShell prompt
        3. 30.1.3. Adding more to the environment
      2. 30.2. A Generic "choose" Function
      3. 30.3. Network Utilities
        1. 30.3.1. Finding network adapters
        2. 30.3.2. Get-Ipconfig
        3. 30.3.3. Ping
      4. 30.4. Clever Uses for Hash Tables
      5. 30.5. COM Objects: A Firewall Tool
      6. 30.6. Using .NET Objects to Access Mail and Web Services
        1. 30.6.1. Sending mail
        2. 30.6.2. Using the Web client object and XML
      7. 30.7. Regular Expressions
      8. 30.8. More Advanced Text Processing—Discovering Script Dependencies
      9. 30.9. Scripts or Fuctions: Checking How a Script Was Invoked
      10. 30.10. Summary
  12. VI. Appendixes
    1. A. Windows Scripting API
      1. A.1. XML Elements
        1. A.1.1. <?XML ?>
        2. A.1.2. <runtime>
          1. A.1.2.1. <description>
          2. A.1.2.2. <example>
          3. A.1.2.3. <usage>
          4. A.1.2.4. <named>
          5. A.1.2.5. <unnamed>
        3. A.1.3. <package>
        4. A.1.4. <job>
          1. A.1.4.1. <?job ?>
          2. A.1.4.2. <object>
          3. A.1.4.3. <reference>
          4. A.1.4.4. <resource>
          5. A.1.4.5. <script>
      2. A.2. getResource Static Method
        1. A.2.1. Usage: VBScript
        2. A.2.2. Usage: JScript
      3. A.3. Drives Collection
        1. A.3.1. Creating: VBScript
        2. A.3.2. Creating: JScript
        3. A.3.3. Properties
      4. A.4. Printers Collection
        1. A.4.1. Creating: VBScript
        2. A.4.2. Creating: JScript
        3. A.4.3. Properties
      5. A.5. StdIn Stream*
        1. A.5.1. Creating
        2. A.5.2. Methods
        3. A.5.3. Properties
      6. A.6. StdErr Stream*
        1. A.6.1. Creating
        2. A.6.2. Methods
      7. A.7. StdOut Stream*
        1. A.7.1. Creating
        2. A.7.2. Methods
      8. A.8. WshArguments Collection
        1. A.8.1. Creating
        2. A.8.2. Methods
        3. A.8.3. Properties
      9. A.9. WshNamed Collection
        1. A.9.1. Creating
        2. A.9.2. Method
        3. A.9.3. Properties
      10. A.10. WshUnnamed Collection
        1. A.10.1. Creating
        2. A.10.2. Method
        3. A.10.3. Properties
      11. A.11. Script.Signer Object
        1. A.11.1. Creating
        2. A.11.2. Method
      12. A.12. WScript Object
        1. A.12.1. Creating
        2. A.12.2. Methods
        3. A.12.3. Properties
      13. A.13. WshController Object
        1. A.13.1. Creating
        2. A.13.2. Method
      14. A.14. WshEnvironment Object
        1. A.14.1. Creating: VBScript
        2. A.14.2. Creating: JScript
        3. A.14.3. Methods
        4. A.14.4. Properties
      15. A.15. WshNetwork Object
        1. A.15.1. Creating
        2. A.15.2. Methods
        3. A.15.3. Properties
      16. A.16. WshRemote Object
        1. A.16.1. Creating: VBScript
        2. A.16.2. Creating: JScript
        3. A.16.3. Methods
        4. A.16.4. Properties
        5. A.16.5. Events
      17. A.17. WshRemoteError Object
        1. A.17.1. Properties
      18. A.18. WshScriptExec Object
        1. A.18.1. Creating: VBScript
        2. A.18.2. Creating: JScript
        3. A.18.3. Methods
        4. A.18.4. Properties
      19. A.19. WshShell Object
        1. A.19.1. Creating
        2. A.19.2. Methods
        3. A.19.3. Properties
      20. A.20. WshShortcut Object
        1. A.20.1. Creating: VBScript
        2. A.20.2. Creating: JScript
        3. A.20.3. Methods
        4. A.20.4. Properties
      21. A.21. WshSpecialFolders Object
        1. A.21.1. Creating: VBScript
        2. A.21.2. Creating: JScript
        3. A.21.3. Method
        4. A.21.4. Properties
      22. A.22. WshUrlShortcut Object
        1. A.22.1. Creating: VBScript
        2. A.22.2. Creating: JScript
        3. A.22.3. Methods
        4. A.22.4. Properties
    2. B. Core ADSI Reference
      1. B.1. Using This Reference
      2. B.2. ADSI Interfaces
        1. B.2.1. IADs
          1. B.2.1.1. Properties
            1. B.2.1.1.1. AdsPath
            2. B.2.1.1.2. Class
            3. B.2.1.1.3. GUID
            4. B.2.1.1.4. Name
            5. B.2.1.1.5. Parent
            6. B.2.1.1.6. Schema
          2. B.2.1.2. Methods
            1. B.2.1.2.1. Get("propertyName")
            2. B.2.1.2.2. GetEx("propertyName")
            3. B.2.1.2.3. GetInfo()
            4. B.2.1.2.4. GetInfoEx("propertyName")
            5. B.2.1.2.5. Put("propertyName", valueString)
            6. B.2.1.2.6. PutEx(Flag, "propertyName", valueArray)
            7. B.2.1.2.7. SetInfo()
        2. B.2.2. IADsAcl
          1. B.2.2.1. Properties
            1. B.2.2.1.1. Privileges
            2. B.2.2.1.2. ProtectedAttrName
            3. B.2.2.1.3. SubjectName
          2. B.2.2.2. Method
            1. B.2.2.2.1. CopyAcl()
        3. B.2.3. IADsADSystemInfo
          1. B.2.3.1. Properties
            1. B.2.3.1.1. ComputerName
            2. B.2.3.1.2. DomainDNSName
            3. B.2.3.1.3. DomainShortName
            4. B.2.3.1.4. ForestDNSName
            5. B.2.3.1.5. IsNativeMode
            6. B.2.3.1.6. PDCRoleOwner
            7. B.2.3.1.7. SchemaRoleOwner
            8. B.2.3.1.8. SiteName
            9. B.2.3.1.9. UserName
          2. B.2.3.2. Method
            1. B.2.3.2.1. GetAnyDCName()
            2. B.2.3.2.2. GetDCSiteName()
            3. B.2.3.2.3. RefreshSchemaCache()
            4. B.2.3.2.4. GetTrees()
        4. B.2.4. IADsBackLink
          1. B.2.4.1. Properties
            1. B.2.4.1.1. ObjectName
            2. B.2.4.1.2. RemoteID
        5. B.2.5. IADsCaseIgnoreList
          1. B.2.5.1. Property
            1. B.2.5.1.1. CaseIgnoreList
        6. B.2.6. IADsClass
          1. B.2.6.1. Properties
            1. B.2.6.1.1. Abstract
            2. B.2.6.1.2. AuxDerivedFrom
            3. B.2.6.1.3. Auxiliary
            4. B.2.6.1.4. CLSID
            5. B.2.6.1.5. Container
            6. B.2.6.1.6. Containment
            7. B.2.6.1.7. DerivedFrom
            8. B.2.6.1.8. HelpFileContext
            9. B.2.6.1.9. HelpFileName
            10. B.2.6.1.10. MandatoryProperties
            11. B.2.6.1.11. NamingProperties
            12. B.2.6.1.12. OID
            13. B.2.6.1.13. OptionalProperties
            14. B.2.6.1.14. PossibleSuperiors
            15. B.2.6.1.15. PrimaryInterface
          2. B.2.6.2. Method
            1. B.2.6.2.1. Qualifiers()
        7. B.2.7. IADsCollection
          1. B.2.7.1. Methods
            1. B.2.7.1.1. Add(Object)
            2. B.2.7.1.2. Remove(Object)
            3. B.2.7.1.3. GetObject(Object)
        8. B.2.8. IADsComputer
          1. B.2.8.1. Properties
            1. B.2.8.1.1. ComputerID
            2. B.2.8.1.2. Department
            3. B.2.8.1.3. Description
            4. B.2.8.1.4. Division
            5. B.2.8.1.5. Location
            6. B.2.8.1.6. MemorySize
            7. B.2.8.1.7. Model
            8. B.2.8.1.8. NetAddresses
            9. B.2.8.1.9. OperatingSystem
            10. B.2.8.1.10. OperatingSystemVersion
            11. B.2.8.1.11. Owner
            12. B.2.8.1.12. PrimaryUser
            13. B.2.8.1.13. Processor
            14. B.2.8.1.14. ProcessorCount
            15. B.2.8.1.15. Role
            16. B.2.8.1.16. Site
            17. B.2.8.1.17. StorageCapacity
        9. B.2.9. IADsComputerOperations
          1. B.2.9.1. Methods
            1. B.2.9.1.1. Shutdown("rebootFlag")
            2. B.2.9.1.2. Status()
        10. B.2.10. IADsContainer
          1. B.2.10.1. Properties
            1. B.2.10.1.1. Count
            2. B.2.10.1.2. Filter
            3. B.2.10.1.3. Hints
          2. B.2.10.2. Methods
            1. B.2.10.2.1. CopyHere("AdsPath","newName")
            2. B.2.10.2.2. Create("objectClass","relativeName")
            3. B.2.10.2.3. Delete("objectClass","relativeName")
            4. B.2.10.2.4. GetObject("objectClass","relativeName")
            5. B.2.10.2.5. MoveHere("AdsPathToObject","relativeName")
        11. B.2.11. IADsDeleteOps
          1. B.2.11.1. Method
            1. B.2.11.1.1. DeleteObject(Flag)
        12. B.2.12. IADsDomain
          1. B.2.12.1. Properties
            1. B.2.12.1.1. AutoUnlockInterval
            2. B.2.12.1.2. IsWorkgroup
            3. B.2.12.1.3. LockoutObservationInterval
            4. B.2.12.1.4. MaxBadPasswordsAllowed
            5. B.2.12.1.5. MaxPasswordAge
            6. B.2.12.1.6. MinPasswordAge
            7. B.2.12.1.7. MinPasswordLength
            8. B.2.12.1.8. PasswordAttributes
            9. B.2.12.1.9. PasswordHistoryLength
        13. B.2.13. IADsEmail
          1. B.2.13.1. Properties
            1. B.2.13.1.1. Address
            2. B.2.13.1.2. Type
        14. B.2.14. IADsExtension
        15. B.2.15. IADsFaxNumber
          1. B.2.15.1. Properties
            1. B.2.15.1.1. Parameters
            2. B.2.15.1.2. TelephoneNumber
        16. B.2.16. IADsFileService
          1. B.2.16.1. Properties
            1. B.2.16.1.1. Description
            2. B.2.16.1.2. MaxUserCount
        17. B.2.17. IADsFileServiceOperations
          1. B.2.17.1. Methods
            1. B.2.17.1.1. Resources()
            2. B.2.17.1.2. Sessions()
        18. B.2.18. IADsFileShare
          1. B.2.18.1. Properties
            1. B.2.18.1.1. CurrentUserCount
            2. B.2.18.1.2. Description
            3. B.2.18.1.3. HostComputer
            4. B.2.18.1.4. Path
            5. B.2.18.1.5. MaxUserCount
        19. B.2.19. IADsGroup
          1. B.2.19.1. Property
            1. B.2.19.1.1. Description
          2. B.2.19.2. Methods
            1. B.2.19.2.1. Add("AdsPathString")
            2. B.2.19.2.2. IsMember("AdsPathString")
            3. B.2.19.2.3. Members("AdsPathString")
            4. B.2.19.2.4. Remove("AdsPathString")
        20. B.2.20. IADsHold
          1. B.2.20.1. Properties
            1. B.2.20.1.1. Amount
            2. B.2.20.1.2. ObjectName
        21. B.2.21. IADsLargeInteger
          1. B.2.21.1. Properties
            1. B.2.21.1.1. HighPart
            2. B.2.21.1.2. LowPart
        22. B.2.22. IADsLocality
          1. B.2.22.1. Properties
            1. B.2.22.1.1. Description
            2. B.2.22.1.2. LocalityName
            3. B.2.22.1.3. PostalAddress
            4. B.2.22.1.4. SeeAlso
        23. B.2.23. IADsMembers
          1. B.2.23.1. Properties
            1. B.2.23.1.1. Count
            2. B.2.23.1.2. Filter
        24. B.2.24. IADsNamespaces
          1. B.2.24.1. Property
            1. B.2.24.1.1. DefaultContainer
        25. B.2.25. IADsNetAddress
          1. B.2.25.1. Properties
            1. B.2.25.1.1. Address
            2. B.2.25.1.2. AddressType
        26. B.2.26. IADsO
          1. B.2.26.1. Properties
            1. B.2.26.1.1. Description
            2. B.2.26.1.2. FaxNumber
            3. B.2.26.1.3. LocalityName
            4. B.2.26.1.4. PostalAddress
            5. B.2.26.1.5. SeeAlso
            6. B.2.26.1.6. TelephoneNumber
        27. B.2.27. IADsObjectOptions
          1. B.2.27.1. Methods
            1. B.2.27.1.1. GetOption(optionConstantOrValue)
            2. B.2.27.1.2. SetOption(optionConstantOrValue, integerValue)
        28. B.2.28. IADsOctetList
          1. B.2.28.1. Property
            1. B.2.28.1.1. OctetList
        29. B.2.29. IADsOpenDSObject
          1. B.2.29.1. Method
            1. B.2.29.1.1. OpenDSObject(ADSPath, UserID, Password, Flags)
        30. B.2.30. IADsOU
          1. B.2.30.1. Properties
            1. B.2.30.1.1. BusinessCategory
            2. B.2.30.1.2. Description
            3. B.2.30.1.3. FaxNumber
            4. B.2.30.1.4. LocalityName
            5. B.2.30.1.5. PostalAddress
            6. B.2.30.1.6. SeeAlso
            7. B.2.30.1.7. TelephoneNumber
        31. B.2.31. IADsPath
          1. B.2.31.1. Properties
            1. B.2.31.1.1. Path
            2. B.2.31.1.2. Type
            3. B.2.31.1.3. VolumeName
        32. B.2.32. IADsPathname
          1. B.2.32.1. Property
            1. B.2.32.1.1. EscapedMode
          2. B.2.32.2. Methods
            1. B.2.32.2.1. AddLeafElement("leafElement")
            2. B.2.32.2.2. CopyPath()
            3. B.2.32.2.3. GetElement(index)
            4. B.2.32.2.4. GetEscapedElement(number,stringToEscape)
            5. B.2.32.2.5. GetNumElements()
            6. B.2.32.2.6. RemoveLeafElement()
            7. B.2.32.2.7. Retrieve(formatType)
            8. B.2.32.2.8. Set("AdsPath",optionType)
            9. B.2.32.2.9. SetDisplayType(displayType)
        33. B.2.33. IADsPostalAddress
          1. B.2.33.1. Properties
            1. B.2.33.1.1. PostalAddress
        34. B.2.34. IADsPrintJob
          1. B.2.34.1. Properties
            1. B.2.34.1.1. Description
            2. B.2.34.1.2. HostPrintQueue
            3. B.2.34.1.3. Notify
            4. B.2.34.1.4. NotifyPath
            5. B.2.34.1.5. Priority
            6. B.2.34.1.6. Size
            7. B.2.34.1.7. StartTime
            8. B.2.34.1.8. TimeSubmitted
            9. B.2.34.1.9. TotalPages
            10. B.2.34.1.10. UntilTime
            11. B.2.34.1.11. User
            12. B.2.34.1.12. UserPath
        35. B.2.35. IADsPrintJobOperations
          1. B.2.35.1. Properties
            1. B.2.35.1.1. PagesPrinted
            2. B.2.35.1.2. Position
            3. B.2.35.1.3. Status
            4. B.2.35.1.4. TimeElapsed
          2. B.2.35.2. Methods
            1. B.2.35.2.1. Pause()
            2. B.2.35.2.2. Resume()
        36. B.2.36. IADsPrintQueue
          1. B.2.36.1. Properties
            1. B.2.36.1.1. BannerPage
            2. B.2.36.1.2. Datatype
            3. B.2.36.1.3. DefaultJobPriority
            4. B.2.36.1.4. Description
            5. B.2.36.1.5. Location
            6. B.2.36.1.6. Model
            7. B.2.36.1.7. NetAddresses
            8. B.2.36.1.8. PrintDevices
            9. B.2.36.1.9. PrinterPath
            10. B.2.36.1.10. PrintProcessor
            11. B.2.36.1.11. Priority
            12. B.2.36.1.12. StartTime
            13. B.2.36.1.13. UntilTime
        37. B.2.37. IADsPrintQueueOperations
          1. B.2.37.1. Property
            1. B.2.37.1.1. Status
          2. B.2.37.2. Methods
            1. B.2.37.2.1. Pause()
            2. B.2.37.2.2. PrintJobs()
            3. B.2.37.2.3. Purge()
            4. B.2.37.2.4. Resume()
        38. B.2.38. IADsProperty
          1. B.2.38.1. Properties
            1. B.2.38.1.1. MaxRange
            2. B.2.38.1.2. MinRange
            3. B.2.38.1.3. MultiValued
            4. B.2.38.1.4. OID
            5. B.2.38.1.5. Syntax
          2. B.2.38.2. Method
            1. B.2.38.2.1. Qualifiers()
        39. B.2.39. IADsPropertyEntry
          1. B.2.39.1. Properties
            1. B.2.39.1.1. ADS_Type
            2. B.2.39.1.2. ControlCode
            3. B.2.39.1.3. Name
            4. B.2.39.1.4. Values
        40. B.2.40. IADsPropertyList
          1. B.2.40.1. Property
            1. B.2.40.1.1. PropertyCount
          2. B.2.40.2. Methods
            1. B.2.40.2.1. GetPropertyItem("propertyName",propertyTypeConstant)
            2. B.2.40.2.2. Item(propertyNameOrIndex)
            3. B.2.40.2.3. Next()
            4. B.2.40.2.4. PurgePropertyList()
            5. B.2.40.2.5. PutPropertyItem(propertyEntry)
            6. B.2.40.2.6. Reset()
            7. B.2.40.2.7. ResetPropertyItem(propertyNameOrIndex)
            8. B.2.40.2.8. Skip(numberToSkip)
        41. B.2.41. IADsPropertyValue
          1. B.2.41.1. Properties
            1. B.2.41.1.1. ADsType
            2. B.2.41.1.2. Boolean
            3. B.2.41.1.3. CaseExactString
            4. B.2.41.1.4. CaseIgnoreString
            5. B.2.41.1.5. DNString
            6. B.2.41.1.6. Integer
            7. B.2.41.1.7. LargeInteger
            8. B.2.41.1.8. NumericString
            9. B.2.41.1.9. OctetString
            10. B.2.41.1.10. PrintableString
            11. B.2.41.1.11. SecurityDescriptor
            12. B.2.41.1.12. UTCTime
          2. B.2.41.2. Method
            1. B.2.41.2.1. Clear()
        42. B.2.42. IADsPropertyValue2
          1. B.2.42.1. Properties
            1. B.2.42.1.1. GetObjectProperty
            2. B.2.42.1.2. PutObjectProperty
        43. B.2.43. IADsReplicaPointer
          1. B.2.43.1. Properties
            1. B.2.43.1.1. Count
            2. B.2.43.1.2. ReplicaAddressHints
            3. B.2.43.1.3. ReplicaNumber
            4. B.2.43.1.4. ReplicaType
            5. B.2.43.1.5. ServerName
        44. B.2.44. IADsResource
          1. B.2.44.1. Properties
            1. B.2.44.1.1. LockCount
            2. B.2.44.1.2. Path
            3. B.2.44.1.3. User
            4. B.2.44.1.4. UserPath
        45. B.2.45. IADsSession
          1. B.2.45.1. Properties
            1. B.2.45.1.1. Computer
            2. B.2.45.1.2. ComputerPath
            3. B.2.45.1.3. ConnectTime
            4. B.2.45.1.4. IdleTime
            5. B.2.45.1.5. User
            6. B.2.45.1.6. UserPath
        46. B.2.46. IADsService
          1. B.2.46.1. Properties
            1. B.2.46.1.1. Dependencies
            2. B.2.46.1.2. DisplayName
            3. B.2.46.1.3. ErrorControl
            4. B.2.46.1.4. HostComputer
            5. B.2.46.1.5. LoadOrderGroup
            6. B.2.46.1.6. Path
            7. B.2.46.1.7. ServiceAccountName
            8. B.2.46.1.8. ServiceAccountPath
            9. B.2.46.1.9. ServiceType
            10. B.2.46.1.10. StartType
            11. B.2.46.1.11. StartupParameters
            12. B.2.46.1.12. Version
        47. B.2.47. IADsServiceOperations
          1. B.2.47.1. Property
            1. B.2.47.1.1. Status
          2. B.2.47.2. Methods
            1. B.2.47.2.1. Start()
            2. B.2.47.2.2. Stop()
            3. B.2.47.2.3. Pause()
            4. B.2.47.2.4. Continue()
            5. B.2.47.2.5. SetPassword("newPassword")
        48. B.2.48. IADsSyntax
          1. B.2.48.1. Property
            1. B.2.48.1.1. OleAutoDataType
        49. B.2.49. IADsTimestamp
          1. B.2.49.1.
            1. B.2.49.1.1. EventID
            2. B.2.49.1.2. WholeSeconds
        50. B.2.50. IADsTypedName
          1. B.2.50.1. Properties
            1. B.2.50.1.1. Interval
            2. B.2.50.1.2. Level
            3. B.2.50.1.3. ObjectName
        51. B.2.51. IADsUser
          1. B.2.51.1. Properties
            1. B.2.51.1.1. AccountDisabled
            2. B.2.51.1.2. AccountExpirationDate
            3. B.2.51.1.3. BadLoginAddress
            4. B.2.51.1.4. BadLoginCount
            5. B.2.51.1.5. Department
            6. B.2.51.1.6. Description
            7. B.2.51.1.7. Division
            8. B.2.51.1.8. EmailAddress
            9. B.2.51.1.9. EmployeeID
            10. B.2.51.1.10. FaxNumber
            11. B.2.51.1.11. FirstName
            12. B.2.51.1.12. FullName
            13. B.2.51.1.13. GraceLoginsAllowed
            14. B.2.51.1.14. GraceLoginsRemaining
            15. B.2.51.1.15. HomeDirectory
            16. B.2.51.1.16. HomePage
            17. B.2.51.1.17. IsAccountLocked
            18. B.2.51.1.18. Languages
            19. B.2.51.1.19. LastFailedLogin
            20. B.2.51.1.20. LastLogin
            21. B.2.51.1.21. LastLogoff
            22. B.2.51.1.22. LastName
            23. B.2.51.1.23. LoginHours
            24. B.2.51.1.24. LoginScript
            25. B.2.51.1.25. LoginWorkstations
            26. B.2.51.1.26. Manager
            27. B.2.51.1.27. MaxLogins
            28. B.2.51.1.28. MaxStorage
            29. B.2.51.1.29. NamePrefix
            30. B.2.51.1.30. NameSuffix
            31. B.2.51.1.31. OfficeLocations
            32. B.2.51.1.32. OtherName
            33. B.2.51.1.33. PasswordExpirationDate
            34. B.2.51.1.34. PasswordLastChanged
            35. B.2.51.1.35. PasswordMinimumLength
            36. B.2.51.1.36. PasswordRequired
            37. B.2.51.1.37. Picture
            38. B.2.51.1.38. PostalAddresses
            39. B.2.51.1.39. PostalCodes
            40. B.2.51.1.40. Profile
            41. B.2.51.1.41. RequireUniquePassword
            42. B.2.51.1.42. SeeAlso
            43. B.2.51.1.43. TelephoneHome
            44. B.2.51.1.44. TelephoneMobile
            45. B.2.51.1.45. TelephoneNumber
            46. B.2.51.1.46. TelephonePager
            47. B.2.51.1.47. Title
          2. B.2.51.2. Methods
            1. B.2.51.2.1. ChangePassword("oldPassword","newPassword")
            2. B.2.51.2.2. Groups()
            3. B.2.51.2.3. SetPassword("password")
        52. B.2.52. IDirectoryObject
        53. B.2.53. IDirectorySearch
      3. B.3. ADSI Error Codes
    3. C. Essential Command-Line Utilities for Use with WSH
      1. C.1. ARP
        1. C.1.1. Details:
      2. C.2. ASSOC
        1. C.2.1. Details:
      3. C.3. AT
        1. C.3.1. Details:
      4. C.4. ATTRIB
        1. C.4.1. Details:
      5. C.5. CACLS
        1. C.5.1. Details:
      6. C.6. CHKDSK
        1. C.6.1. Details:
      7. C.7. COMPACT
        1. C.7.1. Details:
      8. C.8. CONVERT
        1. C.8.1. Details:
      9. C.9. DATE
        1. C.9.1. Details:
      10. C.10. DRIVERQUERY
        1. C.10.1. Details:
      11. C.11. EXPAND
        1. C.11.1. Details:
      12. C.12. FC
        1. C.12.1. Details:
      13. C.13. FORMAT
        1. C.13.1. Details:
      14. C.14. FTP
        1. C.14.1. Details:
      15. C.15. FTYPE
        1. C.15.1. Details:
      16. C.16. IPCONFIG
        1. C.16.1. Details:
      17. C.17. NBTSTAT
        1. C.17.1. Details:
      18. C.18. NET ACCOUNTS
        1. C.18.1. Details:
      19. C.19. NET COMPUTER
        1. C.19.1. Details:
      20. C.20. NET CONFIG SERVER
        1. C.20.1. Details:
      21. C.21. NET CONFIG WORKSTATION
        1. C.21.1. Details:
      22. C.22. NET CONTINUE
        1. C.22.1. Details:
      23. C.23. NET FILE
        1. C.23.1. Details:
      24. C.24. NET GROUP
        1. C.24.1. Details:
      25. C.25. NET LOCALGROUP
        1. C.25.1. Details:
      26. C.26. NET PAUSE
        1. C.26.1. Details:
      27. C.27. NET PRINT
        1. C.27.1. Details:
      28. C.28. NET SESSION
        1. C.28.1. Details:
      29. C.29. NET SHARE
        1. C.29.1. Details:
      30. C.30. NET START
        1. C.30.1. Details:
      31. C.31. NET STATISTICS
        1. C.31.1. Details:
      32. C.32. NET STOP
        1. C.32.1. Details:
      33. C.33. NET TIME
        1. C.33.1. Details:
      34. C.34. NET USE
        1. C.34.1. Details:
      35. C.35. NET USER
        1. C.35.1. Options:
        2. C.35.2. Details:
      36. C.36. NET VIEW
        1. C.36.1. Details:
      37. C.37. NETSTAT
        1. C.37.1. Details:
      38. C.38. NSLOOKUP
        1. C.38.1. Details:
      39. C.39. PATH
        1. C.39.1. Details:
      40. C.40. PING
        1. C.40.1. Details:
      41. C.41. RECOVER
        1. C.41.1. Details:
      42. C.42. ROUTE
        1. C.42.1. Details:
      43. C.43. SCHTASKS
        1. C.43.1. Details:
      44. C.44. TIME
        1. C.44.1. Details:
      45. C.45. TRACERT
        1. C.45.1. Details: