123 lines
4.2 KiB
Plaintext
123 lines
4.2 KiB
Plaintext
|
'This script is used to run postscripts for Windows compute node
|
||
|
Dim filesys, myshell
|
||
|
Dim nodename, origpostscript, mypostscript, mypostbootscript
|
||
|
Dim output, tmpstr, startpoint
|
||
|
Dim fileread, filewrite, filewritepost, filewritepostboot, fline
|
||
|
Dim flagwp, flagwpb
|
||
|
Dim logname,loghandler
|
||
|
|
||
|
|
||
|
'Ingore the error box to avoid the stop of postscript running
|
||
|
On Error Resume Next
|
||
|
|
||
|
|
||
|
logname = "c:\xcatpost\xcat.log"
|
||
|
|
||
|
'Initialize the shell and fs objects
|
||
|
Set myshell = WScript.createObject("WScript.Shell")
|
||
|
Set filesys = CreateObject("Scripting.FileSystemObject")
|
||
|
|
||
|
'Open the log file for writting
|
||
|
Set loghandler = filesys.OpenTextFile(logname, 8, True)
|
||
|
loghandler.WriteLine "=========================================="
|
||
|
loghandler.WriteLine now
|
||
|
loghandler.WriteLine "Get in xcatwinpost.vbs"
|
||
|
|
||
|
'Read envrironment variables from c:\xcatpost\xcatenv
|
||
|
Set fileread = filesys.OpenTextFile("c:\xcatpost\xcatenv",1)
|
||
|
Do Until fileread.AtEndOfStream
|
||
|
fline = fileread.ReadLine
|
||
|
strpoint = InStr(fline, "NODENAME=")
|
||
|
If strpoint Then
|
||
|
nodename = Mid(fline, strpoint+9)
|
||
|
End If
|
||
|
Loop
|
||
|
loghandler.WriteLine "The nodename is: " & nodename
|
||
|
|
||
|
'Get the postscripts from xCAT management
|
||
|
origpostscript = "c:\xcatpost\mypostscript." & nodename
|
||
|
mypostscript = "c:\xcatpost\mypostscript.cmd"
|
||
|
mypostbootscript = "c:\xcatpost\mypostbootscript.cmd"
|
||
|
|
||
|
' Debug
|
||
|
'WScript.echo "orig mypostscript"& origpostscript
|
||
|
|
||
|
'Check the existence of mypostscript file
|
||
|
If NOT filesys.FileExists(origpostscript) Then
|
||
|
loghandler.WriteLine "Cannot find the original mypostscript: " & origpostscript
|
||
|
loghandler.Close
|
||
|
'WScript.echo "QUIT"
|
||
|
WScript.quit [1]
|
||
|
End If
|
||
|
|
||
|
'Create mypostscript and mypostbootscript from original postscript which was copied from xCAT MN
|
||
|
Set fileread = filesys.OpenTextFile(origpostscript, 1)
|
||
|
|
||
|
Set filewritepost = filesys.OpenTextFile(mypostscript, 2, True)
|
||
|
Set filewritepostboot = filesys.OpenTextFile(mypostbootscript, 2, True)
|
||
|
|
||
|
flagwp = 0
|
||
|
flagwpb = 0
|
||
|
Do Until fileread.AtEndOfStream
|
||
|
fline = fileread.ReadLine
|
||
|
|
||
|
If InStr(fline, "|") Then
|
||
|
' Ignore the char |
|
||
|
' Do nothing
|
||
|
ElseIf InStr(fline, "osimage-postscripts-start-here") Or InStr(fline, "node-postscripts-start-here") Then
|
||
|
flagwp = 1
|
||
|
ElseIf InStr(fline, "osimage-postscripts-end-here") Or InStr(fline, "node-postscripts-end-here") Then
|
||
|
flagwp = 0
|
||
|
ElseIf InStr(fline, "osimage-postbootscripts-start-here") Or InStr(fline, "node-postbootscripts-start-here") Then
|
||
|
flagwpb = 1
|
||
|
ElseIf InStr(fline, "osimage-postbootscripts-end-here") Or InStr(fline, "node-postbootscripts-end-here") Then
|
||
|
flagwpb = 0
|
||
|
ElseIf InStr(fline, "=") Then
|
||
|
' Set the environment variables
|
||
|
tmpstr = "Set "&fline
|
||
|
' Ignore the char '
|
||
|
tmpstr = Replace(tmpstr, "'", "")
|
||
|
filewritepost.WriteLine tmpstr
|
||
|
filewritepostboot.WriteLine tmpstr
|
||
|
ElseIf flagwp Then
|
||
|
' Run script with runpost.vbs
|
||
|
fline = "c:\xcatpost\runpost.vbs " & fline
|
||
|
filewritepost.WriteLine fline
|
||
|
ElseIf flagwpb Then
|
||
|
' Run script with runpost.vbs
|
||
|
fline = "c:\xcatpost\runpost.vbs " & fline
|
||
|
filewritepostboot.WriteLine fline
|
||
|
End If
|
||
|
Loop
|
||
|
|
||
|
fileread.Close
|
||
|
filewritepost.Close
|
||
|
filewritepostboot.Close
|
||
|
|
||
|
loghandler.WriteLine "mypostscript and mypostbootscript have been created"
|
||
|
|
||
|
'Generate the setup computed file which is used to initiate the running of postbootscripts
|
||
|
If NOT filesys.FolderExists("C:\Windows\Setup\Scripts\") Then
|
||
|
filesys.CreateFolder("C:\Windows\Setup\Scripts\")
|
||
|
End If
|
||
|
|
||
|
'Open it with appending mode
|
||
|
set filewrite = filesys.OpenTextFile("C:\Windows\Setup\Scripts\SetupComplete.cmd", 8, True)
|
||
|
filewrite.WriteLine "cmd /c call " & mypostbootscript
|
||
|
filewrite.Close
|
||
|
|
||
|
loghandler.WriteLine "C:\Windows\Setup\Scripts\SetupComplete.cmd has been created."
|
||
|
|
||
|
loghandler.WriteLine "To run mypostscript"
|
||
|
loghandler.WriteLine ""
|
||
|
|
||
|
loghandler.Close
|
||
|
' Run mypostscript
|
||
|
Set myshell = WScript.createObject("WScript.Shell")
|
||
|
myshell.Run "cmd /c " & mypostscript, 0, True
|
||
|
'Do While Not output.StdOut.AtEndOfStream
|
||
|
' fline = output.StdOut.ReadLine()
|
||
|
' WScript.echo fline
|
||
|
'Loop
|
||
|
|