18

I realise this is has been around for a while now but until a few weeks ago I never really appreciated the Group Policy Preferences and the simplicity they offer.

Back in the days of Windows NT, Server 2000 and Server 2003 server administrators would create login scripts to perform a number of commands such as mapping network drives, installing printers, creating shortcuts and folders… I could go on but you get the idea. In Server 2008 Microsoft introduced the Group Policy Preferences to allow you to use Group Policy to natively configure a whole host of setting in Group Policy that would otherwise be a number of lines of batch/kix/vb script.

As you can see from the image to the left there are a vast number of options that can be configured for a user when they login. For most of the items there are four options: Create, Delete, Update and Replace which will let you make changes to the Drive Mappings, Folders etc. The difference between Update and Replace can vary from item to item but my general understanding is that the Update will attempt to modify the existing item to match what is in the Preference whereas the Replace option will remove what is there and recreate the new object (smilar to a net use P: /DELETE /Y followed by net use P: \ServerUsers%USERNAME%)

Another benefit is that in a single GPO you can define a number of different Preferences and then filter these around Group Membership.

This should all work Out of the Box with Windows Vista and above so for any legacy clients and servers (Windows XP, Server 2003) you will need to download the appropriate updates from Microsoft http://support.microsoft.com/kb/943729.

All in all this should save time and administrative overhead when they are fully adopted. The only problem is getting the legacy scripts switched over to the new Preferences.

16

I had an issue with one of my clients this week and slow workstation start up times. Looking through the items that were running for all users at login was Roxio Drag2Disk as someone had not taken it out of the standard software image. The client didn’t use or need the software so I looked at a way to uninstall the various components without having to visit each machine individually (Yes we will be removing it from the image).

I thought it would be useful to get the script out there in case others need to accomplish the same task. If you want to use it just dump it somewhere central on your network (eg NETLOGON) and then run it as a startup script in a Group Policy Object

Script is below

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

' Script: uninstall_roxio.vbs

'Author:Matt White

' Version: 1.0

'Date:15-06-2011

' Details: Uninstall all Roxio components from a workstation

'Usage:Run asastartup script GPO linked tothe relevant Computers OU

'On Error Resume Next

'Define any Variables

dim arrRoxioGUIDS,arrRoxioNames

Set objShell=Wscript.CreateObject("Wscript.Shell")

Set objFSO=Wscript.CreateObject("Scripting.FileSystemObject")

ConstForReading=1,ForWriting=2,ForAppending=8

' Define Application GUIDS

arrRoxioGUIDs = Array("{30465B6C-B53F-49A1-9EBA-A3F187AD502E}", _

"{0D397393-9B50-4c52-84D5-77E344289F87}", _

"{2F4C24E6-CBD4-4AAC-B56F-C9FD44DE5668}", _

"{619CDD8A-14B6-43a1-AB6C-0F4EE48CE048}", _

"{6675CA7F-E51B-4F6A-99D4-F8F0124C6EAA}", _

"{83FFCFC7-88C6-41c6-8752-958A45325C82}", _

"{C8B0680B-CDAE-4809-9F91-387B6DE00F7C}", _

"{0394CDC8-FABD-4ed8-B104-03393876DFDF}")

arrRoxioNames = Array("RoxioUpdateManager", _

"RoxioCreatorData", _

"RoxioDragToDisk", _

"RoxioCreatorCopy", _

"RoxioExpressLabeler", _

"RoxioCreatorAudio", _

"RoxioCreatorDE", _

"RoxioCreatorTools")

'Create Check iflog file exists,ifnotcreate it

ifobjFSO.FileExists("C:roxiouninstall.log")Then

Wscript.Echo"File Exists"

Set objLogFile=objFSO.OpenTextFile("C:roxiouninstall.log",ForAppending)

Else

Wscript.Echo"Creating file"

Set objNewLogFile=objFSO.CreateTextFile("C:roxiouninstall.log")

objNewLogFile.Close

Set objLogFile=objFSO.OpenTextFile("C:roxiouninstall.log",ForAppending)

EndIf

objLogFile.WriteLine"Uninstall of all Roxio components started "&amp;Now

4

I started to deploy Adobe Reader X to one of my clients the other day and found that users were unable to open files on shared drives mapped to our DFS. Searching through the web I found the following KB article from Adobe (http://kb2.adobe.com/cps/860/cpsid_86063.html)

Cannot open PDF files whose source is DFS or NFS:Â PDF files in shared locations on a distributed Â or networked file system (DFS/NFS) cannot be opened. Attempting to open such a file results in an error opening this document. Access denied.”

Initially I thought I would have to remove Adobe from all the workstations however a quick look in the registry found the place where this has been set – HKEY_CURRENT_USERSoftwareAdobeAcrobat Reader10.0Privileged. To get around the problem I added the following to my login script to force the “bProtectedMode” value to 0