nilson
Goto Top

shutdown -s mit Fehlermeldung bei eingeschränkten Benutzern (XP-Home)

shutdown -s mit Fehlermeldung
"Der Client besitzt ein erforderliches Recht nicht"

Hallo zusammen,
ich rufe per Skript den Befehl 'shutdown -s' auf. Als Benutzer mit Adminrechten klappt das wunderbar und der PC wird herunter gefahren. Als Benutzer mit eingeschränkten Rechten passiert nichts (bzw. Konsolenfenster blinkt kurz auf - aber der PC wird nicht herunter gefahren). Wenn ich 'shutdown -s' in die Konsole eingebe, bekomme ich die Fehlermeldung

"Der Client besitzt ein erforderliches Recht nicht"

Wie bekomme ich heraus, welches Recht es genau ist? shutdown.exe ist für alle Benutzer zum Lesen/Ausführen freigegeben.

Danke, Nils

Content-Key: 35243

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

Printed on: April 23, 2024 at 17:04 o'clock

Member: badmaxx
badmaxx Jul 02, 2006 at 18:47:38 (UTC)
Goto Top
wenn du also als eingeschränkter benutzer im Windows ordner die shutdown.exe ausführst fährt der PC herunter?

Wenn ja lege doch einfach eine verknüpfung der shutdown.exe auf den Desktop oder wo du sie hinhaben willst.

Gruß
Maxi
Member: nilson
nilson Jul 02, 2006 at 19:38:14 (UTC)
Goto Top
also ich widerhole noch einmal:

als standardbenutzer OHNE adminrechte bekomme ich die fehlermeldung - somit hilft auch die verknüpfung nichts

als administrator funktionierts

hat wer ne idee?

nils
Member: Biber
Biber Jul 02, 2006 at 19:49:15 (UTC)
Goto Top
Mach Dir nix draus, nilson,

Du hast Deine Frage schon klar formuliert *muahaha*...

Wenn so wenig Antworten kommen zur Kombination XP Home und Shutdown.exe liegt das daran, dass normalerweise ja über gpedit.msc das "Recht zum Herunterfahren" erteilt werden muss - und bei XP Home weiß hier im Forum kaum einer, was man/frau statt dessen macht.

Ich auch nicht, BTW.
Ich empfehle Dir das Ausweichen auf die psShutdown.exe von www.sysInternals.com. Da ist wenigstens vorhersagbar, dass es funktioniert.

Gruß
Biber
@bettmaxe: Kann ich Dich auch mieten für Kindergeburtstage oder ähnliches?
Member: micha31
micha31 Jul 03, 2006 at 08:32:34 (UTC)
Goto Top
Hallo ... führe das Scripts als geplanter Task aus ... dort gibst Du dann die entsprechenden Admin-Berechtigungen ein.

Dann klappt das wunderbar.

Grüsse
Member: nilson
nilson Jul 03, 2006 at 10:17:32 (UTC)
Goto Top
ja, das wäre grundsätzlich eine option. da das skript aber auf dem fileserver die datensicherung erledigt (nach deren ende der rechner herunter fahren soll), die arbeitszeiten sind bei uns so unterschiedlich, dass ich nicht weiss, wann wirklich niemand mehr da ist, hätte ich es lieber, wenn der letzte einfach auf den button klickt und damit die sicherung anschmeisst und das system danach herunter gefahren wird (warum auf dem server xp-home läuft - frag mich nicht, ich bin hier bloss der dumme, ders verwaltet)


nils
Member: micha31
micha31 Jul 03, 2006 at 11:39:33 (UTC)
Goto Top
hallo nils,

die meissten backup-programme bieten die funktion an

vor oder nach

dem backup ein programm auszuführen. dort den shutdown batch rein bzw. den task manuell starten lassen (wg. deinem berechtigungsproblem) ????

micha
Member: nilson
nilson Jul 03, 2006 at 12:49:39 (UTC)
Goto Top
hi micha,

so hab ich das skript auch angepasst.

1. läft das backup
2. nachdem das backup fertig ist, wird shutdown -s aufgerufen

das ganze habe ich mit dem windows-shutdown-befehl, psshutdown (sysinternals) und poweroff probiert. jedes mal habe ich als eingeschränkter benutzer das problem, dass der zugriff auf das programm / den befehl verweigert wird. wenn ich mit adminrechten arbeite, funktionierts wunderbar. ein normaler user soll aber logischer weise nicht mit adminrechten arbeiten.

starte ich beispielsweise shutdown -s als eingeschränkter benutzer in der konsole, bekomme ich die meldung

"Der Client besitzt ein erforderliches Recht nicht"

ich habe für den ausführenden benutzer bereits explizit adminrechte für die betreffenden shutdown-programme vergeben - hilft nix.

die o.g. meldung deutet aber darauf hin, dass das problem nicht direkt bei den rechten des benutzers an den auszuführenden dateien liegt, sondern dass der benutzer generell den shutdown-befehl per skript nicht ausführen darf. wenn dem so ist, wo kann ich diese berechtigungen ändern?

eine andere option: einen task anlegen, als ausführenden benutzer einen admin angeben und den task manuell durch den eingeschränkten benutzer ausführen lassen, funktioniert auch nicht, weil mir beim anlegen des tasks gesagt wird, das entsprechende skript, was ich aufrufen möchte, existiere nicht - obwohl es natürlich da ist. schliesslich sehe ich es und kann es ohne den umweg des tasks ausführen.

ok, das waren viele fragen - vielleicht kann ja jemand helfen.

danke, nils
Member: micha31
micha31 Jul 03, 2006 at 14:13:14 (UTC)
Goto Top
probiers mal mit diesem script ... ich denke da brauchst du keine admin berechtigungen (bitte noch etwas anpassen) ...

strComputer = "pc02"

Const LOGOFF = 0
Const SHUTDOWN = 1
Const REBOOT = 2
Const POWEROFF = 8

Const FORCE = 4

flags = POWEROFF + FORCE

Set objwmi = GetObject("winmgmts:" _
& "{(Shutdown)}!\\" & strComputer)

WQL = "SELECT * from Win32_OperatingSystem"

Set colOperatingSystems = objwmi.ExecQuery(WQL)

For Each objOperatingSystem In colOperatingSystems
objOperatingSystem.Win32Shutdown flags, 0
Next
Member: nilson
nilson Jul 03, 2006 at 16:02:05 (UTC)
Goto Top
hallo micha,
danke für den code. da ich nicht der skriptprofi bin und bisher alles nur aus verschiedenen vorlagen zusammen gestückelt habe, hier noch ein paar fragen:

- ich würde den code in eine funktion packen und an entsprechender stelle aufrufen - möglich?
- strComputer definiert den namen meines pc? muss ich das als globale variable definieren? wenn ja, wie sag ich denn, dass es localhost sein soll.
- wie gebe ich alternativ einen rechner im netzwerk an?

danke, Nils
Member: micha31
micha31 Jul 04, 2006 at 06:35:35 (UTC)
Goto Top
hallo micha,
danke für den code. da ich nicht der
skriptprofi bin und bisher alles nur aus
verschiedenen vorlagen zusammen
gestückelt habe, hier noch ein paar
fragen:



Ich bin auch kein Scriptprofi ... den Script habe ich aus einem Microsoft Buch ... ist genial .. da man eben nicht Scripten können muss sondern nur etwas verstehen. Ich versuche Dir mal zu helfen

strComputer ist die Variable für Deinen Computer ... Du erst lediglich den namen pc02 mit localhost oder mit dem Namen Deines Computers welchen Du herunterfahren möchtest. Alternativ geht auch die IP-Adresse.



- ich würde den code in eine funktion
packen und an entsprechender stelle aufrufen
- möglich?

???? Muss ich warscheinlich passen ... da ich auch nicht scripten kann, lediglich das Script benutze.


- wie gebe ich alternativ einen rechner im
netzwerk an?

einfach ip-adresse oder namen des rechners im netzwerk sofern du dns bzw. wins etc hast.



danke, Nils


hoffe du kommst weiter.

grüsse
micha