Вы находитесь на странице: 1из 4

Logon Script FAQ http://www.rlmueller.net/LogonScriptFAQ.

htm

Home Feedback

Frequently Asked Questions About Logon Scripts:


1. How do I setup Logon scripts in a domain with Active Directory?
2. Why would I choose one method over another?
3. Can I use both methods to assign Logon scripts?
4. How do I setup Logon scripts so they support all of my clients?
5. How do I configure a Logon script for a user on the "Profile" tab in AD Users & Computers?
6. What languages can I use for Logon scripts?
7. Can I use a VBScript program for a Logon script on all clients in my domain?
8. How do I configure a Logon script with Group Policy?
9. What about Logoff, Startup, and Shutdown scripts in Group Policy?
10. What permissions are required for Logon scripts to run?
11. What can be done with a batch file Logon script, besides launch a VBScript program?
12. What about Logon scripts in an NT domain?

1. How do I setup Logon scripts in a domain with Active Directory?

There are two ways to assign Logon scripts. First, you can specify the Logon script on the "Profile" tab of the
user properties dialog in the Active Directory Users and Computers MMC. Second, you can specify a Logon
script in Group Policy.

2. Why would I choose one method over another?

You would assign a Logon script on the "Profile" tab of the user properties if you have client computers with
Windows 95, Windows 98, Windows ME, or Windows NT. Group Policy is not applied on computers with these
operating systems. If all of your clients have at least Windows 2000, you could use Group Policy to assign
Logon scripts.

3. Can I use both methods to assign Logon scripts?

You can, but if a user logs on to a computer with Windows 2000 or above, both Logon scripts will run.

4. How do I setup Logon scripts so they support all of my clients?

If your users can Logon to both older clients (like Windows 95, Windows 98, Windows ME, or Windows NT) and
the newer clients (like Windows 2000 and Windows XP), you should assign a batch file as the Logon script on
the "Profile" tab for each user in the Active Directory Users and Computers MMC. The batch file can launch a
VBScript program, as explained below. Once all of your clients are at least Windows 2000, you can use a
VBScript program as the Logon script, and use Group Policy to assign Logon scripts to all users in a domain,
site, or organizational unit.

5. How do I configure a Logon script for a user on the "Profile" tab in AD Users & Computers?

The field labeled "Logon script" on the "Profile" tab of the user properties dialog in the Active Directory Users
and Computers MMC corresponds to the "scriptPath" attribute of the user object. The default location for
Logon scripts specified by this attribute is the NetLogon share. By default, all users have read access to this
share. The NetLogon share on the Domain Controller is located in the following folder:

1 of 4 3/20/2011 07:53
Logon Script FAQ http://www.rlmueller.net/LogonScriptFAQ.htm

%SystemRoot%\sysvol\sysvol\<domain DNS name>\scripts

where %SystemRoot% is usually "c:\winnt" and <domain DNS name> is the DNS name of the domain, similar to
"MyDomain.com". This folder is replicated to all Domain Controllers in the domain. The usual practice is to
enter the name of the Logon script, for example "NetLogon.bat", in the field labeled "Logon script" on the
"Profile" tab for the user and place this file in the NetLogon share. The Logon script will run for the user when
they Logon to any computer that is joined to the domain. You can also enter a UNC path in the "Logon script"
field and place the file in another location. However, this location should be one that is replicated to all
Domain Controllers. Alternatively, you can use a script or utility to assign the Logon script to the "scriptPath"
attribute of the user object in Active Directory. A VBScript program to assign a value to this attribute for
many users in bulk would be much faster than manually entering values for users one at a time in the MMC.

6. What languages can I use for Logon scripts?

If the client operating system (OS) is Windows 95, Windows 98, or Windows ME, the Logon script must be a
batch file (with extension .bat) or executable program (with extension .exe). If the client operating system is
Windows NT, the Logon script can be a batch, command, or executable file (with extension .bat, .cmd, or
*.exe). If the client is Windows 2000 or above, the Logon script can be a batch file, a command file,
executable program (with extension *.bat, *.cmd, *.exe), or a program written in a language hosted by
Windows Script Host (WSH). Examples of WSH supported languages are VBScript (with extension *.vbs) and
JScript (with extension *.js). The type of Logon script you use should support all clients you expect the user to
Logon to. However, a VBScript, JScript, or other WSH hosted program would be the most powerful. Other
languages supported by WSH are Perl, REXX, and Python. However, the script engines for these languages must
be registered with Windows. VBScript and JScript are installed on all clients with Windows 2000 or above, and
is installed with DSClient on all other clients.

Another option that should be mentioned is KiXtart. This tool was available in the NT Server resource kit and
provides logon script functionality for all clients.

7. Can I use a VBScript program for a Logon script on all clients in my domain?

Yes. The client operating system must be at least Windows 2000 in order for the actual specified logon script
to be a VBScript program. All older clients should have a batch file defined as the Logon script. If any of your
clients have Windows 95, Window 98, Windows ME, or Windows NT, it is recommended that you designate a
batch file as the logon script for all users. Fortunately, the batch file can simply launch a VBScript program.
The only requirement is that Windows Script Host (WSH) and VBScript be installed on the client. Clients with
Windows 2000 or above come with WSH and VBScript. WSH and VBScript are installed with DSClient on
Windows 95, Windows 98, and Windows ME. The DSClient for Windows NT also includes WSH and VBScript.
There is also a separate installation of WSH and VBScript available if you don’t want to install DSClient on
your Win9x or NT machines. However, if you install WSH and VBScript instead of DSClient on machines with
Win9x or NT, you cannot use ADSI to retrieve information from Active Directory, such as group membership
information. ADSI is built into clients with Windows 2000 or above.

An example of a batch file Logon script that launches a VBScript program is as follows:

@echo off
wscript %0\..\NetLogon.vbs

The "%0" in the batch file is interpreted by the command processor to be the name and path of the current
file, which is the batch file itself. The string "%0\..\" then becomes the folder where the batch file is
stored. The batch file above will launch the VBScript program NetLogon.vbs as long as it is saved in the
NetLogon share with the batch file. This syntax is preferable to a UNC path, because it does not hard code the
name of a Domain Controller. The syntax will work no matter which Domain Controller authenticates the user.
The logon script will work no matter which Domain Controllers are available or where in the network the user
logs on.

8. How do I configure a Logon script with Group Policy?

2 of 4 3/20/2011 07:53
Logon Script FAQ http://www.rlmueller.net/LogonScriptFAQ.htm

Logon scripts can also be configured in Group Policy. However, Group Policy only applies to clients with
Windows 2000 or above. The setting in Group Policy is "User Configuration", "Windows Settings",
"Scripts (Logon/Logoff)", "Logon". Best practice is to copy the file you want for the Logon script to
the Windows clipboard, open the "Logon" setting in the Group Policy editor, press the "Show Files..." button,
and paste the desired file in the dialog. You can select the file and edit it in this dialog as well. This is easier
than navigating in Windows Explorer to the folder where Group Policy Logon scripts are saved. However, if you
do have to navigate to the folder, the path on the Domain Controller is:

%SystemRoot%\sysvol\sysvol\<domain DNS name>\Policies\<GUID>\user\scripts\logon

Again, %SystemRoot% is usually "c:\winnt" or "c:\Windows" and <domain DNS name> is the DNS name
of the domain, similar to "MyDomain.com". <GUID> is a hexadecimal string representing the GUID (unique
identifier) of the specific Group Policy Object (GPO).

The sysvol directory is shared so this path is also:

\\<Server>\sysvol\<domain DNS name>\Policies\<GUID>\user\scripts\logon

where <Server> is the NetBIOS name of the server. Group Policies are assigned to a domain, site, or
organizational unit in Active Directory. The Logon script setting applies to all users in the domain, site, or
organizational unit to which the GPO applies. You will notice that you assign a Logon script to all users in the
container at once, rather than having to assign the "scriptPath" attribute for each user. This makes it much
easier to assign Logon scripts to many users. However, since the same Group Policy applies to all users in the
domain, site, or organizational unit, you must code the Logon script to accommodate all users.

9. What about Logoff, Startup, and Shutdown scripts in Group Policy?

Group Policy can also be used to assign Logoff, Startup, and Shutdown scripts. The Logoff script setting in
Group Policy is "User Configuration", "Windows Settings", "Scripts (Logon/Logoff)", "Logoff". Similar to the
Logon script setting, it applies to all users in the domain, site, or organizational unit that the GPO is assigned
to. Startup and Shutdown scripts are in "Computer Configuration", "Windows Settings", "Scripts
(Startup/Shutdown)". These scripts are applied to any computer in the domain, site, or organizational unit
that the Group Policy is applied to. There is no provision for running Logoff, Startup, or Shutdown scripts on
computers with Windows 95, Windows 98, Windows ME, or Windows NT.

It is much easier to create and modify these scripts in the Group Policy editor, as described in #8 above, but if
you must navigate to the actual folders on the Domain Controller they are as follows:

\\<Server>\sysvol\<domain DNS name>\Policies\<GUID>\user\scripts\logoff

\\<Server>\sysvol\<domain DNS name>\Policies\<GUID>\machine\scripts\startup

\\<Server>\sysvol\<domain DNS name>\Policies\<GUID>\machine\scripts\shutdown

10. What permissions are required for Logon scripts to run?

Logon and Logoff scripts run with the credentials of the user. It is recommended that the group "Domain
Users" be given permission to any resources used by either of these scripts. For example, if the Logon or Logoff
script writes to a log file, the group "Domain Users" should be given read/write access to the file or the folder
where the log file is located. Most users have limited privileges on the local computer, so Logon and Logoff
scripts will have the same limited privileges.

Startup and Shutdown scripts run with the credentials of the computer object. It is recommended that the
group "Domain Computers" be given permission to any resources used by the Startup or Shutdown scripts.
However, Startup and Shutdown scripts have System privileges on the local computer. This gives Startup and
Shutdown scripts access to the local file system and registry.

3 of 4 3/20/2011 07:53
Logon Script FAQ http://www.rlmueller.net/LogonScriptFAQ.htm

If you plan to make any configuration or desktop changes with Logon or Startup scripts, remember that
changes to the user (or to the HKEY_CURRENT_USER hive of the local registry) should be made in Logon
scripts. Changes to the computer (or to the HKEY_LOCAL_MACHINE hive of the local registry) should be made
in a Startup script.

11. What can be done with a batch file Logon script, besides launch a VBScript program?

A batch file Logon script can connect drives to network shares, connect to shared printers, and run command
line utilities. Anything you can do at a command prompt can be done in a batch file. For example, a batch file
Logon script that maps a drive to a network share and connects to a printer could be similar to below:

@echo off
net use H: \\MyServer\MyShare
net use LPT1: \\MyServer\MyPrinter

However, a batch file by itself cannot use ADSI to retrieve information from Active Directory. Unless you use a
third party utility, there is no way to determine group membership. One third party tool that does provide the
ability to check group membership is KiXtart. The Windows NT resource kit also provides the utility IfMember,
which can be used to test for group membership in a batch file. However, IfMember only works on clients with
NT or above.

12. What about Logon scripts in an NT domain?

The above discussion applies to networks with Active Directory. The Domain Controllers can be Windows 2000
Server, Windows Server 2003, or Windows Server 2008 and the domain can be at any functional level.
However, Logon scripts can also be used in NT domains. The default location for Logon scripts on the PDC or
BDC in NT domains is:

%SystemRoot%\system32\repl\import\scripts

The Logon script is assigned on the Profile tab of the user management tool. The corresponding user attribute
exposed by the WinNT provider is "loginScript".

The Logon script can be a batch file, command file, or VBScript, with the same restrictions as discussed above
with regard to the client operating system. However, since the NT SAM account database is not LDAP
compliant, a VBScript program cannot use the LDAP provider. VBScript Logon script programs in NT domains
must use the WinNT provider.

4 of 4 3/20/2011 07:53

Вам также может понравиться