[Powershell]

thekillerbounty

Lieutenant
Registriert
Nov. 2007
Beiträge
929
Hi,

ich steh aktuell vor einer kleinen Aufgabe, die mich etwas stärker herausfordert und jetzt wollte ich mal Fragen, ob mir hier jemand helfen kann. Ich soll auf einem Client (Win7) in unserem Netzwerk dafür sorgen, dass dieser sich jeden Tag neu starten, anschließend im Netzwerk anmeldet und daraufhin soll eine Powerpoint Datei gestartet und im Vollbild abgespielt werden.

Das ganze habe ich in drei Teile gegliedert und möchte mir dafür mittel Powershell Scripts basteln. Diese will ich dann in die Aufgabenplanung integrieren. Dazu muss man sagen, dass ich wirklich noch ein Anfänger bin, was diese Belange betrifft. Deshalb bereitet mir das Ganze einige Probleme. Soweit bin ich bisher:

1. Neustart des Clients
Code:
restart-computer [Computername]
zu einem gewissen Zeitpunkt starten. Kein Problem, der Computer startet sich wie gewünscht neu. Funktioniert.

2. Anmeldung an Windows
Hier habe ich große Probleme. Ich hab bereits versucht, ein Skript nach dem Start des Clients zu implementieren, welches Manuell die Eingaben vornimmt, also etwas in diese Richtung:
Code:
Start-Sleep -Seconds 10

[System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[System.Reflection.Assembly]::LoadWithPartialName("'System.Configuration")

[System.Windows.Forms.SendKeys]::SendWait("{ESC}")
Start-Sleep -Seconds 1
[System.Windows.Forms.SendKeys]::SendWait("{Right}")
Start-Sleep -Seconds 1
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Start-Sleep -Second 2

<# Eingabe des Benutzernamens #>
[System.Windows.Forms.SendKeys]::SendWait("{n}")
[System.Windows.Forms.SendKeys]::SendWait("{a}")
[System.Windows.Forms.SendKeys]::SendWait("{m}")
[System.Windows.Forms.SendKeys]::SendWait("{e}")
Start-Sleep -Second 1
[System.Windows.Forms.SendKeys]::SendWait("{TAB}")
Start-Sleep -Seconds 1

[System.Windows.Forms.SendKeys]::SendWait("+{p}")
[System.Windows.Forms.SendKeys]::SendWait("{a}")
[System.Windows.Forms.SendKeys]::SendWait("{s}")
[System.Windows.Forms.SendKeys]::SendWait("{s}")
[System.Windows.Forms.SendKeys]::SendWait("{w}")
[System.Windows.Forms.SendKeys]::SendWait("{o}")
[System.Windows.Forms.SendKeys]::SendWait("{r}")
[System.Windows.Forms.SendKeys]::SendWait("{t}")
Start-Sleep -Seconds 1
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Ich bin mir ziemlich sicher, dass die Erfahreneren unter euch sich denken können, dass das nicht funktioniert hat. Ich persönlich verstehe nicht warum. Aber okay, fakt ist: Funktioniert nicht!

Selbst würde es funktionieren, wäre ich etwas abgeneigt dies so zu lösen, da es ein offensichtliches Sicherheitsrisiko darstellt, zumindest meiner Meinung nach.


3. Öffnen der Präsentation und Abspielen dieser.
Code:
invoke-item -path e:\testdatei.pptx

[System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
Start-Sleep -Seconds 5

[System.Windows.Forms.SendKeys]::SendWait("{F5}")
Start-Sleep -Seconds 2
Auch das ist kein Problem und wird einfach über die Aufgabenplanung direkt nach der Anmeldung gestartet. Funktioniert.


Jetzt ist mein Problem: wie bekomme ich es hin, dass sich der Client nach dem Neustart direkt mit einem Benutzer anmeldet? Durch das Netzwerk in das der Client angebunden ist, kann ich die Passwortabfrage nicht einfach wie bei einem Home-PC abschalten, entsprechend muss ich irgendwie dafür sorgen, dass ich auf diese Abfrage automatisiert antworten kann.

Ich wäre euch sehr verbunden, könntet Ihr mir etwas Hilfestellung geben. Wie gesagt, was das Scripting angeht bin ich noch kompletter Neuling und befasse mich gerade erst mit der Materie. Entsprechend bitte ich zu entschuldigen, wenn das Problem äußerst trivial erscheint, für mich ist es noch eine Herausforderung :)


Beste Grüße
 
Bei solchen Sachen sollte die Richlinie "Computer->Administrative Vorlagen->System->Anmelden->"Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten" unbedingt mit aktiviert werden, sonst könnte es ab und zu mal nicht funktionieren (je nachdem wie schnell der Rechner ist). Ansonsten empfehle ich in diesem Fall auch das Ablegen der Login Daten direkt im System bzw. Registry.
 
Alles in Allem bisschen umständlich:

1. Für den Neustart würde ich einfach ein Skript mit "Shutdown -r -t 1" in der Aufgabenplanung machen.
2. Für die Anmeldung würde ich Autologon von Sysinternals (Microsoft) verwenden.
3. die Datei von .pptx in .ppsx umbenennen und eine Verknüpfung in den Autostart des sich anmeldenen Users legen
 
Rego schrieb:
Alles in Allem bisschen umständlich:

1. Für den Neustart würde ich einfach ein Skript mit "Shutdown -r -t 1" in der Aufgabenplanung machen.
2. Für die Anmeldung würde ich Autologon von Sysinternals (Microsoft) verwenden.
3. die Datei von .pptx in .ppsx umbenennen und eine Verknüpfung in den Autostart des sich anmeldenen Users legen


Vielen Dank für deine Hilfe.

Zu 1.: Macht für mich keinen großen Unterschied, ob ich "Shutdown -r -t 1" oder "Restart-Computer [Computername]" verwende. Gibt es irgendwelche beträchtlichen Nachteile meiner Version?
zu 2.: Hab ich gemacht und funktioniert super. Ich wusste bereits, dass ich die Daten in den Registries hinterlegen kann, allerdings nur im Klartext. Dieses Tool hilft dabei sehr. :)
Zu 3.: Auch eine schöne Möglichkeit, die ich garantiert testen werde. Vielen Dank.


Natürlich auch dem Rest vielen Dank =)

Auf dieses Forum hier ist einfach immer Verlass, wenn es im entferntesten Sinne um Themen mit Bezug zu Computern geht.

Beste Grüße
 
Zurück
Oben