See the script below for some of the changes. I did not make all changes I suggested but this should get you going. I would also DIM all variables at the top of the script. You have Explicit set to on so all vars must be DIMmed. If you DIM them at the top instead of when you need them you can easily move parts of the scrip up or down without getting any error about undeclared variables.

 Code:
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
_________________________
Mart

- Chuck Norris once sold ebay to ebay on ebay.