Because of the only build-in solution to get the datalog-files of a Siemens S7-1200 is through the webservice, I wrote a script that automatically
download all datalogs. ‘Additional the script can delete all log files of the machine with a parameter switch.

The first step of the script is to login in to the webservice to create an actually cookie with the tool wget. With the session IDs I can get all available datalogs and start the download with the help of curl.

The script is not verfy flexibel, so you have to change a few lines to environment.

First install GnuWin32 -> to get wget for Windows. Download

Copy all files to C:\Curlwget\

Open the script with any editor and change the IP-Adresses:
192.168.xxx.xxx

Also change the path where the datalog files will be saved:
Line 36 “\\server\share\”

To automatically download the files create a task in the Taskplaner:
Programm/script: powershell.exe
Add arguments (Optional): -command “& ‘C:\Curlwget\Download.ps1′
Start in (optional): C:\Curlwget

To delete all log files, run the script with the parameter -loeschen.

That’s it.

Skript:

Param([switch]$loeschen=$false)
write-host $loeschen
(C:\Curlwget\GnuWin32\bin\wget --user-agent=Mozilla --no-check-certificate --cookies=on --save-cookies C:\Curlwget\cookies.txt --keep-session-cookies --post-data "Login=rc&Password=rc" https://192.168.xxx.xxx/FormLogin)
Remove-Item "C:\Curlwget\Default.mwsl"

$ad_secure_session = Get-content C:\Curlwget\cookies.txt | select-string -Pattern siemens_ad_secure_session
$ad_session = Get-content C:\Curlwget\cookies.txt | select-string -Pattern siemens_ad_session

$ad_secure_session = $ad_secure_session.toString().SubString(54)
$ad_session = $ad_session.toString().SubString(48)
write-host C:\Curlwget\curl.exe "https://192.168.xxx.xxx/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/DataLogs/" -H "Cookie: siemens_automation_language=de; siemens_ad_session=$ad_session; siemens_ad_secure_session=$ad_secure_session" --compressed --insecure
$output = (C:\Curlwget\curl.exe "https://192.168.xxx.xxx/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/DataLogs/" -H "Cookie: siemens_automation_language=de; siemens_ad_session=$ad_session; siemens_ad_secure_session=$ad_secure_session" --compressed --insecure) | Out-String

$anfang = Select-String "<input type='hidden' name='OldName' value='" -input $output -AllMatches
$ende = Select-String "csv'>" -input $output -AllMatches

$dateien = @()
for($i=0;$i -ne $anfang.matches.count;$i++)
{
	$temp = $ende.matches.index[$i] - $anfang.matches.index[$i]
	$dateien += $output.Substring($anfang.matches.index[$i]+43,$temp-40)

}

if($loeschen){
$dateien | foreach-object{
$_
if($_ -ne "Vorlage44.csv") {
(C:\Curlwget\curl.exe "https://192.168.xxx.xxx/FileBrowser/DeleteFile?Path=/DataLogs/$_&x=9&y=5" -H "Referer: https://192.168.xxx.xxx/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/DataLogs/" -H "Cookie: siemens_automation_language=de; siemens_ad_session=$ad_session; siemens_ad_secure_session=$ad_secure_session" -H "Connection: keep-alive" --compressed --insecure)
}
}
}else{
#Dateien löschen
$dateien | foreach-object{
$_
(C:\Curlwget\curl.exe "https://192.168.xxx.xxx/FileBrowser/Download?Path=/DataLogs/$_" -H "Referer: https://192.168.xxx.xxx/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/DataLogs/" -H "Cookie: siemens_automation_language=de; siemens_ad_session=$ad_session; siemens_ad_secure_session=$ad_secure_session" -H "Connection: keep-alive" --compressed --insecure --output "\\server\share\$_")

}
}

Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

In dieser Anleitung wird die Installation und Einrichtung des VMware View Clients im Kiosk Modus auf Ubuntu 10.04.04 erläutert.

Inhalt

1.   Installation Ubuntu 10.04.04

Root Passwort für thinadmin festlegen

2.   (Optional) Bildschirmschoner installieren

3.   Eingeschränkten Benutzer anlegen

4.   VMware View Client Installation

5.   Login Session anlegen

6.   Login-Session festlegen

7.   Loginhintergrundbild festlegen

8.   Offene Punkte/Wünsche

1.  Installation Ubuntu 10.04.04

Standardinstallation von Ubuntu durchgeführt. Da diverse Einstellungen in Ubuntu 12.04 nicht vorhanden sind, wurde die Vorgänger Version bevorzugt (Offene Punkte/Wünsche).

Name: Thinadmin

Benutzername: thinadmin

Passwort: standard Passwort

Rechnername: Thinstation1…n

Weiter.

Nach der Installation wird der Rechner neugestartet.

Als erstes die Paketverwaltung öffnen und alle Aktualisierung von Ubuntu installieren.


Root Passwort für thinadmin festlegen:

Für zukünfigte „sudo“-Befehle muss das root Passwort aktiviert werden.

Über Programme – Zubehör – Terminal öffnen.

sudo passwd root

2.  (Optional) Bildschirmschoner installieren

Da der Standardbildschirmschoner nicht so geeignet für einen Skriptaufruf ist, wird der xScreensaver installiert.

Über Programme – Zubehör – Terminal öffnen.

sudo apt-get install xscreensav* -y

3.  Eingeschränkten Benutzer anlegen

Dieser Benutzer wird so konfiguriert, dass nur der VMware View Client aufgerufen wird und keine Systemeinstellungen geändert werden können.

Benutzer anlegen:

System – Systemeinstellungen – Benutzer und Gruppen aufrufen.


Benutzername: Benutzer

Passwort freiwählbar und bei der Anmeldung nicht abfragen anhaken.

Unter erweitere Einstellungen können weitere Anpassung an den Berechtigungen eingestellt werden.

Nachdem der Benutzer angelegt wurde, den Thinadmin abmelden und mit dem Benutzer anmelden, so dass das Profil erstellt wird.

Wenn der xScreensaver installiert wurde, startet den xScreensaver und bestätigt die Meldungen, dass der Gnome Bildschirmschoner deaktiviert wird.

Wieder abmelden und mit dem Thinadmin anmelden.

4.  VMware View Client Installation

Um die Installation vom View-Client durchzuführen, müssen erst die Canonical Partner Quellen im Software Center aktiviert werden.

Software Center starten – Bearbeiten – Andere Quellen:

Im Terminal folgende Befehle ausführen:

sudo apt-get update

apt-cache search vmware

In der Liste (ziemlich weit unten) findet man den vmware-view-client

apt-get install vmware-view-client

exit

5.  Login Session anlegen

Damit beim Benutzer keine normale GUI/Desktop lädt, wird eine neue Login-Session erstellt.

Terminal starten und folgende Datei anlegen:

sudo gedit /usr/share/xsessions/kiosk.desktop

Nun folgenden Code in die Datei eintragen:

[Desktop Entry]

Encoding=UTF-8

Name=Kiosk Mode

Comment=VMware View Kiosk Mode

Exec=/usr/share/xsessions/VMwareView.sh

Type=Application

Dokument speichern und schließen.

Als nächstes wird das o.a. verknüpfte Skript erstellt.

sudo gedit /usr/share/xsessions/VMwareView.sh

 

Folgenden Code in die neue Datei eintragen:

#!/bin/bash

res=$(xrandr -q | awk -F 'current' -F ',' 'NR==1 {gsub("(|current)","");print $2}')

resx=$(echo $res | awk '{split($0,array,"x")} END{print array[1]}')

resy=$(echo $res | awk '{split($0,array,"x")} END{print array[2]}')

resolution=$(echo ""$resx"x"$resy | tr -d ' ')

vmware-view --desktopSize=$resolution -q  --serverURL=view.domäne.com --nomenubar --userName="benutzername" --domainName=Domäne

In diesem Skript wird die verwendete Auflösung des Bildschirms ermittelt und als Parameter an den vmware-view weitergegeben. Es gibt zwar den Parameter –fullscreen, der auch in normalen Sessions funktioniert, aber leider nicht bei der zukünftigen Benutzeranmeldung ohne Gnome-Session.

Dem Skript gibt man noch die richtigen Rechte:

sudo chmod /usr/share/xsessions/VMwareView.sh

6.  Login-Session festlegen

Damit der Benutzer sich mit der richtigen Session anmeldet, unter System – Systemeinstellungen – Anmeldebildschirm folgende Daten ändern:

Die automatische Anmeldung erfolgt nach 12 Sekunden. Bis dahin ist auch eine Anmeldung mit dem Thinadmin möglich.

7.  Login-Hintergrundbild festlegen

Um den Hintergrund auf dem Login Screen zu ändern, sind folgende Schritte durchzuführen:

Wenn es kein Standardhintergrundbild oder -farbe sein soll, muss zunächst das Hintergrundbild in den entsprechenden Ordner kopiert werden:

sudo cp  my_cool_bg.jpg /usr/share/backgrounds

Danach wird der LoginScreen angepasst:

sudo cp /usr/share/applications/gnome-appearance-properties.desktop /usr/share/gdm/autostart/LoginWindow

Jetzt einmal ausloggen und auf dem Login Screen erscheint die Hintergrundauswahlmaske. Hier einfach den gewünschten Hintergrund auswählen und übernehmen. Damit dieses Fenster zukünftig nicht mehr erscheint, den zuvor ausgeführten Befehl rückgängig machen:

sudo rm /usr/share/gdm/autostart/LoginWindow/gnome-appearance-properties.desktop

Fertig!

 

 

8.  Offene Punkte/Wünsche

 

  • VMware View Client –Fullscreen und –Menubar Parameter auch im KioskMode verwendbar machen.
  • Umsetzung mit der neuesten Ubuntu Version.

Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

Leider gibt es immer wieder Programme, die nicht als Dienst installiert werden können, aber täglich laufen müssen.

Als Beispiel haben wir hier den Birthdaymailer. Dieses Programm verschickt um 8:00 Emails an die Kunden, die Geburtstag haben.

Das Programm ist auf einem Windows Server 2008 R2 installiert. Eine Installation als Hintergrunddienst ist nicht möglich. Es gibt natürlich Programme, wie RunAsSvc um Executables als Dienst einzurichten, jedoch funktionierte dies im Zusammenhang nicht zuverlässig, da der Email Versand manchmal versagte. Dadurch wird eine Fehlermeldung angezeigt auf die nicht reagiert wird.

Zur Erklärung:

Wenn ein Benutzer angemeldet ist, läuft der Prozess bmstart.exe im Hintergrund. Um 8:00 Uhr wird das Hauptprogramm Birthdaymailer (bm.exe) gestartet und die entsprechenden Emails versendet. Danach schließt sich das Programm wieder, sofern keine Fehlermeldung erscheint. Komischerweise bleibt das Programm auch ohne Fehlermeldung manchmal offen. Das Problem hierbei ist, dass am folgenden Tag keine Emails verschickt werden, solange das Hauptprogramm geöffnet ist.

In diesem Zusammenhang habe ich ein Skript geschrieben, welches einen Benutzer per RDP an den Server anmeldet. Bei der Anmeldung wird, wie bereits erwähnt, automatisch der Prozess bmstart.exe geladen. Wenn das Hauptprogramm noch offen ist, wird dies geschlossen und der Benutzer wird vom Server getrennt (nicht abgemeldet).

Das Skript sieht wie folgt aus:

$servername = "server"
$passwort = "birthdaymailer"

Function Open-RDPSession($Server,$User,$Password)
{
    Write-Host "- saving RDP credential" -ForegroundColor green
    cmdkey /generic:$server /user:$user /pass:$Password
    write-Host "- opening RDP" -ForegroundColor green
    mstsc /v:$Server /W:800 /h:600

}

$username = "domain\birthdaymailer"

Open-RDPSession $servername $username $passwort

Start-Sleep -s 80

qwinsta /server:$servername | ?{$_ -match "birthdaymailer"} | ?{$_ -match "rdp-tcp#\d*"} | %{tsdiscon $matches[0]}

Start-Sleep -s 5

Get-Process bm | Kill

write-host "close mstsc task" -ForegroundColor green
Get-Process mstsc | Kill

write-host "delete rdp credentials" -ForegroundColor green
cmdkey /delete $servername

Dieses Skript habe ich als geplanten Task um 7:45 Uhr eingerichtet um sicher zu gehen, dass um 8:00 Uhr mit Sicherheit die Emails rausgeschickt werden.

Aufruf des geplanten Tasks:

powershell.exe -noprofile -command C:\birthdaymailer.ps1

 

Link zum Birthdaymailer-Forum


Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

Ohne viel Worte. Ein Highlight für mich auf der Gamescom:


Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

Wenn man die automatische Antwort Funktion für eine Exchange 2010-Verteilergruppe sucht, dann wird man enttäuscht, denn es gibt keine einfache Möglichkeit.

Das erste, was mir in den Sinn kam, war eine Transport-Regel, aber es gibt leider keine “Antwort”-Option.

Deshalb musste ich ein Postfach-Konto erstellen, hab es zu einem Mitglied der Verteilergruppe gemacht und konfigurierte eine Antwort Regel für das Postfach.

Der Vorteil ist, dass man in diesem Postfach auch mehrere Regeln erstellen kann und somit verschiedene Auto-Antworten über dieses Postfach gesteuert werden.

Aber hier erst eine Schritt für Schritt Anleitung:

1. Neues Postfach z.B. “autoreply@domain.com” erstellen. Der Absender wird dann eine automatische Antwort von dieser Adresse bekommen.
2. Fügt das Postfach zu der gewünschten Verteilergruppe hinzu, welche für den Email Empfang vorgesehen ist.
3. In der Exchange-Verwaltungskonsole öffnet die Eigenschaften der gewünschten Verteilergruppe und wählt die Registerkarte Erweitert. Aktiviert den Haken bei “Abwesenheitsnachricht an Absender senden”.
4. Danach erstellt die folgenden Regeln für das Postfach autoreply@domain.com in Outlook (da owa diese Art von Regeln nicht zulässt).
5. Outlook-Regel:

  • Nach Erhalt einer Nachricht
  • die an einer Person/öffentlichen Gruppe gesendet wurde (hier die Verteilergruppe auswählen)
  • diese vom Server mit einer Nachricht beantworten (erstellt hier die Nachricht, die der Absender erhalten soll)

6. (optional) Erstellt eine weitere Regel auf Nachrichten, die alle Emails in diesem Postfach löscht. Stellt sicher, dass die “Löschen Regel” unter der “Antwort Regel” steht oder die Nachrichten werden vor der Antwort-Regel gelöscht.

Theoretisch reicht es auch wenn ihr automatische Antworten in owa für autoreply@domain.com aktiviert, doch dies funktioniert nur in einer Verteilergruppe. Mit der oben vorgeschlagenen Lösung könnt ihr dieses Postfach für mehrere Verteilergruppen verwenden und in jeder Regel für die jeweilige Verteilergruppe eine individuelle Antwortnachricht hinterlegen.

Behaltet auch im Auge, dass gelöschte Nachrichten in “Gelöschte Objekte” im autoreply@domain.com Postfach verschoben werden, so sind einige Wartungsarbeiten zu tun oder man regelt dies über eine Aufbewahrungsrichtlinie. Es gibt zwar in dem Outlook Regelwerk die Option, dass die Nachrichten endgültig gelöscht werden können doch diese Regeloption funktioniert nur, wenn Outlook gestartet ist (Clientregel).


Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

Pages: 1 2 3 4 5 6 7 8 9 10 ...26 27 28 Next