It is currently 23. Jul 2019, 20:34


[Gelöst:] Nach 6.2 PowerShell-Script Problem

Version 6.6.5 wurde veröffentlicht im Mai 2016 - EOL seit Ende 2016!

Moderator: Moderator Team

  • Author
  • Message
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

[Gelöst:] Nach 6.2 PowerShell-Script Problem

Post25. Aug 2014, 13:27

Hallo LI Support :)

nach dem Update von 6.1.2 auf 6.2 funktioniert folgendes Script nicht mehr:

Code: Select all
# Call this LOGINventory6 scripts:
# [LOGINventory]\PSC.exe -file "[path]\[scriptname].ps1"

# Save current path, to restore at the end ...
$savePath=$PWD


cd "LI:\Software Licenses"
 
Get-LiData | Where {$_.'License.Required' -gt $_.'License.Available'} > "C:\temp\lizenzbericht.txt"
Send-MailMessage -to "troul@musterplatzhalter.de" -from "noreply@musterplatzhalter.de" -Subject "Loginventory 6 Lizenzbericht" -body "Aktueller Lizenzbericht" -SmtpServer "mailserver" -Attachments "C:\temp\lizenzbericht.txt"

cd $savePath


Und zwar wird einfach nur eine leere Datei erstellt und verschickt. Auch einzeln ausgeführt funktioniert es nicht. Get-LiData schreibt einfach eine leere Datei.

Hab schon einiges ausprobiert.. auch das explizite | Export-Csv in eine Datei bringt nur eine leere Datei.

Gibt es diesbezüglich undokumentierte Änderungen? Habe auch die Execution Policy überprüft, steht testweise auf unrestricted. Problem existiert seit dem Update auf 6.2.
Offline
User avatar

RolandL

Site Admin

Site Admin

  • Posts: 769
  • Joined: 1. Sep 2003, 01:00
  • Location: Munich

Re: Nach 6.2 Scriptproblem

Post25. Aug 2014, 16:29

In Version 6.2 wurden weitere, bisher fehlende Teile lokalisiert.
Bitte starten sie einmal das LMC und navigieren Sie in den Knoten "Software Licenses".
Steht in der Spaltenüberschrift in englisch: 'License.Required' oder auf deutsch 'Lizenz.Benötigt'?

In der Powershell müssen die gleiche Spaltennamen wie in dem LMC verwendet werden - also der eingestellten Sprache entsprechende Bezeichnungen.
RolandL

Hello - IT! Have you tried turning it off and on again?
Next step: Check DNS.
http://www.loginventory.com
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 Scriptproblem

Post25. Aug 2014, 16:46

Hallo,

noch ein kurzer Nachtrag zum Lizenzmanagement und der PowerShell:

1. bitte aufpassen: Die Semantik des Required-Properties hat sich geändert:

6.1.2: Available ("Verfügbar"); Required ("Insgesamt benötigt = Verbraucht")
6.2: Available ("Verfügbar"); Consumed ("Verbraucht"); Required ("Noch benötigt")

Das neue Script wird daher auch etwas einfacher :)

Code: Select all
Get-LiData | Where {$_.'License.Required' -gt 0}


Wir denken dass trotz dieser Umstellung insgesamt die Semantik klarer ist und haben uns deshalb so entschieden.

2. In der PowerShell kann man generell die UI-Sprache immer nur pro Script setzen. Anschließend wird Sie von der Powershell auf die Hostsprache zurückgesetzt. Deswegen (in den neuen PS Beispielen ist das auch schon so beschrieben) vor jedem Script einfach folgendes Kommando ausführen:

Code: Select all
# Set culture to english (no data translation)
[System.Threading.Thread]::CurrentThread.CurrentUICulture = "en-US"

Damit kommt alles konsistent und Rechnerunabhängig in Englisch und kann auch so verarbeitet werden.
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 09:30

Guten Morgen,

soweit funktioniert die Erstellung der Datei wieder.

Problematisch ist nun, dass per Send-MailMessage trotzdem eine leere Datei verschickt wird.
Erstelle ich händisch eine Textdatei mit dem Inhalt "abc" und versende diese mit Send-MailMessage, steht auch der Text "abc" drin. Also alles korrekt.

Lasse ich über

Code: Select all
Get-LiData | Where {$_.'Lizenz.Benötigt' -gt 0} > "C:\temp\lizenzbericht.txt"


eine Textdatei erstellen, steht zwar die erwartete Information in der Textdatei, aber sobald ich diese per Send-MailMessage versende, wird mir eine 286B große, aber leere Textdatei zugeschickt. Mit 6.1.2 hat das noch wunderbar funktioniert.

Ich habe schon eine Pause ins Script eingebaut, die Datei umbenennen lassen vor dem verschicken, andere Formate versucht, den Namen gekürzt, bringt leider alles nix.

Habe gerade das Update auf 6.2.3 eingespielt, leider keine Änderung des Verhaltens.
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 11:18

Hallo troul,

hier können wir das Problem leider nicht nachvollziehen. Es funktioniert wie gewünscht und überträgt auch in unserem Fall ein 4k Datei. Diesbezüglich hat sich aber auch seit der Version 6.1.2 nichts geändert. Ausserdem ist das Send-MailMessage CmdLet ja von Microsoft und sollte problemlos funktionieren.

Die einzige Möglichkeit sehe ich aktuell gerade beim Script an sich - könnte Sie das vielleicht kurz posten oder uns zur Analyse senden? Besteht vielleicht eine Diskrepanz zwischen den Pfaden (Schreibpfad/datei <> Pfade der Send-MailMessage übergeben wird)?
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 11:51

Hallo,

das Script sieht folgendermaßen aus:

Code: Select all
# Call this LOGINventory6 scripts:
# [LOGINventory]\PSC.exe -file "[path]\[scriptname].ps1"

# Save current path, to restore at the end ...
$savePath=$PWD


cd "LI:\Software Licenses"
 
Get-LiData | Where {$_.'Lizenz.Benötigt' -gt 0} > "C:\temp\lizenzbericht.txt"
Start-Sleep -s 3
Send-MailMessage -to "xyz@<platzhalter>.de" -from "noreply@<platzhalter>.de" -Subject "Loginventory 6 Lizenzbericht" -body "Aktueller Lizenzbericht" -SmtpServer "mailserver" -Attachments "C:\temp\lizenzbericht.txt"

cd $savePath


Das Script wird wie oben im Code kommentiert ausgeführt.
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 12:00

Hallo troul,

copy&paste + email-adressen und sever geändert -> funktioniert einwandfrei...

Bei uns ist die PowerShell 4 im Einsatz.

Bin leider gerade etwas überfragt :?
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 13:05

Selbst, wenn ich lediglich die Send-MailMessage Zeile des Scripts ausführe, kommt die Datei leer an. Jede andere Datei kommt mit Inhalt an, außer sie wurde durch Get-LiData generiert. Powershell 4 ist auf dem Server auch drauf. Ist mir zu hoch.


Code: Select all
PS LI:\> $psversiontable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.18444
BuildVersion                   6.3.9600.16406
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 14:23

Hm... wenn die Datei korrekt auf dem Server liegt und nach dem (vermeintlichen) Versenden immer noch unverändert so da liegt, dann muss irgendwo auf dem Weg was passieren ;-)

Vielleicht ein Virenscanner, der die Daten nicht "mag"!?

probieren Sie es doch vielleicht mal mit ner Konvertierung in CSV. Vielleicht sehen das diverse "Zwischenstationen" etwas unkritischer. Das alles ist ja PowerShell konform und kann eigentlich kein generelles Problem sein.

Code: Select all
Get-LiData | Where {$_.'Lizenz.Benötigt' -gt 0} | ConvertTo-Csv -NoTypeInformation > "C:\temp\lizenzbericht.txt"


Wenn gar nichts hilft könnte man immer noch die Datei in ein freigegebenes Verzeichnis generieren und den Link dazu in der Mail versenden.
Code: Select all
[...] -body "file:///C:/temp/lizenzbericht.txt"


jetzt fürchte ich bin ich mit meinem Latein dann am Ende :?
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 16:11

converto-csv funktioniert leider auch nicht.. und linken ist leider kein brauchbarer Ersatz. Das ist ärgerlich, denn es hat ja mal funktioniert :D
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 PowerShell-Script Problem

Post8. Sep 2014, 16:20

ich kann leider da jetzt auch nicht mehr weiterhelfen - ab dem send-mailmessage-cmdlet ist ja alles Microsoft seitig (vielleicht nur den Befehl mal aus einer normalen Powershell Console heraus ausführen)
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post9. Sep 2014, 08:41

Hab ich auch schon mehrfach ausprobiert. Wie gesagt: die einzigen Dateien, die leer ankommen, sind durch Get-LiData generierte Dateien.. hoffe ich finde eine Lösung.
Offline
User avatar

StefanS

Moderator

Moderator

  • Posts: 228
  • Joined: 1. Jul 2009, 10:58

Re: Nach 6.2 PowerShell-Script Problem

Post9. Sep 2014, 09:51

Eine Idee hätten wir noch:

Vielleicht hängt es ja irgendwie mit dem Zeichensatz zusammen. Möglicherweise kommt es da irgendwo zu Problemen. Wir können Ihnen auch anbieten die Dateien mal zu analysieren. Ausserdem könnten Sie mal probieren was passiert, wenn Sie die Datei direkt über Outlook und nicht per Send-MailMessage intern verschicken.
mfg
StefanS
Offline

troul

Power User

Power User

  • Posts: 60
  • Joined: 8. Apr 2013, 10:52

Re: Nach 6.2 PowerShell-Script Problem

Post9. Sep 2014, 10:54

Die Bemerkung zum Zeichensatz hat mich auf eine Idee gebracht.

Zum editieren benutze ich normalerweise Notepad++ und es gab auch nie ein Problem, allerdings hatte ich schon einmal ein Script, das nur mit frisch erstellter Textdatei und dem normalen Windows-eigenen Notepad funktionieren wollte.

Es steht exakte das gleiche drin, aber nur mit dem normalen Editor bearbeitet, funktioniert jetzt wieder so wie es soll. Verstehen tue ich es zwar trotzdem nicht, da es ja mal mit Notepad++ funktioniert hat, aber Hauptsache es funzt wieder.

Danke!

Return to LOGINventory6 Deutsch

Who is online

Users browsing this forum: No registered users and 2 guests

cron