lokale admin rechte auf dem Packet Empfänger nötig ?

Moderator: MVogt

Post Reply
AndiC
Posts: 3
Joined: 21. Mar 2013, 20:40
Contact:

lokale admin rechte auf dem Packet Empfänger nötig ?

Post by AndiC » 22. Mar 2013, 11:03

Hallo zusammen

Bin PackageRobot Frischling und möchte ein ganz einfaches Packet erstellen das mir nicht gelingt. Ich möchte eine Programmverknüpfung auf dem Desktop des User anlegen. Dazu hab ich im Package Robot Editor ein ganz simples Skript erstellt das mit dem Befehl CNS eine neu Verknüpfung anlegt (mit FCP habe ich es auch versucht). Das Packet funktioniert problemlos wenn man auf dem Empfänger Client ohne lokale admin Rechte die kompilierte .exe manuell startet.
Per Softwareverteilung funktioniert das aber nur, wenn am Client ein Benutzer mit lokalen Adminrechten angemeldet ist.
Ohne lokale Admin Rechte geschieht nichts und es wird keine Verknüpfung angelegt. Ich habe das Packet remote mit psexec auf dem Client gestartet.
Ich habe mit InstaRec ein iTunes Packet erstellt und dieses genau gleich mit psexec auf den Client verteilt. Dieses funktioniert hervorragend auch ohne lokalen Adminrechte und auch auf der Windows Anmeldung.
Fügt InstaRec im Package Editor selber Befehle ein damit es ohne lokalen Adminrechte geht ?
Muss ich selber im Editor Befehle hinzufüger damit die Installation mit einem admin Konto erfolgt ?

Weiss jemand Rat ?
Danke

User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Re: lokale admin rechte auf dem Packet Empfänger nötig ?

Post by Theo_Gottwald » 22. Mar 2013, 11:35

Das System versteht man am einfachsten, wenn man sich vorstellt, dass der Package Robot praktisch wie ein angemeldeter User agiert. Egal ob er Mausklicks macht, oder andere Dinge wie Dateien kopieren oder eben das Erstellen einer Verknüpfung.

Also muß der Package Robot immer auch die Rechte haben, die ein angemeldeter User haben würde der diese beabsichtigten Aktionen ausführen würde. Das sollte man verstehen und bedenken.

Dabei gilt, dass in der Regel die Pakete, die via "Software Verteilung" gestartet werden mit dem System-User gestartet werden. Das ist so, weil die Software-Verteilung einen Dienst im, System Kontext hat, der dann das Paket startet.
Nur so hat man auch keine Probleme, mit dem UAC unter Windows 7 und aufwärts.

Darüberhinaus kann man sowohl via Matrix42 als auch via Package Robot (hier nimmt man die Compiler-Direktive '#RAU: = Run As User) den Paketen auch die Anmeldung mit anderen Credentials ermöglichen, um zum Beispiel User-spezifische Settings zu setzen.

Man muß allerdings dann aufpassen dass man nicht mit dem UAC Probleme bekommt, denn der Robot kann es nicht wegklicken.

Nun zu deinen Fragen:
Fügt InstaRec im Package Editor selber Befehle ein damit es ohne lokalen Adminrechte geht ?
Nein, diese Befehle werden vom InstaRec nicht automatisch eingefügt.
Es gibt diese Befehle allerdings empfehle ich stattdessen die Compiler-Direktive "'#RAU:" zu nehmen.

Bitte verwechselt hier nicht den Befehl RAU\ und die Compiler-Direktive '#RAU:, das sind zwei völlig verschiedene Sachen!
"RAU:"
Mit dieser Instruktion ("RunAsUser") können Sie aus der Exe-Datei heraus die "remote.exe" unter einem anderen Benutzerkonto starten. Geben Sie dazu im Datenteil die erforderlichen Informationen ein:
'#RAU:Username|Password[|Domain] [] = optional
Beim Kompilieren der Exe-Datei werden diese Angaben aus der einkompilierten Rem-Datei entfernt, so daß sie später nicht zugänglich sind (in der Original-Rem-Datei bleiben sie erhalten). Mit der Direktive
'#RAU:ask
wird beim Erstellen der Exe eine Maske angezeigt, in der Sie die entsprechenden Parameter operativ eingeben können.
"OAU\" für "OperateAsUser", "IOF\" für "IfOperateFailed", "EOF\" für "EndOperateFailed",
"RAU\" für "RunAsUser", "IRF\" für "IfRunFailed", "ERF\" für "EndRunFailed".
Diese Befehle stehen nur unter WinNT/2K/XP und höher zur Verfügung!
Siehe auch: "Abfragen".

Mit "OAU\..." können Sie das Remote-Programm als anderen Benutzer als den eingeloggten laufen lassen. Im Datenteil sind folgende Parameter anzugeben - jeweils getrennt durch Senkrechtstrich ("|"):
- neuer Benutzername,
- Paßwort für den Benutzer, soweit vorhanden und
- Domänen-Name, soweit vorhanden.
Es müssen in jedem Falle beide Trennstriche vorhanden sein, auch wenn Paßwort leer ist; wenn Domäne leer ist, kann der letzte Trennstrich weggelassen werden.
Wenn Sie den Datenteil leer lassen oder "0" eintragen, wird der ursprüngliche Benutzer wieder hergestellt.
Um zu vermeiden, daß die übergebenen Parameter öffentlich sichtbar werden (in der Remote-Datei oder bei Verwendung von "DWP\"), können Sie folgendermaßen verfahren:
- Benutzen Sie für die Parameter Dummy-Zeichenfolgen, die mit "$" beginnen und enden, z.B. "$user$".
- Verschlüsseln Sie den eigentlichen Parameter mit dieser Zeichenfolge und tragen Sie den verschlüsselten Wert in eine "logon.ini" im Verzeichnis der "remote.exe" unter [logon] ein mit
"1= [Wert]" für Benutzer, "2= [Wert]" für Paßwort und "3 = [Wert]" für Domäne (Sie können auch nur einen Parameter verschlüsseln). Mit einer Remote-Datei ist das sehr einfach:
VAR\$$aaa=Admin 'Benutzername
ENC\el|$$aaa|$user$ 'WICHTIG: Option "el" verwenden für einzeiligen Eintrag
CTI\?exepfad\logon.ini|logon|1|$$aaa
VAR\$$aaa=Xs3_+ß 'Paßwort
ENC\el|$$aaa|$password$ 'WICHTIG: Option "el" verwenden für einzeiligen Eintrag
CTI\?exepfad\logon.ini|logon|2|$$aaa
VAR\$$aaa=MyNet 'Domäne
ENC\el|$$aaa|$domain$ 'WICHTIG: Option "el" verwenden für einzeiligen Eintrag
CTI\?exepfad\logon.ini|logon|3|$$aaa
@
Im Befehlsaufruf sähe das dann so aus:
OAU\$user$|$password$|$domain$
Programmintern werden dann die verschlüsselten Werte aus der "logon.ini" gelesen, entschlüsselt und weiterverarbeitet.
HINWEISE:
- Um aus einem "normalen" Benutzer heraus mit Administratorrechten zu operieren, muß der Administrator ein Paßwort angelegt haben. "OAU\" funktioniert nicht, wenn kein Paßwort gesetzt ist.
- Unter Win2K muß der aktuelle Benutzer unter den Berechtigten für "Einsetzen als Teil des Betriebssystems" eingetragen sein (Sicherheitsrichtlinien -> Lokale Richtlinien -> Zuweisen von Benutzerrechten). Wenn das nicht der Fall ist, schlägt "OAU\" fehl, gleichviel ob der "neue" Benutzer höhere oder geringere Rechte hat als der aktuelle. Defaultmäßig ist dieser Eintrag nicht aktiviert, auch nicht für die Administratorgruppe.

Den Erfolg von "OAU\" können Sie mit "IOF\" überprüfen. Wenn der Aufruf fehlschlug, d.h. der angegebene Benutzer nicht eingestellt werden konnte, werden die zwischen "IOF\" und "EOF\" liegenden Befehle ausgeführt. Sie können dies z.B. zur Anzeige einer Fehlermeldung nutzen.
Der Befehl "OAU\" unterstützt außerdem "IIF\".

Um aus dem Remote-Programm heraus einen neuen Prozeß unter einem anderen Benutzer zu starten, benötigen Sie den Befehl "RAU\". Das ist hilfreich, wenn Sie beispielsweise ein Setup ausführen lassen wollen und der normale Benutzer nicht über die entsprechenden Rechte verfügt.
Im Datenteil sind wie bei "OAU\" zunächst Benutzername, Paßwort und Domäne anzugeben und danach der Pfad zur auszuführenden Datei, gefolgt von (optional) einer Kommandozeile. Alle Teile sind durch Senkrechtstrich ("|") zu trennen.
Die Parameter Benutzername, Paßwort und Domäne können wie bei "OAU\" in der "logon.ini" verschlüsselt hinterlegt werden.
Per Default erfolgt der Start des neuen Prozesses asynchron, d.h. das Remote-Programm läuft nach dem Starten weiter, und Sie können die Oberfläche des gestarteten Prozesses bedienen. Es kann aber zweckmäßig sein, mit der weiteren Abarbeitung der aktuellen Remote-Datei zu warten, bis der gestartete Prozeß beendet ist. Geben Sie dazu am Anfang des Datenteils die Zeichenfolge "w\" an.
Sie können dieses Feature beispielsweise auch benutzen, um während einer Remote-Datei, die unter dem normalen Benutzer-Account läuft, eine weitere Instanz des Remote-Programms unter einem anderen Benutzer (z.B. Admin) mit einer Remote-Datei zu starten, die nur solche Aufgaben ausführt, für welche die Rechte des anderen Benutzers notwendig sind, und nach deren Abarbeitung mit der aktuellen Remote-Datei unter dem Benutzeraccount fortfahren:
'...
RAU\w\$user$|$password$||?remexe|special.rem '# Wartet auf Abarbeitung der "special.rem"
'... '# durch eine zweite Remote-Instanz

Den Erfolg von "RAU\" können Sie mit "IRF\" überprüfen. Wenn der Aufruf fehlschlug, d.h. der neue Prozeß nicht gestartet werden konnte, werden die zwischen "IRF\" und "ERF\" liegenden Befehle ausgeführt. Sie können dies z.B. zur Anzeige einer Fehlermeldung nutzen.
Der Befehl "RAU\" unterstützt außerdem "IIF\".

HINWEIS:
Bei erfolgreichem Befehl wird die Prozeß-ID des gestarteten Prozesses in einer programminternen Variablen hinterlegt, auf die Sie mit der Zeichenfolge "$v4$" zugreifen können. Die Prozeß-ID wird benötigt, wenn Sie mit "PEC\..." den Exit-Code des Prozesses ermitteln wollen. Dann müssen Sie unmittelbar nach "RAU\..." den Wert von "$v4$" einer benutzerdefinierten Variable ("$$xyz") zuweisen, die Sie dann bei "PEC\" eintragen (siehe Beispiel bei "PEC\").
Muss ich selber im Editor Befehle hinzufüger damit die Installation mit einem admin Konto erfolgt ?
Diese Frage verweise ich mal an jemand der sich mit Matrix42 und den div. Agents und dem Verhalten und div. OS besser auskennt.

AndiC
Posts: 3
Joined: 21. Mar 2013, 20:40
Contact:

Re: lokale admin rechte auf dem Packet Empfänger nötig ?

Post by AndiC » 22. Mar 2013, 11:56

Hallo Theo

Vielen Dank für deine Ausführungen. Ich werde dann mal versuchen das Packet ohne lokalen Adminrechte zu erstellen und/oder diese #RAU Direktive anzuwenden.
viele Grüsse
Andi

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 6 guests