Thursday, December 29, 2005

Veritas fails to backup remote BizTalk server

Using Veritas Backup Exec to backup multiple Win2003 servers I found a backup job hung indefinitely. You can request to cancel the job but that job also hangs. After stopping the Backup Exec Server, you may be able to eject the drive manually or may require restarting the Device & Media service as well.

The failed backup report logs stop after connecting to a BizTalk server.

Examining the Application Event log there shows:
Source COM+, Category (98), Event ID: 4689
The run-time environment has detected an inconsistency in its internal state. This indicates a potential instability in the process that could be caused by the custom components running in the COM+ application, the components they make use of, or other factors. Failed to add Subscription due to Store error.


The Help and support link supplies no information but links to http://support.microsoft.com/kb/909444/en-us where a description of Security Bulletin MS05-051 indicates changes in the COM+ catalog security settings.

Following the non-DC instructions reveals the security settings are indeed more aggressive than in the past. Making the appropriate changes allows a test backup of the BizTalk server to complete successfully.

Tuesday, December 27, 2005

Automatic updates using Group Policy

Problem is remote users with XP Pro with Citrix access don't need to be local admins nor authenticated locally by AD. They are essentially really powerful thin clients. How do you simply have a user / power user get critical Windows updates?

I'm trying this:

KB article 328010

Logically it seems to be sufficient, and the user experience seems to indicate it will function, but time will be the test.

Template Persistent Cache initialization failed

I've seen this error on a couple domain controllers running IIS apps. It doesn't seem to have an associated symptom for end users, but I suspect it requires some extra authentication on their part when running more secure web apps.

Error: The Template Persistent Cache initialization failed for Application Pool 'DefaultAppPool' because of the following error: Could not create a Disk Cache Sub-directory for the Application Pool. The data may have additional error codes..

See MS Knowledgebase article KB ID=332097. It describes manually setting security on various IIS related folders.

Thursday, December 22, 2005

Export Published Printers to File

Here's a script courtesy of Microsoft, slightly modified by me to direct output to a file . It will export the published printers in AD to a comma delimited text file (printers.txt below) along with the associated server.

'**********
'export published printers to file
'from webmaxtor.blogspot.com
'**********

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select printerName, serverName from " _
& " 'LDAP://DC=yourdomain,DC=com' where objectClass='printQueue'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.CreateTextFile("Printers.txt", True)

Do Until objRecordSet.EOF
myFile.Writeline objRecordSet.Fields("serverName").Value & "," & objRecordSet.Fields("printerName").Value
objRecordSet.MoveNext
Loop

myFile.Close

'**********
'end of script
'**********

The MS Scripting center site has boat load of this good stuff.

Wednesday, December 21, 2005

Export local group to text file

How many ways can you think of to export the members of a local group to a text file? The really simple method is running net localgroup 'group name' > textfile.txt locally, but this adds extra descriptive info that needs to be cleaned up later. You may also encounter environments where the net command is not accessible.

Here's my version with fun little interactive input and message boxes. Easy to use, works remotely, and builds the list with names only:

'**********
'
'retrieve local group membership
'
'from webmaxtor.blogspot.com
'
'**********

Option Explicit

Dim intCount, strGroup, strDomain, oGroup, oMember
Dim fso, myFile, strOutput

strGroup = InputBox("Group to query?")
strDomain = InputBox("Domain or machine that hosts the group?")
strOutput = InputBox("Enter the output file name:")

set oGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")

Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.CreateTextFile(strOutput, True)

For Each oMember in oGroup.Members
intCount = intCount + 1
myFile.Writeline oMember.name
Next

myFile.Close

msgbox "Group: " & strGroup & " hosted by: " & strDomain & " has " & intCount & " members" & (Chr(13) & Chr(10)) & "See file " & strOutput

'**********
'end of script
'**********

The last line of the script starts with msgbox and ends with strOutput, so when copying it remember to remove the carrage return / wordwrap. Same goes for the set oGroup line. Save it in notepad as yournamehere.vbs and then execute it.