If Abfrage mit Stringliste (GetOutStreamFromSection )

Antworten
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

If Abfrage mit Stringliste (GetOutStreamFromSection )

Beitrag von tobias »

Hi,

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 :( eine Einfache 0 bringt da nix.


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


Und hier einmal das Log:
[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
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 :/
Die Message ausgabe die jeweils beide Stringlisten ausgibt zeigt ja das beide listen mit einer 0 gefüllt sind :(


Jemand eine Idee?

Gruß
Tobias
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: If Abfrage mit Stringliste (GetOutStreamFromSection )

Beitrag von d.oertel »

Hi,

setz die werte auf string variablen und vergleich diese.

Vielleicht braucht es noch ein 'trim'

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: If Abfrage mit Stringliste (GetOutStreamFromSection )

Beitrag von tobias »

d.oertel hat geschrieben:Hi,

setz die werte auf string variablen und vergleich diese.

Vielleicht braucht es noch ein 'trim'

gruss
d.oertel
Hi,

den Umweg über eine Variable bin ich auch schon erfolglos gewesen :/ nen Trim werd ich mal probieren evtl. hängt hinter der 0 ja noch nen Leerzeichen rum...

Gruß
Tobias
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: If Abfrage mit Stringliste (GetOutStreamFromSection )

Beitrag von tobias »

Mit Trim gehts ;) war wirklich nen Leerzeichen noch da hinter ....

Vielen Dank! :)
Antworten