Command-line control of Terminal Services

Download Report

Transcript Command-line control of Terminal Services

Command-line control of
Terminal Services
Christa Anderson
Webcast Schedule
Today’s event will run one-hour long. Here are the expected times
for each segment of the Webcast:
•:00 – :05: Moderator introduces the speaker and discusses the
details of the Webcast.
•:05- :25: Speaker delivers a PowerPoint presentation on the
Webcast topic.
•:25- :35: Moderator and speaker engage in a brief Q&A on the
topic
•:35- :60: The speaker responds to questions submitted by the
audience.
You can submit questions to the speaker at any time during
the event. Just click on the “Ask a Question” button in the lower
left corner of your screen.
Technical FAQs
Q: Why can’t I hear the audio part of the webcast?
A: Try increasing the volume on your computer.
Q: I just entered the webcast and do not see the slide that the speaker is referring to.
What should I do?
A: The slides are constantly be pushed to your screen. You’ll should refresh (hit
F5) to view the latest slide.
Q: What time zone do the webcasts take place?
A: The TechTarget webcasts all occur on Eastern Daylight Saving Time
(UTC/GMT - 4 hours).
Q. I can’t view some of the detail on the slides. How do I enlarge the slides for a
better view?
A: Click the “Enlarge slide” link in the upper right corner of your presentation.
This will open a new browser with a full view of the current slide.
You can also visit the Broadcast Help page for more information or to test your
browser compatibility. Click here: http://audience.broadcast.yahoo.com
Agenda
 Why
is command-line editing useful?
 What tools are available for commandline editing?
 Using TSCMD.EXE for simple
configuration
 Using WMI and VBScript for more
advanced configuration
Why Command-Line Editing?
 Editing
settings from the GUI is timeconsuming on more than a few servers
 Command-line edits can be scripted
and are therefore more consistent.
 Command-line edits don’t need to be
done either at the console or by using a
TSCAL to connect to the terminal server
to be edited
What Tools Are Available?
 Command-line
configuration tools in
Terminal Services
 TSCMD.EXE
 The new WMI provider for Terminal
Services
Using TSCMD

Command-line support for common Terminal
Services settings, based on a WTS API
 Requires Windows 2000 or later on client and
server
 Edit the settings on the server where the
settings are stored (e.g., domain controller)
 Basic TSCMD syntax:
tscmd <Server> <User> <Setting>
[New Value]
Using TSCMD.EXE

Works across the network
 Point it to the terminal server and user
account you need to configure
 Returns net error messages, so if you get an
error run net help to troubleshoot
 Settings take place immediately for the next
user session—no need to reboot.
 To make TSCMD.EXE report existing
settings, run the command with no new value
TSCMD.EXE Settings
InitialProgram
WorkingDirectory
InheritInitialProgram
AllowLogonTerminalServer
TimeoutConnection
TimeoutDisconnect
TimeoutIdle
DeviceClientDrives
DeviceClientPrinters
DeviceClientDefaultPrinter
BrokenTimeoutSettings
ReconnectSettings
ModemCallbackSettings
ModemCallbackPhoneNumber
ShadowingSettings
TerminalServerProfilePath
TerminalServerHomeDir
TerminalServerHomeDirDrive
Disabling User Access
tscmd sandworm scott allowlogonterminalserver 0
Editing Remote Control
Settings
tscmd sandworm scott shadowingsettings 1
Configuring Printer Settings
tscmd sandworm scott deviceclientprinters 1
tscmd sandworm scott deviceclientdefaultprinter 1
Configuring Timeouts and
Reconnects
tscmd sandworm scott timeoutconnection 100
tscmd sandworm scott timeoutdisconnect 200
tscmd sandworm scott timeoutidle 120
Starting a Program in the
Session
tscmd sandworm scott initialprogram “wordpad.exe"
tscmd sandworm scott workingdirectory c:
tscmd sandworm scott inheritinitialprogram 0
Limitations to TSCMD.EXE
 Functions
on a per-user and per-server
basis only
 Not all settings exposed through this
API
 Requires the person running the
command to be an administrator
 Very limited error reporting
 No built-in event logging
Using VBScript to Edit
Settings
 The
Windows Scripting Host allows you
to run VBScript from within the
operating system
 Windows Server 2003 has a new WMI
provider that allows you to edit settings
programmatically, using VBScript
What can VBScript Do that
TSCMD can’t?

Here’s a short list:





Configure color depth for the session
Adjust mandatory encryption settings
Define the session directory location
Configure Time Zone redirection
Disadvantage: it takes longer to learn.
Knowing TSCMD can be helpful for learning
some values edited through WMI
Parts of a Script
 Actions
you can take
 Things you can act on
 Statements defining the conditions
under which you’ll take those actions
Data Types
 Numbers
 Strings
 Date/Time
data
 Boolean values
Variables and Constants
 Both
have assigned values—user input,
object properties, or calculations from
another part of the script
 Variable values may change in the
course of the script
 Constant values do not change
Arrays

Groups of variables, as many as you like
when you define the array


Array sizes may be static or dynamic
Can contain any data type: numbers, strings,
date/time information, etc.
 Find data by its index number (beginning with
0)
 Arrays may have more than one index, but
more than two gets confusing
Built-in Functions

Combined sets of instructions for doing things
that are hard to do with the operators
supported in VBScript
 Several different kinds






String functions
Date and time functions
Array functions
Working-with data types functions
Mathematical functions
Other functions (InputBox, MsgBox)
String Functions
 Character/ANSI
conversion and
checking
 String Size
 String Editing
 Replacing text in a string
Date and Time Functions
 Returning
date and time information
 Converting string data to a date/time
 Returning and computing the date and
time
Numeric Functions
 General
mathematical functions
 Rounding functions
 Random number generators
Array Functions
 Join
merges arrays
 Split divides arrays
Functions for Working with
Data
 Determining
data type
 Conversion functions
 Formatting
Other Functions
 Input
and output boxes
 Error handling/notification
 Determining engine version
Statements
 If…
Then
 Select Case
 Do… Loop
 For… Next
Basics of WMI

WMI exposes underlying parts of the
operating system to scripting languages such
as VBScript. If a part is exposed, it’s said to
have a provider.
 You cannot access settings without a
provider.
 To edit a setting on a remote computer, that
computer must support WMI and must have
the provider the script refers to.
Terminal Services Support in
WMI

The provider exposes TS-specific structures,
including:





Sessions
Session environments
Remote control settings
Logon settings
To edit the settings, you enumerate the
instances of these objects on the selected
server
ADSI Objects
To get to the servers, you’ll often use ADSI
 Any object found in a directory structure




User accounts, organizational units, domains,
printers
Uses same property and method structure as WMI
or file system objects
Not limited to Active Directory—works also for
SAM and NDS—but namespace and syntax
varies with the type of information you need
Key ASDI Functions and
Methods
 GetObject
function connects to an
object so you can access its properties
and methods
 GetInfo queries the directory structure
and repopulates the local cache
 Put sets a property in the local cache
 SetInfo writes the cached value to the
original object
Running a Script on Multiple
Servers
 Connect
to the OU in which all terminal
servers reside and run the script on all
members of that OU
 Store the names of all terminal servers
in a file and input that file into the script
 Accept server names as arguments to
the script
Scripting Tips
Keep
the lines in scripts short
Comment
liberally
Mix
case in your code to enhance readability
Use
the WSH command-line environment
Name
variables and constants according to
data type
Explicitly
Write
define variables
scripts in a text editor
Summary
 Use
command-line tools to edit terminal
settings more quickly and consistently
 TSCMD.EXE for basic configuration
 VBScript and WMI for more complex
settings (Windows Server 2003 only)
Need More Information?

TSCMD.EXE is a free download from
http://www.systemtools.com/free_frame.htm
 Brief user guide to TSCMD.EXE at
http://www.termservhub.com
 My “Scripting Solutions” column in Windows
and .NET Magazine offers step-by-step
explanations of VBScript, WMI, and ADSI
 Check out Microsoft’s script center at
http://www.microsoft.com/technet/treeview/def
ault.asp?url=/technet/scriptcenter/default.asp