Zum Inhalt wechseln


Foto

PowerShell-Skript wird nicht ausgeführt (GPO, StartUp)

Windows 7

  • Bitte melde dich an um zu Antworten
12 Antworten in diesem Thema

#1 roccomarcy

roccomarcy

    Newbie

  • 77 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:13

Guten Morgen,

 

ich habe hier eine Umgebung, bestehend aus mehreren Windows 2008 R2 und Server 2012 R2 Domänen-Controllern, sowie reinen Windows 7 Pro Clients.

Für eine Applikation muss in einem lokalen Drucker eine Einstellung geändert werden, was sich unter anderem durch WMI lösen lässt.

 

Dazu habe ich ein Skript in PowerShell entwickelt, welches Lokal die Option des Druckers anpasst. Es werden keine Dateien auf irgendwelche Netzwerkfreigaben geschrieben, es läuft rein lokal.

Kommen wir zum eigentlichen Problem.

 

Führe ich das Skript lokal auf den Arbeitsplätzen aus, so läuft es ohne Probleme. Nun habe ich das Skript als "Starten"-Skript eingebunden und auf eine Reihe Testcomputer verlinkt.

Leider wird das Skript nicht ausgeführt und in der Ereignisanzeige steht auch nichts interessantes.

 

Was könnte es für Hintergründe haben? Ich habe erst an mangelnde Berechtigung gedacht, habe daher das Skript lokal mit "SYSTEM"-Berechtigung ausgeführt (dank PSExec), aber damit hat es auch funktioniert.

In der Vergangenheit habe ich bereits "Auf Netzwerk warten" in den GPOs aktiviert.

 

Edit1: Das Skript wurde unter dem Reiter "PowerShell" angelegt, es wird direkt aufgerufen, also nicht über eine BAT oder ähnliches.


Bearbeitet von roccomarcy, 20. Oktober 2017 - 06:16.


#2 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:21

Wird das Skript denn ordnungsgemäß ausgeführt? Rechtsklick "mit Powershell ausführen" ist nicht aussagekräftig, da die Standard-PS-Konfig verändert wird. 

 

Öffne eine normale Shell (Powershell) und starte das Skript von da aus. Funktioniert es? Wenn nicht, dann musst du die Executionpolicy's anpassen.


Mit freundlicher Unterstützung
Jan


#3 roccomarcy

roccomarcy

    Newbie

  • 77 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:21

Hallo,

 

ich hab es so ausgeführt, wie von dir beschrieben.

Es wurde über die Konsole ausgeführt, nicht über einen Rechtsklick.

Die Executionpolicys habe ich auch nicht verändert.

 

2017-10-2008_23_57-adqus5s.png


Bearbeitet von roccomarcy, 20. Oktober 2017 - 06:25.


#4 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:25

Und das Ergebnis?  ;)


Mit freundlicher Unterstützung
Jan


#5 roccomarcy

roccomarcy

    Newbie

  • 77 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:26

Das Ergebnis wovon?
Es gibt keine Ausgabe auf die Konsole, das Programm schreibt in die Ereignisanzeige, dort ist auch ein Eintrag zu finden (bei manueller Ausführung).



#6 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:33

Ah, du hast das Bild im Nachhinein hinzugefügt. ;-)

 

Lokale Skripte sind meist kein Problem. Nun der Test über das Netzwerk. Füge Sie deiner Gruppenrichtlinie hinzu und greife auf die Freigabe Sysvol bis zu deiner Gruppenrichtlinie um Sie dann über die PS auszuführen.

 

Beispiel

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alle Rechte vorbehalten.

PS C:\Users\weis_adm> ."\\DOMÄNE\SysVol\DOMÄNE\Policies\{BBDB6ABB-40CE-4A40-95BD-EAED3816364E}\Machine\Scripts\Shutdown\
Inventarisierungsskript.ps1" 

Mit freundlicher Unterstützung
Jan


#7 roccomarcy

roccomarcy

    Newbie

  • 77 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:37

Ah, da bekomme ich eine Sicherheitswarnung. Darauf bin ich natürlich nicht gekommen.

Danke für den Tip.

 

Was wäre denn jetzt der beste Weg um dieses zu umgehen? Per Batchdatei ausführen?

 

2017-10-2008_36_20-adixsi6.png


Bearbeitet von roccomarcy, 20. Oktober 2017 - 06:39.


#8 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:50

Du könntest deine Skripte intern signieren oder über die Gruppenrichtlinien die ExecutionPolicy anpassen.


Mit freundlicher Unterstützung
Jan


#9 roccomarcy

roccomarcy

    Newbie

  • 77 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:52

Und wenn ich das über eine Batchdatei heraus ausführe?



#10 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 20. Oktober 2017 - 06:58

powershell.exe -File "" -ExecutionPolicy Unrestricted

Wäre dein Weg zu Glück. Lass Dir aber gesagt sein.. Dieses Konstrukt ist alles andere als performant  ;)  


Mit freundlicher Unterstützung
Jan


#11 NilsK

NilsK

    Expert Member

  • 12.406 Beiträge

 

Geschrieben 20. Oktober 2017 - 14:22

Moin,

 

ich rate dazu, Skripte zunächst lokal zu kopieren und dann von dort auszuführen. Das ist in solchen Fällen in aller Regel sicherer.

 

Ist das Skript denn logisch dazu geeignet, als Startskript, also ohne Benutzersitzung ausgeführt zu werden?

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#12 daabm

daabm

    Expert Member

  • 2.111 Beiträge

 

Geschrieben 22. Oktober 2017 - 14:15

Noch was - willst Du "Druckeinstellungen" oder "Druckereinstellungen - Standardwerte" ändern? Ersteres geht nur in der Benutzersession, also nicht als Startskript, sondern nur als Anmeldeskript :)
Und Nils hat absolut recht - erst lokal kopieren, und dann lokal ausführen ist zuverlässiger. Und funktioniert auch "offline".

Greetings/Grüße, Martin

Mal ein gutes Buch über GPOs lesen? Oder ein kleines, aber feines Blog darüber?

Und wenn mir die IT mal auf die Nerven geht - coke bottle design refreshment (-:


#13 MurdocX

MurdocX

    Board Veteran

  • 584 Beiträge

 

Geschrieben 22. Oktober 2017 - 19:33

Und Nils hat absolut recht - erst lokal kopieren, und dann lokal ausführen ist zuverlässiger. Und funktioniert auch "offline".

 

Bei uns funktioniert das auch mit GP zuverlässig  ;)  


Mit freundlicher Unterstützung
Jan




Auch mit einem oder mehreren der folgenden Tags versehen: Windows 7