Hallo,
wir haben eine Anwendung, die als Datenablage den SQLExpress benutzt.
Dieser wird mit unserem Setup mit installiert, allerdings ist es für unsere Anwendung notwendig, dass dieser mit dem System-Account läuft. Leider ist der Name des System-Accounts spachabhängig. Um dies zu kompensieren wird das MergeModul "SIDLookup" benutzt.
Soweit noch alles in Ordnung.
Zusätzlich werden durch das Setup per SQL-Script Datenbanken und Tabellen angelegt. Damit die Anwendung nun Zugriffsrechte auf die Datenbanken hat, wird zum Schluß folgendes Script ausgeführt:
USE GTIM GO sp_addsrvrolemember [LocalSystem],'sysadmin' USE GTIP GO sp_addsrvrolemember [LocalSystem],'sysadmin' USE GTIR GO sp_addsrvrolemember [LocalSystem],'sysadmin' USE GTIDATA1 GO sp_addsrvrolemember [LocalSystem],'sysadmin' USE master GO
Wobei "LocalSystem" durch den Namen des System-Account (sprachabhängig!) per Text-Replacement ersetz werden soll:
Der Standard-Wert von [SID_SYSTEM] ist "NT-AUTORITÄT\SYSTEM".
Das Property [SID_SYSTEM] wird auch an einer anderen Stelle in einer CustomAction benutzt. Hier funktioniert auch das sprachabhängige benutzen des Wertes.
Nur beim SQL-Script wird immer [LocalSystem] durch [NT-AUTORITÄT\SYSTEM] ersetzt. Auf einem eglischen System gibt es daher auch immer eine Fehlermeldung dass der Benutzer nicht bekannt ist, und das Skript wird nicht ausgeführt.
Wo liegt jetzt hier mein Fehler, bzw. wie bekomme ich das hin dass das Skript korrekt ausgeführt wird?
Setup wird mit InstallShield 2013 Premier Edition erstellt.
mfg
R. Scheller
Edited by Bandit2001, 23 May 2014 - 14:01.