windows-nt/Source/XPSP1/NT/inetsrv/iis/img/psdksamp/admin/dfoot.vbs
2020-09-26 16:20:57 +08:00

156 lines
4 KiB
Plaintext

'''''''''''''''''''''''''''''''''''''''''''''
'
' Document Footer Utility
'
'''''''''''''''''''''''''''''''''''''''''''''
' Description:
' ------------
' This sample admin script allows you to configure document footers.
'
' To Run:
' -------
' This is the format for this script:
'
' cscript metaback.vbs
'
' NOTE: If you want to execute this script directly from Windows, use
' 'wscript' instead of 'cscript'.
'
'''''''''''''''''''''''''''''''''''''''''''''
' Initialize error checking
On Error Resume Next
' Initialize variables
Dim ArgCount, InputError, FootEnabled, FootDoc, FootPath, ThisObj, EnableModify, ClearFlag
' Default values
ArgCount = 0
FootPath = "" ' This MUST be set by user via command-line
FootDoc = ""
FootEnabled = False
EnableModify = False
ClearFlag = False
' ** Parse Command Line
' Loop through arguments
While ArgCount < Wscript.Arguments.Count
' Determine switches used
Select Case Wscript.Arguments(ArgCount)
Case "-s": ' Sets default footer explicitly to string
' Move to next arg, which should be parameter
ArgCount = ArgCount + 1
If ArgCount => Wscript.Arguments.Count Then
Call UsageMsg
Else
FootDoc = "STRING:" & Wscript.Arguments(ArgCount)
End If
Case "-f": ' Sets default footer to a file
' Move to next arg, which should be parameter
ArgCount = ArgCount + 1
If ArgCount => Wscript.Arguments.Count Then
Call UsageMsg
Else
FootDoc = "FILE:" & Wscript.Arguments(ArgCount)
End If
Case "+d": ' Enables doc footers
FootEnabled = True
EnableModify = True
Case "-d": ' Disables doc footers
FootEnabled = False
EnableModify = True
Case "-c": ' Clears all document footer settings from node
ClearFlag = True
Case "-h": ' Help!
UsageMsg
Case Else: ' ADsPath, we hope
If FootPath <> "" Then ' Only one name allowed
Call UsageMsg
Else
FootPath = Wscript.Arguments(ArgCount)
End If
End Select
' Move pointer to next argument
ArgCount = ArgCount + 1
Wend
' Quick screen to make sure input is valid
If FootPath = "" Then
Call UsageMsg
End If
' **Perform Backup:
' First, create instance of ADSI object
Set ADSIObj = GetObject(FootPath)
' Error getting that object?
If Err.Number <> 0 Then
Wscript.Echo "Error getting object at path " & FootPath & "."
Wscript.Quit
End If
' If no changes, then simply display current settings
If (EnableModify = False) And (FootDoc = "") And (ClearFlag = False) Then ' Display current status
If ADSIObj.EnableDocFooter = True Then
Wscript.Echo FootPath & ": Footers currently enabled, value = " & ADSIObj.DefaultDocFooter
Else
Wscript.Echo FootPath & ": Footers currently disabled, value = " & ADSIObj.DefaultDocFooter
End If
Wscript.Quit
End If
' Change settings for node
If ClearFlag = True Then
ADSIObj.EnableDocFooter = False
ADSIObj.DefaultDocFooter = ""
Else
If EnableModify Then ADSIObj.EnableDocFooter = FootEnabled
If FootDoc <> "" Then ADSIObj.DefaultDocFooter = FootDoc
End If
' Save new settings back to node
ADSIObj.SetInfo
' Error saving info to object?
If Err.Number <> 0 Then
Wscript.Echo "Error setting document footer info for path " & FootPath & "."
Wscript.Quit
End If
' Display results
If ADSIObj.EnableDocFooter = True Then
Wscript.Echo FootPath & ": Document footers enabled, value = " & ADSIObj.DefaultDocFooter
Else
Wscript.Echo FootPath & ": Document footers disabled, value = " & ADSIObj.DefaultDocFooter
End If
' Displays usage message, then QUITS
Sub UsageMsg
Wscript.Echo "Usage: cscript dfoot.vbs <ADsPath> [+d|-d footers enabled] [[-s <string>] | [-f <filename>]]"
Wscript.Quit
End Sub