' Wenn Office bis 2010 oder andere MS-Produkte versehentlich deaktiviert worden sind,
' wird dessen Checkbox standardmäßig in den Windows-Update-Einstellungen ausgeblendet
' Dieses Skript re-aktiviert das Bereistellen für andere MS-Produkte (Checkbox wieder da)
' Ob Updates automatisch, manuell oder gar nicht installiert werden, wird nicht geändert!

Option Explicit
On Error Resume Next


Dim fso, wshell, wshshell, objShell, Systemdrive, Username, AppData, oFSO, RIGHTHERE, objProcess, Shell, FULLSCRIPTNAME, key, output, colProcessList, objWMI, ScriptingHostProcessName, strDesktop, ArgumentTotal, objWScriptShell, ServiceManager, NewUpdateService

'Definiere Umgebungsvariablen
SET WshShell = CreateObject ("WScript.Shell")
AppData = WshShell.Environment("Process")("APPDATA")
SET WshShell = CreateObject ("WScript.Shell")
Systemdrive = WshShell.Environment("Process")("SYSTEMDRIVE")
SET WshShell = CreateObject ("WScript.Shell")
Username = WshShell.Environment("Process")("USERNAME")
set objShell = Createobject("wscript.shell")
RIGHTHERE = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
SET WshShell = CreateObject ("WScript.Shell")
FULLSCRIPTNAME = ScriptFullName
if FULLSCRIPTNAME = "" then 
FULLSCRIPTNAME = Wscript.ScriptFullName
end if



' --- Adminrechte prüfen

If CSI_IsAdmin Then output = "YES"
If NOT CSI_IsAdmin Then output = "NO"
' msgbox output	'Message-Box, ob ich Administrator-Privilegien habe oder nicht (YES=Adminrechte, NO=Userrechte)
Function CSI_IsAdmin()
  CSI_IsAdmin = False
  On Error Resume Next
  key = CreateObject("WScript.Shell").RegRead("HKEY_USERS\S-1-5-19\Environment\TEMP")
  If err.number = 0 Then CSI_IsAdmin = True
End Function

if not output = "YES" then
Set fso = CreateObject("Scripting.FileSystemObject")

Function GetProcId()
    With GetObject("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" & CreateObject("WScript.Shell").Exec("rundll32 kernel32,Sleep").ProcessId & "'")
        GetProcId = .ParentProcessId
        .Terminate
    End With
End Function
GetProcId()
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcessList = objWMI.ExecQuery ("Select * from Win32_Process Where ProcessID='" & GetProcId & "'")
For Each objProcess in colProcessList
    ScriptingHostProcessName = objProcess.ExecutablePath
Next

Set WSHShell = CreateObject("WScript.Shell") 
strDesktop = WSHShell.SpecialFolders("Desktop") 
WSHShell.AppActivate strDesktop
WSHShell.SendKeys "{F13}"
Set Shell = CreateObject("Shell.Application")
ArgumentTotal = " " & ArgumentTotal
Shell.ShellExecute Chr(34) & ScriptingHostProcessName & Chr(34), Chr(34) & FULLSCRIPTNAME & Chr(34) & ArgumentTotal, , "runas", 1
Set objWScriptShell = Nothing

else


'  ----------------------------------------------------------
' UPDATES FÜR OFFICE 2010 UNTER "WINDOWS UPDATE" AKTIVIEREN
'  ----------------------------------------------------------
Set ServiceManager = CreateObject("Microsoft.Update.ServiceManager")
ServiceManager.ClientApplicationID = "My App"
'add the Microsoft Update Service by GUID
Set NewUpdateService = ServiceManager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")
' ----------------------------------------------------------


end if	'output muss nicht mehr YES sein (also für den Fall, dass Skript bereits per Adminrechte läuft, nehme an, dass Konfiguration ohne weitere Abfrage durchgeführt weden soll)
' ##################################