***Save this as main sealing batch
@echo off
rem ***STEP 1: Clear all event logs
wevtutil cl System
wevtutil cl Application
wevtutil cl Security
wevtutil cl Setup
SET /P ANSWER=You want to DELETE profiles (Y/N)?
if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={Y} (goto :yes)
goto no
:yes
rem ***STEP 2: Clear user profiles
rem Place a copy of delprof on a shared forlder in the network
rem Link to download delprof tool:
rem http://www.microsoft.com/en-us/download/details.aspx?id=5405
\\SharedFolder\delprof /p
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: User Profiles reviewed"
:no
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: User Profiles deletion skipped"
rem ***STEP 3: Set .NET services to Atumatic(delayed) start
:CALLBATCH
sc config clr_optimization_v4.0.30319_64 start= delayed-auto
if %ERRORLEVEL% == 0 goto SUCCESS1
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 2 /D "CitrixSealing: Result for Net optimization x64 service set to delatey-auto: FAILED"
GOTO BREAKEND
:SUCCESS1
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 2 /D "CitrixSealing: Result for Net optimization x64 service set to delatey-auto: SUCCEDED"
sc config clr_optimization_v4.0.30319_32 start= delayed-auto
if %ERRORLEVEL% == 0 goto SUCCESS2
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to delatey-auto: FAILED"
GOTO BREAKEND
:SUCCESS2
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to delatey-auto: SUCCEDED"
rem ***STEP 4: Set Windows Automatic Updates service to disable
sc config wuauserv start= disabled
if %ERRORLEVEL% == 0 goto SUCCESS4
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for windows Update Service to Disabled: FAILED"
GOTO BREAKEND
:SUCCESS4
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for windows Update Service to Disabled: SUCCEDED"
rem ***STEP 5: Run NGEN for both x86 and x84 and log execution results
start \\SharedFolder\NGENx86.bat
if %ERRORLEVEL% == 0 goto SUCCESS5
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: NGEN x86 Process initialization: FAILED"
GOTO BREAKEND
:SUCCESS5
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: NGEN x86 Process initialization: SUCCEDED"
start \\SharedFolder\NGENx64.bat
if %ERRORLEVEL% == 0 goto SUCCESS6
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: NGEN x64 Process initialization: FAILED"
GOTO BREAKEND
:SUCCESS6
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: NGEN x64 Process initialization: SUCCEDED"
Echo WARNING (1 of 2): Continue ONLY after BOTH NGEN batch files are completed
Echo WARNING (1 of 2): Continue ONLY after BOTH NGEN batch files are completed
Echo WARNING (1 of 2): Continue ONLY after BOTH NGEN batch files are completed
pause
Echo WARNING (2 of 2): Continue ONLY after BOTH NGEN batch files are completed
pause
rem ***STEP 6: SET .NET Services to disable
sc config clr_optimization_v4.0.30319_64 start= disabled
if %ERRORLEVEL% == 0 goto SUCCESS7
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to disabled: FAILED"
GOTO BREAKEND
:SUCCESS7
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to disabled: SUCCEDED"
sc config clr_optimization_v4.0.30319_32 start= disabled
if %ERRORLEVEL% == 0 goto SUCCESS8
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to disabled: FAILED"
GOTO BREAKEND
:SUCCESS8
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: Result for Net optimization x86 service set to disabled: SUCCEDED"
rem ***STEP 7: ipconfig /flushdns
ipconfig /flushdns
if %ERRORLEVEL% == 0 goto SUCCESS9
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: ipconfig /flushdns: FAILED"
GOTO BREAKEND
:SUCCESS9
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: ipconfig /flushdns occurred"
rem ***STEP 8: Prepare image to seal
cd C:\Program Files (x86)\Citrix\XenApp\ServerConfig\
XenAppConfigConsole.exe /ExecutionMode:ImagePrep /RemoveCurrentServer:False /PrepMsmq:True
if %ERRORLEVEL% == 0 goto SUCCESSa
rem ***STEP X: Break if error found during execution.
:BREAKEND
EVENTCREATE /T ERROR /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: XenAppConfigConsole.exe /ExecutionMode:ImagePrep /RemoveCurrentServer:False /PrepMsmq:True: FAILED"
@ECHO AN ERROR OCCURRED, re run imageprep from XenApp console.
pause
:SUCCESSa
EVENTCREATE /T Information /so CitrixSealing /L Application /ID 1 /D "CitrixSealing: XenAppConfigConsole.exe /ExecutionMode:ImagePrep /RemoveCurrentServer:False /PrepMsmq:True: SUCCEDED"
rem ***STEP 9: Turn off the server
shutdown -s -t 30
cls
@echo Sealing completed, this server now being turned off in 30 secs.
pause
exit
*** end of main Selaing batch
*** start of NGENx64 update
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
NGEN update /force
EVENTCREATE /T Warning /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x64 EXECUTION: END WITH ERRORS"
@ECHO AN ERROR OCCURRED, RE RUN NGEN Update on this server, then continue this batch file execution.
pause
:SUCCESS1
EVENTCREATE /T Information /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x64 EXECUTION: SUCCEDED"
NGEN eqi
if %ERRORLEVEL% == 0 goto SUCCESS2
EVENTCREATE /T ERROR /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x64 EQI EXECUTION: END WITH ERRORS"
@ECHO AN ERROR OCCURRED, RE RUN NGEN EQI on this server, then continue this batch file execution.
pause
:SUCCESS2
EVENTCREATE /T Information /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x64 EQI EXECUTION: SUCCEDED"
cls
@ECHO NGEN completed for x64, you can close this window and go back to main batch file.
pause
exit
***save this as NGENx64.bat and place it on \\sharedfolder
*** end of NGENx64 update
*** start of NGENx86 update
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
NGEN update /force
if %ERRORLEVEL% == 0 goto SUCCESS1
EVENTCREATE /T Warning /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x86 EXECUTION: END WITH ERRORS"
@ECHO AN ERROR OCCURRED, RE RUN NGEN Update on this server, then continue this batch file execution.
pause
:SUCCESS1
EVENTCREATE /T Information /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x86 EXECUTION: SUCCEDED"
NGEN eqi
if %ERRORLEVEL% == 0 goto SUCCESS2
EVENTCREATE /T ERROR /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x86 EQI EXECUTION: END WITH ERRORS"
@ECHO AN ERROR OCCURRED, RE RUN NGEN EQI on this server, then continue this batch file execution.
pause
:SUCCESS2
EVENTCREATE /T Information /L APPLICATION /ID 1 /D "Citrix Sealing: NGEN x86 EQI EXECUTION: SUCCEDED"
cls
@ECHO NGEN completed for x86, you can close this window and go back to main batch file.
pause
exit
***save this as NGENx86.bat and place it on \\sharedfolder
*** end of NGENx86 update
jueves, 14 de agosto de 2014
VBS para obtener las propiedades de cuentas anonimas locales desde multiples computadoras
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("UserProperties.txt", True)
Set objServerlist = objFSO.OpenTextFile("c:\Servers.txt", 1)
On Error Resume Next
Dim Counter, Counter2
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
objFile.WriteLine "Server: " & strComputer
objFile.WriteLine ""
Counter = 0
Counter2 = 0
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_UserAccount Where LocalAccount = True ")
For Each objItem in colItems
If InStr(objItem.Name, "Anon") Then
Counter = Counter +1
if objItem.PasswordExpires = True Then
Counter2 = Counter2 +1
objFile.WriteLine "Caption: " & objItem.Caption
objFile.WriteLine "Disabled: " & objItem.Disabled
objFile.WriteLine "Lockout: " & objItem.Lockout
objFile.WriteLine "Password Changeable: " & objItem.PasswordChangeable
objFile.WriteLine "Password Required: " & objItem.PasswordRequired
objFile.WriteLine ""
End If
End If
Next
objFile.WriteLine "Anonymous users found:" & Counter
objFile.WriteLine "Anonymous users found with password to expire:" & Counter2
objFile.WriteLine ""
objFile.WriteLine "----------------------------------------"
Loop
wscript.echo "Local account query properties complete"
VBS para renombrar un drive en multiples computadoras en un TXT
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("ServersRenamed.txt", True)
Set objServerlist = objFSO.OpenTextFile("c:\serverstorename.txt", 1)
On Error Resume Next
Dim Counter, Counter2
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
objFile.WriteLine "Server: " & strComputer
objFile.WriteLine ""
Counter = 0
Counter2 = 0
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDrives = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk where DeviceID = 'D:'")
For Each objDrive in colDrives
objDrive.VolumeName = "0DNM_Pagefile"
objDrive.Put_
Next
objFile.WriteLine "Server edited: " & strComputer
objFile.WriteLine ""
Loop
wscript.echo "Drive re-label complete"
VBS para obtener el estado de un servicio de una lista de computadoras en un TXT
strService = "SpoolSv"
srtCitrixServerListLocation = "c:\ServerNames.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("ServiceQueryResults.txt", True)
Set objServerlist = objFSO.OpenTextFile(srtCitrixServerListLocation, 1)
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service ")
For Each objService in colListOfServices
If objService.name = strService then
objFile.WriteLine strComputer & "," & objService.name & "," & objservice.state
End if
Next
Loop
wscript.echo "Service query completed"
VBS que obtiene las propiedades de red de una lista de servers TXT
***Inicio del script
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("NICProperties.txt", True)
Set objServerlist = objFSO.OpenTextFile("c:\citrixservers.txt", 1)
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
objFile.WriteLine "Server: " & strComputer
objFile.WriteLine ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapterConfiguration",,48)
For Each objItem in colItems
'objFile.WriteLine "-----------------------------------"
'objFile.WriteLine "Win32_NetworkAdapterConfiguration instance"
'objFile.WriteLine "-----------------------------------"
If isNull(objItem.DNSHostName) Then
' objFile.WriteLine "DNSHostName: "
Else
'objFile.WriteLine "DNS Host Name: " & objItem.DNSHostName
objFile.WriteLine "Description: " & objItem.Description
' objFile.WriteLine "IP Address: " & Join(objItem.IPAddress, ",")
' objFile.WriteLine "IP Subnet: " & Join(objItem.IPSubnet, ",")
objFile.WriteLine "DNS Server Search Order: " & Join(objItem.DNSServerSearchOrder, " , ")
objFile.WriteLine "DNS Suffix: " & objItem.DNSDomain
End If
Next
Loop
wscript.echo "End"
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("NICProperties.txt", True)
Set objServerlist = objFSO.OpenTextFile("c:\citrixservers.txt", 1)
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
objFile.WriteLine "Server: " & strComputer
objFile.WriteLine ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapterConfiguration",,48)
For Each objItem in colItems
'objFile.WriteLine "-----------------------------------"
'objFile.WriteLine "Win32_NetworkAdapterConfiguration instance"
'objFile.WriteLine "-----------------------------------"
If isNull(objItem.DNSHostName) Then
' objFile.WriteLine "DNSHostName: "
Else
'objFile.WriteLine "DNS Host Name: " & objItem.DNSHostName
objFile.WriteLine "Description: " & objItem.Description
' objFile.WriteLine "IP Address: " & Join(objItem.IPAddress, ",")
' objFile.WriteLine "IP Subnet: " & Join(objItem.IPSubnet, ",")
objFile.WriteLine "DNS Server Search Order: " & Join(objItem.DNSServerSearchOrder, " , ")
objFile.WriteLine "DNS Suffix: " & objItem.DNSDomain
End If
Next
Loop
wscript.echo "End"
***Fin del script
VBS que obtiene los numeros de serie de una lista de computadoras en un archivo TXT
***Inicio del script
On Error Resume Next
Dim System
if Wscript.Arguments.Count >0 then
sSystem=Wscript.Arguments(0)
end if
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("ArchivoDeSalida_SerialNumber.txt", True)
Set objServerlist = objFSO.OpenTextFile("c:\ServerNames.txt", 1)
Do Until objServerList.AtEndOfStream
strComputer = objServerList.ReadLine
'objFile.WriteLine "Server: " & strComputer
'objFile.WriteLine ""
'ComputerName = InputBox("Enter the name of the computer you wish to query")
ComputerName = strComputer
winmgmt1 = "winmgmts:{impersonationLevel=impersonate}!//"& ComputerName &""
Set SNSet = GetObject( winmgmt1 ).InstancesOf ("Win32_BIOS")
for each SN in SNSet
'MsgBox "The serial number for the specified computer is: " & SN.SerialNumber
objFile.WriteLine ComputerName & "," & SN.SerialNumber
Next
Loop
wscript.echo "End"
***Fin del script
Suscribirse a:
Comentarios (Atom)