If Not @LOGONMODE
Break On
EndIf
SetConsole("Hide")
$RC=SetOption("Explicit", "On")
$RC=SetOption("NoMacrosInStrings", "On")
$RC=SetOption("NoVarsInStrings", "On")
$RC=SetOption("WrapAtEOL", "On")
;****************************************************************************
;Loeschen der Temp Dateien (deaktiviert)
;
; run "\\...local\Policies\{81C8A747-9992-4E6D-9BD4-93A7DB5090CB}\User\Scripts\Logon\DelTemp\DelTemp.exe"
;
;****************************************************************************
;****************************************************************************
;Set Wallpaper
;****************************************************************************
$RC=WriteValue ('HKCU\Control Panel\Desktop', 'TitelWallpaper', '1', REG_SZ)
If @ERROR = 0
? 'Value written to the registry'
EndIf
$RC=WriteValue ('HKCU\Control Panel\Desktop', 'WallpaperStyle', '2', REG_SZ)
If @ERROR = 0
? 'Value written to the registry'
EndIf
If SetWallpaper ('\\....local\Policies\{81C8A747-9992-4E6D-9BD4-93A7DB5090CB}\User\Scripts\Logon\Hintergrundbild\BSL.bmp', 1) = 0
? 'Set current wallpaper to BSL.bmp...'
EndIf
;****************************************************************************
;Set Uservariablen
;****************************************************************************
Set "temp=C:\temp"
Set "tmp=C:\temp"
;****************************************************************************
;Set User Ansicht auf Detail
;****************************************************************************
Run "\\....local\Policies\{81C8A747-9992-4E6D-9BD4-93A7DB5090CB}\User\Scripts\Logon\Ansicht-Explorer-Details.exe"
;****************************************************************************
;Definieren der Server
;****************************************************************************
$fs01="\\SRV1"
$fs02="\\SRV2"
$fs03="\\SRV3"
$fs07="\\SRV4"
$fs08="\\SRV5"
$fs09="\\SRV6"
$fs10="\\SRV7"
;****************************************************************************
;Verbinden von Netzwerklaufwerken
;****************************************************************************
Use "*" /delete
;****************************************************************************
;Verbinden von Netzwerklaufwerken für die EDV
;****************************************************************************
If InGroup("EDVGruppe")
Use Z: /delete /persistent
Use Z: $fs02+"\Test"
EndIf
;****************************************************************************
;Verbinden der Netzwerkdrucker für alle Abteilungen
;****************************************************************************
;Script Options
Dim $RC
;***********
;Printserver
;***********
Dim $ERPServer
$ERPServer="SRV5"
;****************************************************************************
;Netzwerkdrucker
;****************************************************************************
Dim $EDV
$EDV="Brother_.6"
;****************************************************************************
;Verbinden der Netzwerkdrucker für die EDV
;****************************************************************************
If InGroup("EDVGruppe")
$rc = DelPrinterConnection("\\"+$ERPServer+"\"+$EDV)
$RC = AddPrinterConnection("\\"+$ERPServer+"\"+$EDV)
EndIf
;****************************************************************************
; Hardware Informationen von allen Domain PC´s auslesen
;****************************************************************************
; Umleitung der Ausgaben auf eine Datei mit Rechnernamen im Dateinamen
CLS
Dim $result
Dim $verzeichnis, $datei, $dimm, $computer
$verzeichnis = '\\...\Anmeldungen\'
$datei = @Hostname+"_info.txt"
If Not Exist($verzeichnis)
? 'Kann Verzeichnis '+$verzeichnis+' nicht finden'
Exit 1
EndIf
$rc = Open(1,$verzeichnis+$datei, 5)
If @error
? 'Error '+@error+' - '+@serror
EndIf
$rc = WriteLine(1 "Datum der Erfassung = " + @date + @CRLF)
$rc = WriteLine(1 "Monat = " + @MONTH + @CRLF)
$rc = WriteLine(1 "Tag = " + @DAY + @CRLF)
$rc = WriteLine(1 "Uhrzeit = " + @time + @CRLF)
$rc = WriteLine(1 "Letzter Login von = " + @FULLNAME + @CRLF)
$rc = WriteLine(1 "User Privilegien = " + @PRIV + @CRLF)
$rc = WriteLine(1 "PC Name = " + @WKSTA + @CRLF)
$rc = WriteLine(1 "IP Adresse = " + @IPADDRESS0 + @CRLF)
$rc = WriteLine(1 "MAC Adresse = " + @ADDRESS + @CRLF)
$rc = WriteLine(1 "OS Name = " + @PRODUCTTYPE + @CRLF)
$rc = WriteLine(1 "Service Pack = " + @CSD + @CRLF)
$rc = WriteLine(1 "Install Date = " + WMIQuery("InstallDate","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "OS Version Number = " + WMIQuery("Version","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "OS Build Number = " + WMIQuery("BuildNumber","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "Sprache = " + @SYSLANG + @CRLF)
$rc = WriteLine(1 "Registered User = " + WMIQuery("RegisteredUser","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "Boot Device = " + WMIQuery("BootDevice","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "System Device = " + WMIQuery("SystemDevice","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "Windows Directory = " + WMIQuery("WindowsDirectory","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "System Directory = " + WMIQuery("SystemDirectory","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "Last Boot Time = " + WMIQuery("LastBootupTime","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "OS Serial Number = " + WMIQuery("SerialNumber","Win32_OperatingSystem")[0] + @CRLF)
$rc = WriteLine(1 "System Manufacturer is = " + WMIQuery("Manufacturer","Win32_ComputerSystem")[0] + @CRLF)
$rc = WriteLine(1 "System Model is = " + WMIQuery("Model","Win32_ComputerSystem")[0] + @CRLF)
$rc = WriteLine(1 "System Serial Number is = " + WMIQuery("SerialNumber","Win32_BIOS")[0] + @CRLF)
$rc = WriteLine(1 "System BIOS Version is = " + WMIQuery("SMBIOSBIOSVersion","Win32_BIOS")[0] + @CRLF)
$rc = WriteLine(1 "System BIOS Date is = " + WMIQuery("Version","Win32_BIOS")[0]
$rc = WriteLine(1 "CPU Modell = " + @CPU + @CRLF)
$rc = WriteLine(1 "CPU Manufacturer: = " + WMIQuery("manufacturer","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Description: = " + WMIQuery("description","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "CPU Speed is = " + @MHZ + " Mhz" + @CRLF)
$rc = WriteLine(1 "Maximum Clock Speed = " + WMIQuery("maxclockspeed","Win32_Processor")[0]+" Mhz" + @CRLF)
$rc = WriteLine(1 "L2 Cache Size: = " + WMIQuery("l2cachesize","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "L2 Cache Speed: = " + WMIQuery("l2cachespeed","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Family: = " + WMIQuery("family","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Level: = " + WMIQuery("level","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Stepping: = " + WMIQuery("stepping","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Device ID: = " + WMIQuery("deviceid","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "Unique ID: = " + WMIQuery("uniqueid","Win32_Processor")[0] + @CRLF)
$rc = WriteLine(1 "System Memory = " + CInt(Val(WMIQuery("TotalPhysicalMemory","Win32_LogicalMemoryConfiguration")[0])/1024) + " MB" + @CRLF)
For Each $dimm in WMIQuery("Capacity","Win32_PhysicalMemory")
$rc = WriteLine(1 "Dimm Size = " + CInt(Val($dimm) / 1048576) + " MB" + @CRLF)
Next
$rc = WriteLine(1 "Disk Name/s = " + Join(WMIQuery("name","Win32_LogicalDisk"),', ') + @CRLF)
$rc = WriteLine(1 "Volume Name = " + Join(WMIQuery("volumename","Win32_LogicalDisk"),', ') + " MB" + @CRLF)
$rc = WriteLine(1 "Size = " + Join(WMIQuery("size","Win32_LogicalDisk"),', ')+ " MB" + @CRLF)
$rc = WriteLine(1 "File System = " + Join(WMIQuery("filesystem","Win32_LogicalDisk"),', ') + @CRLF)
$rc = WriteLine(1 "Free Space = " + Join(WMIQuery("freespace","Win32_LogicalDisk"),', ')+" MB" + @CRLF)
$rc = WriteLine(1 "Video Card is = " + WMIQuery("Description","Win32_VideoController")[0] + @CRLF)
$rc = WriteLine(1 "Video Res is = " + WMIQuery("VideoModeDescription","Win32_VideoController")[0] + @CRLF)
$rc = WriteLine(1 "Modem is = " + WMIQuery("Description","Win32_POTSModem")[0] + @CRLF)
$rc = Close(1)
Dim $SO
Dim $RegArray,$Value,$Product,$Key
$RegArray = SearchReg("HKLM\Software\Microsoft","DigitalProductID",2)
If Not @Error
For Each $Value in $RegArray
If $Value
$Product = ReadValue(Join(Split($value,'<=>DigitalProductId'),''),'ProductName')
If $Product
$Key = Get_Product_Key(ReadValue(Join(Split($value,'<=>DigitalProductId'),''), 'DigitalProductID'))
? + $Product + ' = ' + $Key ?
EndIf
EndIf
Next
EndIf
$computer = @WKSTA
? WMIQuery2("Services on","Win32_Service",$computer)
? WMIQuery2("Processes on","Win32_Process",$computer)
$result=RedirectOutput('')
Exit 0
Function SearchReg($Key,$Str,$SrcIn)
Dim $Idx,$vName,$Value,$num,$SubKey,$fArr,$mbr
$SearchReg = ''
$num = 0
$Idx = 0
$vName = EnumValue($Key,$Idx)
Do
$mbr = ''
If $SrcIn & 1
$Value = ReadValue($Key,$vName)
If InStr($Value,$Str)
$mbr = $Key + "<=>" + IIf($vName,$vName,'<Default>')
EndIf
EndIf
If ($SrcIn & 2) And InStr($vName,$Str)
$mbr = $Key + "<=>" + $vName
EndIf
If $mbr
ReDim Preserve $SearchReg[$num]
$SearchReg[$num] = $mbr
$num = $num + 1
EndIf
$Idx = $Idx + 1
$vName = EnumValue($Key,$Idx)
Until @Error
$Idx = 0
$SubKey = EnumKey($Key,$Idx)
While $SubKey
If ($SrcIn & 4) And InStr($SubKey,$Str)
ReDim Preserve $SearchReg[$num]
$SearchReg[$num] = $Key + '\' + $SubKey + "<=><KeyName>"
$num = $num + 1
EndIf
$fArr = SearchReg($Key + "\" + $SubKey,$Str,$SrcIn)
If @Error = 0
For Each $mbr in $fArr
ReDim Preserve $SearchReg[$num]
$SearchReg[$num] = $mbr
$num = $num + 1
Next
EndIf
$Idx = $Idx + 1
$SubKey = EnumKey($Key,$Idx)
Loop
Exit VarType($SearchReg) = 8
EndFunction
Function Get_Product_Key($sProductID)
Dim $aiKeyChars[24],$bProductKey[15],$ilByte,$i,$sCDKey,$nCur
$aiKeyChars = Split('B,C,D,F,G,H,J,K,M,P,Q,R,T,V,W,X,Y,2,3,4,6,7,8,9',',')
For $i = 0 to 14
$bProductKey[$i] = Val("&"+SubStr($sProductID,$i*2+105,2))
Next
$sCDKey = ""
For $ilByte = 24 to 0 Step -1
$nCur = 0
For $i=14 to 0 Step -1
$nCur = $nCur * 256 | $bProductKey[$i]
$bProductKey[$i] = Int($nCur / 24)
$nCur = $nCur Mod 24
Next
$sCDKey = $aiKeyChars[$nCur] + $sCDKey
If $ilByte Mod 5 = 0 And $ilByte <> 0
$sCDKey = "-" + $sCDKey
EndIf
Next
$Get_Product_Key = $sCDKey
EndFunction
Function WMIQuery($sWhat, $sFrom, Optional $sComputer, Optional $sWhere, Optional $x, Optional $root)
Dim $sQuery, $objEnum, $sValue, $sItem, $TMP, $SystemSet, $, $objInstance
If Not $sComputer $sComputer="." EndIf
If InStr($sComputer,'\') $sComputer=Right($sComputer,InStrRev($sComputer,'\')) EndIf
If Not $root $root="\root\cimv2" EndIf
$sQuery = "Select " + $sWhat + " From "+ $sFrom
If $sWhere And $x $sQuery = $sQuery+" Where "+$sWhere+" = '"+$x+"'" EndIf
$SystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$sComputer+$root)
If @ERROR Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf
$objEnum = $SystemSet.ExecQuery($sQuery)
If @ERROR Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf
For Each $objInstance in $objEnum
If $objInstance
$=Execute("$"+"sValue = $"+"objInstance."+$sWhat)
If VarType($sValue) & 8192
For Each $sItem in $sValue $tmp=$tmp+'|'+Trim($sItem) Next
Else
$tmp=$tmp+'|'+Trim($svalue)
EndIf
EndIf
Next
$WMIQuery = Split(SubStr($tmp,2),'|')
Exit Val("&"+Right(DecToHex(@ERROR),4))
EndFunction
Function WMIQuery2($what,$where,$computer)
Dim $wmi, $list, $objs, $obj
$wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" + $computer + "/root/cimv2")
$list = "" $objs = $wmi.instancesof($where)
For Each $obj in $objs
$list = $list + $obj.description + Chr(13) + Chr(10)
Next
$list=Left($list, Len($list))
? $what +" "+ $computer + Chr(13) + Chr(10) + $list
EndFunction