Jump to content

Script mit Administratorrecht


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallöchen erstmal

 

Hoffe, ich werde hier herzlichst empfangen und verstoße gegen keine Forenrichtlinien :rolleyes: mit diesem Thread. Wird ja ziemlich hart umgegangen mit Newbies hier.

 

Ich bin seit 2 Monaten als Praktikant in einem Unternehmen mit Win2k3 SBS - Domäne mit WinXP-Pro-Clients, und brauche jetzt mal Unterstützung.

 

Es handelt sich um folgendes Problem:

 

Ich möchte per .vbs Script ein primäres DNS-Suffix an Domänen-User über den Gruppenrichtlinienobjekteditor - BenutzerEinstellungen bei Anmeldung zuweisen lassen.

Warum nicht den Computern zuweisen? Weil der vorherige Admin keine GPO-Einstellungen für Computer-Konten durchgeführt hat. Die Computerkonten befinden sich noch immer im Container Computer. Nun möchte ich mir natürlich nicht ins eigene Fleisch schneiden, und mir den Unmut der User holen.:rolleyes:

 

Das Script sieht so aus:





On Error Resume Next

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
arrDNSSuffixes = Array("help.microsoft.com", "beispiel.microsoft.com")
objNetworkSettings.SetDNSSuffixSearchOrder(arrDNSSuffixes)
[/Code]

 

Wenn die User, denen das GPO zugewiesen wurde, lokale Admin-Rechte haben klappt es auch. Das darf aber nicht sein, da es sich lediglich um "Hauptbenutzer" handelt.

 

Wenn ich das Script im Active Directory - Benutzer und Computer im Benuzterprofil direkt eingebe funktioniert es auch ohne Adminrechte.

 

Nur habe ich keine Möglichkeit gefunden mit "dsmod user" die Scritpzuweisung zu automatisieren, was bei 100 Usern sehr vorteilhaft wäre. - man kann nur das Script-Verzeichnis ändern (oder habe ich da etwas falsch verstanden?)

 

[color=SandyBrown]Was will der Neue jetzt eigentlich?[/color]

 

Ganz einfach ausgedrückt: Ich möchte den Netzwerkeinstellungen von vielen Client-PC´s in einer Domäne ein DNS-Suffix zuteilen. Auf den Client PC´s sitzen vorwiegend Domänenbenutzer mit lokalen Hauptbenutzerrechten.

 

Freundliche Grüße

 

Chacky4krsma

Link zu diesem Kommentar

Herzlich willkommen im Board,

 

nur weil die Computerkonten sich noch im Standardcontainer befinden heisst ja nicht, dass Du nicht doch gezielt Computerrichtlinien (in diesem Fall ein Startscript) auf sie anwenden kannst. Du kannst alle relevanten Computerkonten einer neuen Gruppe zuordnen, die Richtlinie auf Domänenebene anwenden und an Stelle der Authentifizierten Benutzer dieser Gruppe die Berechtigung Gruppenrichtlinien lesen und Gruppenrichtlinie übernehmen gewähren. Auf XP-Maschinen müssen Benutzer keine Administratoren sein um Netzwerkeinstellungen verändern zu dürfen. Sie müssen Mitglied der Netzwerkkonfigurations-Operatoren sein (eventuell automatisiert mit einer "Eingeschränkte Gruppen" Richtlinie). Weiterhin kann man zumindest XP-Maschinen solch ein Suffix auch via GPO zuweisen, bei 2000er Rechnern klappt das allerdings nicht. Von DHCP fange ich jetzt gar nicht erst an, es hat sicher einen Grund, warum Du das so nicht machen willst ...

 

Gruss

 

Sven

Link zu diesem Kommentar
Hallöchen erstmal

 

[...] Wird ja ziemlich hart umgegangen mit Newbies hier.[...]

 

Hallöchen zurück und willkommen "onBoard".

 

Um eines klar zu stellen: Es wird hier nicht generell hart mit Newbies umgegangen, wir mögen nur nicht, wenn man erstens gegen die Boardregeln verstößt und zweitens dies in einem seiner ersten Postings macht, wo man doch gerade erst die Regeln akzeptiert hat...;)

 

Leider kann ich persönlich bei dem Problem nicht helfen, daher bitte noch etwas Geduld.

Link zu diesem Kommentar

Also du hast im Moment das Problem, dass die PC's alle in einer zentralen OU sind und nur deine User in den OUs "Köln" "Hamburg" "Berlin" "Zuerich" verteilt sind?

 

Und du desswegen die DNS Suffix nur via User konfigurieren kannst, weil du von den PC nicht weisst wo sie stehen?

 

Hmm Ich bin da nicht so der profi, aber kannst du nicht ein ADM File erstellen, damit eine GPO Erstellen und diese dann auf die "Köln" "Hamburg" und "Berlin" OU's schlüsseln? Dann würde das dort doch ausgeführt. Gut ich weiss nicht ob das dann mit User rechten oder mit System rechten ausgeführt wird.

Link zu diesem Kommentar

Mein Praktikum ist jetzt leider vorüber. Würde ich das System weiterhin administrieren hätte ich es wohl mit einem Workaround gemacht:

 

Bat-File im User-Scritp erstellen, inkl. runas-Befehl, mit dem Verweis auf ein in einer universellen Freigabe (für alle User freigegeben) kopiertes Script (natürlich versteckt und mit nur dem Admin in der acl).

 

Das wäre wohl noch die schnellste Methode gewesen :rolleyes: .

 

@tacher: Ich weiss genau wo die Client-PC´s stehen: waren ja indirekt vor meiner Nase :p ... Scherz beiseite!

Du meinst wohl, ich solle in einer User-GPO das "Script" "Ändere lokale Computer-GPO-Einstellungen des Client-PC´s.adm" ausführen? Wäre das nicht das gleiche Problem wie mit meinem Script? Oder werden amd-files mit höheren Rechten ausgeführt? Das wäre doch ne Sicherheitslücke.

Oder stehe ich komplett auf der Leitung?

 

Hatte mit adm-Files bislang nix am Hut ... aber man kann sich da ja schlauer machen.

 

Das ehemals eigenartige an der ganzen Sache: "Scripte" werden im User-Profil mit erhöhten Rechten ausgeführt in einer GPO allerdings nicht. Finde ich aber auch o.k., da ein böser Bube eher an einen Client-PC kommt als an den DC.

Link zu diesem Kommentar

Hui, da hat DM kürzlich was gepostet, hab ich aber noch nicht nachvollziehen können:

Joachim Grill wrote:
> gibt es eine Möglichkeit das Starten eines Programms aus
> einer Batch-Datei heraus mit Administrator-Rechten zu
> bewerkstelligen?

ja, schau mal hier:

// elevate.js -- runs target command line elevated
if (WScript.Arguments.Length >= 1) {
   Application = WScript.Arguments(0);
   Arguments = "";
   for (Index = 1; Index < WScript.Arguments.Length; Index += 1) {
       if (Index > 1) {
           Arguments += " ";
       }
       Arguments += WScript.Arguments(Index);
   }
   new ActiveXObject("Shell.Application").ShellExecute(Application, Arguments,
"", "runas");
} else {
   WScript.Echo("Usage:");
   WScript.Echo("elevate Application Arguments");
}

Das als elevate.js speichern und das aus dem Batch aufrufen.

Viele Grüße!
--
.:Daniel Melanchthon:.

 

Gefunden in Vista.Sonstiges

wars sowas?

Link zu diesem Kommentar

mmh ich habs mal kommentiert, eventuell fällt es dann jemand leichter es nachzuvollziehen:

 

/ elevate.js -- runs target command line elevated
/ Prüft ob dem Script Startparameter mitgegeben wurden (mindestens ein)
if (WScript.Arguments.Length >= 1) {
   /der erste Parameter ist die Anwendung die gestartet werden soll
   Application = WScript.Arguments(0);
   Arguments = "";
   /fügt die weiteren Parameter zu einem String zusammen um sie später weitergeben zu können
   for (Index = 1; Index < WScript.Arguments.Length; Index += 1) {
       if (Index > 1) {
           Arguments += " ";
       }
       Arguments += WScript.Arguments(Index);
   }
   /Startet ein AciveXObject vom Typ "Shell.Application"
   /Application = Anwendung die gestartet werden soll
   /Arguments = Parameter die der Anwendung mitgegeben werden soll
   /"" = Ordner in dem die Appliction liegt
   /"runas" = Die operation die mit der "application" gemacht werden soll
   new ActiveXObject("Shell.Application").ShellExecute(Application, Arguments,"", "runas");
} else {
   /Fehler - Keine Argumente angegeben
   WScript.Echo("Usage:");
   WScript.Echo("elevate Application Arguments");
}

 

Hier nochmal der MSDN eintrag zum "ShellExecute"

ShellExecute Method (IShellDispatch2)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...