ich probiere grade ein wenig rum. Dabei ist mir was seltsames aufgefallen!
Ich habe eine Stringliste die mit getOutStreamFromSection mit der ausgabe einer ShellInAnIcon section gefüllt wird. Die ausgabe ist nur eine zahl !
Nun habe ich eine If Abfrage bei der überprüft werden soll ob der wert 0 ist ! wenn nicht wird der rechner neugestartet und das script läuft erneut durch.
Leider klappt das mit der if abfrage nicht. Es kommt immer unwahr dabei raus. Außer ich vergleiche den String mit sich selber oder fülle meinen vergleichs string ebenfalls über GetOutStreamFromSection

Code: Alles auswählen
[INITIAL]
SetLogLevel = 9
DefStringList $counterString$
set $counterString$ = createStringList ('10')
DefStringList $counterMin$
set $counterMin$ = createStringList ('0')
[ACTIONS]
ShellInAnIcon_Forceupdates
ShellInAnIcon_Check powershell.exe
set $counterString$ = getOutStreamFromSection('ShellInAnIcon_check')
message takeString(0,$CounterString$)
message takeString(0,$CounterMin$)
if takeString(0,$CounterString$) = takeString(0,$CounterMin$)
comment "Keine Updates mehr Verfügbar"
else
;ExitWindows /ImmediateReboot !!!!!!!!!!(Auskommentiert zum debuggen)!!!!!!!!!!!!
comment weitere Updates verfügbar reboot wurde initialisiert !
endif
[shellInAnIcon_Check]
@echo off
Powershell %scriptpath%\check.ps1
@echo on
[ShellInAnIcon_Forceupdates]
net stop wuauserv
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
Reg Delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
REG Delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v ScheduledInstallDate /f
REG Add "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v ScheduledInstallDate /f /d "2010-01-01 06:00:00"
net start wuauserv
wuauclt /detectnow
wuauclt /updatenow
Wenn ich die Stringliste mit Set mit einer 0 fülle klappt die If abfrage... also irgendwie muss der wert der von GetOutStreamFromSection auch wenn er rein optisch identisch ist doch irgendwie anders sein :/[7] [07.04.2012 13:39:48]
[7] [07.04.2012 13:39:48] (created string list $counterString$)
[5] [07.04.2012 13:39:48]
[5] [07.04.2012 13:39:48] Set $counterString$ = createStringList ('10')
[6] [07.04.2012 13:39:48] retrieving strings from createStringList [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:39:48] (string 0)10
[7] [07.04.2012 13:39:48]
[7] [07.04.2012 13:39:48]
[7] [07.04.2012 13:39:48] (created string list $counterMin$)
[5] [07.04.2012 13:39:48]
[5] [07.04.2012 13:39:48] Set $counterMin$ = createStringList ('0')
[6] [07.04.2012 13:39:48] retrieving strings from createStringList [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:39:48] (string 0)0
[7] [07.04.2012 13:39:48]
[5] [07.04.2012 13:39:48]
[5] [07.04.2012 13:39:48] Execution of ShellInAnIcon_Forceupdates
[6] [07.04.2012 13:39:48] c:\opsi.org\tmp\_winstbat_11.bat saved back
[6] [07.04.2012 13:39:48] Executing "cmd.exe" /C "c:\opsi.org\tmp\_winstbat_11.bat"
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] output:
[6] [07.04.2012 13:39:53] --------------
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>net stop wuauserv
[6] [07.04.2012 13:39:53] Windows Update wird beendet.
[6] [07.04.2012 13:39:53] Windows Update wurde erfolgreich beendet.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
[6] [07.04.2012 13:39:53] FEHLER: Der angegebene Registrierungsschlüssel bzw. Wert wurde nicht gefunden.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
[6] [07.04.2012 13:39:53] FEHLER: Der angegebene Registrierungsschlüssel bzw. Wert wurde nicht gefunden.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>Reg Delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
[6] [07.04.2012 13:39:53] Der Vorgang wurde erfolgreich beendet.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>REG Delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v ScheduledInstallDate /f
[6] [07.04.2012 13:39:53] Der Vorgang wurde erfolgreich beendet.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>REG Add "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v ScheduledInstallDate /f /d "2010-01-01 06:00:00"
[6] [07.04.2012 13:39:53] Der Vorgang wurde erfolgreich beendet.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>net start wuauserv
[6] [07.04.2012 13:39:53] Windows Update wird gestartet.
[6] [07.04.2012 13:39:53] Windows Update wurde erfolgreich gestartet.
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>wuauclt /detectnow
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] C:\Program Files\opsi.org\opsi-client-agent\opsi-winst>wuauclt /updatenow
[6] [07.04.2012 13:39:53]
[6] [07.04.2012 13:39:53] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [07.04.2012 13:39:53] Search "c:\opsi.org\tmp\"
[6] [07.04.2012 13:39:53] File "c:\opsi.org\tmp\_winstbat_11.bat"
[6] [07.04.2012 13:39:53] The file has been deleted
[5] [07.04.2012 13:39:53]
[5] [07.04.2012 13:39:53] Execution of ShellInAnIcon_Check
[6] [07.04.2012 13:39:53] c:\opsi.org\tmp\_winstbat_12.bat saved back
[6] [07.04.2012 13:39:53] Executing "cmd.exe" /C "c:\opsi.org\tmp\_winstbat_12.bat" powershell.exe
[6] [07.04.2012 13:40:01]
[6] [07.04.2012 13:40:01] output:
[6] [07.04.2012 13:40:01] --------------
[6] [07.04.2012 13:40:01] 0
[6] [07.04.2012 13:40:01]
[6] [07.04.2012 13:40:01] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [07.04.2012 13:40:01] Search "c:\opsi.org\tmp\"
[6] [07.04.2012 13:40:01] File "c:\opsi.org\tmp\_winstbat_12.bat"
[6] [07.04.2012 13:40:01] The file has been deleted
[5] [07.04.2012 13:40:01]
[5] [07.04.2012 13:40:01] Set $counterString$ = getOutStreamFromSection('ShellInAnIcon_check')
[5] [07.04.2012 13:40:01]
[5] [07.04.2012 13:40:01] Execution of ShellInAnIcon_check
[6] [07.04.2012 13:40:01] c:\opsi.org\tmp\_winstbat_13.bat saved back
[6] [07.04.2012 13:40:01] Executing "cmd.exe" /C "c:\opsi.org\tmp\_winstbat_13.bat"
[6] [07.04.2012 13:40:05]
[6] [07.04.2012 13:40:05] output:
[6] [07.04.2012 13:40:05] --------------
[6] [07.04.2012 13:40:05] 0
[6] [07.04.2012 13:40:05]
[6] [07.04.2012 13:40:05] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [07.04.2012 13:40:05] Search "c:\opsi.org\tmp\"
[6] [07.04.2012 13:40:05] File "c:\opsi.org\tmp\_winstbat_13.bat"
[6] [07.04.2012 13:40:05] The file has been deleted
[6] [07.04.2012 13:40:05] retrieving strings from getOutStreamFromSection [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:40:05] (string 0)0
[7] [07.04.2012 13:40:05]
[6] [07.04.2012 13:40:05] retrieving strings from $CounterString$ [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:40:05] (string 0)0
[7] [07.04.2012 13:40:05]
[5] [07.04.2012 13:40:05] message 0
[6] [07.04.2012 13:40:05] retrieving strings from $CounterMin$ [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:40:05] (string 0)0
[7] [07.04.2012 13:40:05]
[5] [07.04.2012 13:40:05] message 0
[5] [07.04.2012 13:40:05]
[5] [07.04.2012 13:40:05] If
[6] [07.04.2012 13:40:05] retrieving strings from $CounterString$ [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:40:05] (string 0)0
[7] [07.04.2012 13:40:05]
[6] [07.04.2012 13:40:05] retrieving strings from $CounterMin$ [switch to loglevel 7 for debugging]
[7] [07.04.2012 13:40:05] (string 0)0
[7] [07.04.2012 13:40:05]
[5] [07.04.2012 13:40:05] takeString(0,$CounterString$) = takeString(0,$CounterMin$) <<< result false
[5] [07.04.2012 13:40:05] Then
[5] [07.04.2012 13:40:05]
[5] [07.04.2012 13:40:05] Else
[5] [07.04.2012 13:40:05] EndIf
[1] [07.04.2012 13:40:05] ___________________
[1] [07.04.2012 13:40:05] script finished
[1] [07.04.2012 13:40:05] 0 errors
[1] [07.04.2012 13:40:05] 0 warnings
[1] [07.04.2012 13:40:05]
[1] [07.04.2012 13:40:05]
[6] [07.04.2012 13:40:06] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [07.04.2012 13:40:06] Search "c:\opsi.org\tmp\"
[8] [07.04.2012 13:40:06] Temp bat files deleted, next: free script
[8] [07.04.2012 13:40:06] End of CreateAndProcessScript
Die Message ausgabe die jeweils beide Stringlisten ausgibt zeigt ja das beide listen mit einer 0 gefüllt sind

Jemand eine Idee?
Gruß
Tobias