akadawa
Goto Top

Windows Server 2012 R2 Gruppenrichtline Verteilung Batch-Script bei Anmeldung (Excel Addin)

Morjen morjen,

ich soll die Verteilung eines Addins für Excel über die Domäne per Gruppenrichtlinie erstellen und anstoßen.
Beim Anmelden der User soll das Batch-Script ausgeführt werden. Leider funktioniert es nicht.
Ich habe mir dazu eine Testumgebung aufgebaut mit einem Windows Server 2012 R2 mit DHCP und ADDS.
Desweiteren habe ich noch 4 Clients zum testen, 2 mit Office 2013, einen mit Office 2003 und einen ohne Office.
Auf dem virtuellen Server nutze ich die Freigabe SHARE um das Batch-Script zu testen.
Hat alles gut funktioniert beim Skripten, aber jetzt bei der Verteilung über die Gruppenrichtlinien wird das Script nicht angestoßen.

Ich hab die Gruppenrichtlinie wie folgt erstellt:

Gruppenrichtlinienverwaltung > OU "PCs" (hier sind die virtuellen Clients eingetragen) > Gruppenrichtlinienobjekt erstellen > Name vergeben > Rechtsklick bearbeiten > Benutzerkonfiguration > Windows-Einstellungen > Skripts (Anmelden) > Anmelden > Script aus der Freigabe SHARE hinzugefügt.
Dann habe ich ein gpupdate /force gemacht und die Clients angeschaltet und angemeldet.
Sollte die GPO lieber bei den Usern erstellen?

Hier noch das Script:
@echo off
:: Kopieren des Excel-Addins "set_calculation_to_automatic_at_start.xlam" 
:: und Implementierung über die Windows-Registry in Excel
:: Der Freigabename "share" des Scripts muss verändert werden, 
:: wenn "share" nicht als Freigabe auf dem Server besteht. 
:: Variable dazu: sourcepath (Zeile 30)
:: Es werden der Zeit nur Computer mit MSOffice 2013 unterstützt!!
:: letztes Update: 31.08.2018
:: Autor:

::vars
SET d=%date%
SET sorteddate=%d:~-4%-%d:~3,2%-%d:~0,2%

::Erstellen des Log Ordners, wenn nicht vorhanden
if not exist %~dp0\logs_excel_addin mkdir %~dp0\logs_excel_addin

::Prüfen der ZULETZT installierten Office Version
reg query HKEY_CLASSES_ROOT\Excel.Application\CurVer
if %ERRORLEVEL% == 1 goto nooffice

for /f "tokens=3 delims=." %%a in ('reg query "HKEY_CLASSES_ROOT\Excel.Application\CurVer"') do set officever=%%a  
if %officever%==11 GOTO office2003
if %officever%==12 GOTO office2007
if %officever%==14 GOTO office2010
if %officever%==15 GOTO office2013

:office2013
::Einstellungen (Falls benötigt)
SET sourcepath=%Logonserver%\share\
SET installpath=%appdata%\Microsoft\AddIns
SET filename=set_calculation_to_automatic_at_start.xlam

::Kopieren wenn Addin-Datei nicht vorhanden
if exist %installpath%\%filename% GOTO checkreg
xcopy %sourcepath%\%filename% %installpath%\*.* 

::Prüfen ob Registry-Eintrag vorhanden ist
:checkreg
for /f "tokens=2* delims=	 " %%A in ('reg query "HKCU\Software\Microsoft\Office\15.0\Excel\Options" /v OPENauto 2^>NUL ^| find "%installpath%\%filename%"') do set Blub=%%B  
if not defined blub (
	goto setreg
)
echo Registry-Eintrag fuer Addin vorhanden.

exit

::Erstellen des Registry-Eintrags
:setreg
set regkeypath=HKCU\Software\Microsoft\Office\15.0\Excel\Options
reg add %regkeypath% /V "OPENauto" /t REG_SZ /d "%installpath%\%filename%"  
echo Registry-Eintrag fuer Addin erstellt.

::Log feedback
echo %sorteddate% = Das Addin wurde oder ist erfolgreich auf %computername% installiert > %~dp0\logs\xcreated_%sorteddate%_%computername%_o2013.log

::Ende nach Kopiervorgang und setzen des Registry-Eintrag
exit



:nooffice
echo %sorteddate% = Kein Office installiert auf %computername%. Kopiervorgang des Addins abgerochen. > %~dp0\logs_excel_addin\failed_%sorteddate%_%computername%_keinOffice.log
GOTO exit
:office2003
echo %sorteddate% = Office 2003(%officever%.0) auf %computername%. Kopiervorgang des Addins abgerochen. > %~dp0\logs_excel_addin\failed_%sorteddate%_%computername%_o2003.log
GOTO exit
:office2007
echo %sorteddate% = Office 2007(%officever%.0) auf %computername%. Kopiervorgang des Addins abgerochen. > %~dp0\logs_excel_addin\failed_%sorteddate%_%computername%_o2007.log
GOTO exit
:office2010
echo %sorteddate% = Office 2010(%officever%.0) auf %computername%. Kopiervorgang des Addins abgerochen. > %~dp0\logs_excel_addin\failed_%sorteddate%_%computername%_o2010.log
GOTO exit



:exit
exit

Wo ist der Fehler?
Habt ihr einen Rat?

Falls der Thread eher in Batch & Shell-Entwicklung gehört, dann bitte verschieben.

Grüße

Content-Key: 385117

Url: https://administrator.de/contentid/385117

Printed on: April 25, 2024 at 04:04 o'clock

Mitglied: 137084
Solution 137084 Aug 31, 2018 updated at 14:44:30 (UTC)
Goto Top
Benutzerkonfiguration > Windows-Einstellungen
Sollte die GPO lieber bei den Usern erstellen?
Öhm, ja denn sonst wirkt sie ja überhaupt nicht face-smile, sind ja nur Computer-Objekte in der OU in der du sie anwendest. Die würde in der Art dort nur wirken, wenn der Loopback-Verarbeitungsmodus in dieser GPO aktiviert wäre.

Sowas sollte aber generell über Computer-Start-Skripts abgefackelt werden, da sonst dem Skript die eventuell nötigen Installations-Rechte fehlen, weil Anmelde-Skripts nur im Benutzerkontext laufen.

Gruß Werner
Member: Pjordorf
Pjordorf Aug 31, 2018 at 17:17:26 (UTC)
Goto Top
Hallo,

Zitat von @akadawa:
Beim Anmelden der User soll das Batch-Script ausgeführt werden. Leider funktioniert es nicht.
Wenn es Fehler hagelt, solltest du uns die Fehler auch mal mitteilen. Hilft ungemein.

Hat alles gut funktioniert beim Skripten, aber jetzt bei der Verteilung über die Gruppenrichtlinien wird das Script nicht angestoßen.
Mit welchen rechten greift denn dein Skript? Es gibt Startup, Logon, Logoff und shtdown Skripte. Aber es wird nicht zwnagsweise und zwingend überall der gleiche Benutzer ... Es gibt das Lokale System Konto, den lokalen Benutzer, den Domänen Benutze usw. Wer ist es bei dir?

Habt ihr einen Rat?
Ja, prüfe zuerst bevor du ein Log abspeicherst ob der Pfad dorthin überhaupt existiert. Es soll Rechner geben die kein Office und dessen Pfade kennen.

Falls der Thread eher in Batch & Shell-Entwicklung gehört, dann bitte verschieben.
Musst du schon selbst verschieben wenn du der Meinung bist das Batch & Shell-entwicklung besser sei.face-smile

Gruß,
Peter
Member: DerWoWusste
Solution DerWoWusste Aug 31, 2018, updated at Sep 02, 2018 at 17:34:15 (UTC)
Goto Top
Wie WernerRennen sagte, es muss auf die User-OU verlinkt werden. Aber nicht als Startskript, denn es wird in %appdata und HKCU geschrieben, das klappt nicht mit einem Startskript, sondern nur als Logonskript.
Beachte zudem, dass bei Win8.x und Win10 by default 5 Minuten vergehen, bis das Skript überhaupt anläuft (kann man konfigurieren, google "logon script delay").
Member: akadawa
akadawa Sep 01, 2018 updated at 18:28:48 (UTC)
Goto Top
Vielen Dank,

nachdem ich das starten des Scripts bei Nutzern angelegt habe funktioniert es face-smile
das einzige was ich noch dazu machen musste im Script, war die Berechtigung vom log ordner setzen.
das habe icalcs gemacht.
Member: akadawa
akadawa Sep 01, 2018 at 18:27:08 (UTC)
Goto Top
Peter, es wäre gut gewesen wenn du richtig gelesen hättest.

Zitat von @Pjordorf:

Hallo,

Wenn es Fehler hagelt, solltest du uns die Fehler auch mal mitteilen. Hilft ungemein.

würde es Fehlermeldungen geben, hätte ich sie hier schon geposted.
Mit welchen rechten greift denn dein Skript? Es gibt Startup, Logon, Logoff und shtdown Skripte. Aber es wird nicht zwnagsweise und zwingend überall der gleiche Benutzer ... Es gibt das Lokale System Konto, den lokalen Benutzer, den Domänen Benutze usw. Wer ist es bei dir?

Gruppenrichtlinienverwaltung > OU "PCs" (hier sind die virtuellen Clients eingetragen) > Gruppenrichtlinienobjekt erstellen > Name vergeben > Rechtsklick bearbeiten > Benutzerkonfiguration > Windows-Einstellungen > Skripts (Anmelden) > Anmelden > Script aus der Freigabe SHARE hinzugefügt.
Ja, prüfe zuerst bevor du ein Log abspeicherst ob der Pfad dorthin überhaupt existiert. Es soll Rechner geben die kein Office und dessen Pfade kennen.
::Erstellen des Log Ordners, wenn nicht vorhanden 
if not exist %~dp0\logs_excel_addin mkdir %~dp0\logs_excel_addin 
oder falls du das meinst:
::Kopieren wenn Addin-Datei nicht vorhanden 
if exist %installpath%\%filename% GOTO checkreg 

Musst du schon selbst verschieben wenn du der Meinung bist das Batch & Shell-entwicklung besser sei.face-smile

Es gab zwei Möglichkeiten, entweder es lag an den GPOs oder an der Batch. Ich bin mir auch sicher das Mods Threads verschieben können, wenn sie meinen das es unpassend ist.
Member: akadawa
akadawa Sep 01, 2018 at 18:31:11 (UTC)
Goto Top
Zitat von @DerWoWusste:

Wie WernerRennen sagte, es muss auf die User-OU verlinkt werden. Aber nicht als Startskript, den es wird in %appdata und HKCU geschrieben, das klappt nicht mit einem Startskript, sondern nur als Logonskript.
Beachte zudem, dass bei Win8.x und Win10 by default 5 Minuten vergehen, bis das Skript überhaupt anläuft (kann man konfigurieren, google "logon script delay").

Hey danke,
das script delay habe ich schon bearbeitet gehabt face-smile
Member: Pjordorf
Pjordorf Sep 02, 2018 at 14:00:07 (UTC)
Goto Top
Hallo,

Zitat von @akadawa:
Peter, es wäre gut gewesen wenn du richtig gelesen hättest.
Habe ich, aber nichts von einer Fehlermeldung oder den Hinweis das es keine Fehlermeldung gibt gelesen. Und da ich nicht Gedankenlesen kann und auch nicht dein Batch Skript im Detail durchlesen und als Rechner nachspielen wollte...

Gruß,
Peter