Scripting

WSUS Icon für nicht Admins

@echo off
:: Dieses Script schaltet das WSUS Icon für User auf dem PC an und auch wieder aus
:: PSEXEC.exe wird benötigt
color 70
cls
echo Dieses Script muss mit Adminrechten der Zielmaschine gestartet werden!
echo ======================================================================
echo.
:loop
echo --------------------------------------
set /p pc=Bitte PC Name eingeben:
echo --------------------------------------
echo.
echo Stoppe WSUS ...
start /wait psexec.exe \\%pc% -accepteula net stop wuauserv
echo Aktiviere WSUS Icon ...

repairWBEM.cmd

@echo off
%systemdrive%
del %windir%\registration\*.* /Q 
cd %windir%\system32\wbem
for /f %%s in ('dir /b *.dll') do regsvr32 /s %%s
wmiprvse /regserver
winmgmt /regserver 
sc config winmgmt start= disabled
net stop SharedAccess /y
net stop winmgmt /y 
if exist repository.old rmdir /s/q repository.old
rename repository repository.old
sc config winmgmt start= auto 
net start SharedAccess
exit

HiddenUpdates.XML

  <?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
- <HiddenStatus>
     <ServerInfo Name="D-GE-MNG02" WSUSVersion="3.2.7600.226" /> 
     <GeneratingInfo FromDate="10/9/2009 11:47:27 AM" ToDate="1/7/2010 11:47:27 AM" Entries="3402" /> 
   - <HiddenUpdate>
        <Computer Name="p04521" Date="1/6/2010 10:37:18 AM" /> 
        <UpdateInfo Title="Update for Windows XP (KB971737)" Description="Install this update to help strengthen authentication credentials in specific scenarios. After you install this item, you may have to restart your computer." Severity="Unspecified" />

HiddenUpdatesToXML.vb

Imports Microsoft.UpdateServices.Administration
Imports System
Imports System.Xml
Imports System.Collections.Generic
Imports System.Text
Imports System.IO
 
Module HiddenUpdatesToXML
 
    Const usage As String = vbCrLf & "HiddenUpdates.exe creates an HTML file with a " & _
                           "list of computers where updates are set hidden by users." & _
                            vbCrLf & vbCrLf & _
                            "USAGE:" & vbCrLf & vbCrLf & _
                            "    HiddenUpdates.exe 90" & vbCrLf
 
    Sub Main(ByVal args() As String)

UnhideHiddenUpdates.vbs

On Error Resume Next
Dim oSearcher, oSearchResult, i, oUpdate
Set oSearcher = CreateObject("Microsoft.Update.Searcher")
oSearcher.Online = False
Set oSearchResult = oSearcher.Search("IsHidden=1")
If Err.Number = 0 Then
	If oSearchResult.Updates.Count > 0 Then
		For i = 0 To oSearchResult.Updates.Count - 1
			Set oUpdate = oSearchResult.Updates(i)
			oUpdate.IsHidden = False
		Next
	End If
End If

UnhideHiddenUpdates.au3

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Fileversion=1.0.0.5
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_Res_LegalCopyright=Wolfgang Führer
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;----------------------------------------------
; UnhideHiddenUpdates.au3
; --Beschreibung--
; Wolfgang Führer
; 07.01.2010  -  11:30:55,06
;----------------------------------------------
 
Opt("MustDeclareVars", 0) ;0=no, 1=require pre-declare

WSUS Patchübersicht

-- Abfrage an die WSUS Datenbank um eine Übersicht
-- des Patchstatus aller PCs zu bekommen
-- September 2008 - Wolfgang Führer
 
SELECT 
T.TargetID,
T.FullDomainName,
M.Downloaded,
M.Failed,
M.InstalledPendingReboot,
T.IPAddress,
M.Installed,
M.NotInstalled,
M.Unknown,
T.LastSyncTime,
M.LastChangeTime
FROM 
tbComputerTarget T, tbComputerSummaryForMicrosoftUpdates M 
WHERE 
T.TargetID = M.TargetID
ORDER BY 
T.FullDomainName

OutlookFeiertage.vbs

' --------------------------------------------------
' FeiertageLocal.vbs
' Clientseitiges eintragen von Feiertagen in Outlook
' 15.01.2008 Wolfgang Führer
' --------------------------------------------------
 
' Const
Const olAppointmentItem = 1
Const ForAppending = 8
Const olFolderCalender = 9
' EndConst
 
Dim arrAppointmentsDate() 'array für termine datum
Dim arrAppointmentsSubject() 'array für termine text
Dim objOutlook
Dim intFrom 'ab diesem jahr
intFrom = 2008
Dim strLogName 'name des logfiles
strLogName   = "FeiertageLocal.log"

Outlook Feiertage

Kaum ist der Jahreswechsel vorbei, fällt Outlook unangenehm auf. Die aktuellen Feiertage sind nicht mehr eingetragen und müssen aktualisiert werden. Am sinnvollsten macht man das mit einem Script, dass die Feiertage in alle Mailboxen auf dem Exchange-Server einträgt. Bewährt hat sich da das Script von http://www.msexchangefaq.de/tools/feiertage.htm .

ForceWSUS.cmd

::::::::::::::::::::::::::::::::::::::::::::
:: forceWSUS.cmd
:: Wolfgang Führer
:: 12.12.2007
::::::::::::::::::::::::::::::::::::::::::::
@echo off
color 71
 
:: hier bitte variablen des WSUS Servers definieren!
set SERVER=servername
set PORT=portnummer
 
call :maketime & title WSUS Integration - Start %zeit%
echo WSUS Integration
echo ----------------
echo.
 
:: Zuerst wird der WSUS Client installiert
 
call :maketime & echo %zeit% Installiere WSUS Client ...
start /wait WindowsUpdateAgent30-x86.exe /wuforce /quiet
ping 127.0.0.1 -n 30 >nul
Inhalt abgleichen