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-ID: 35243

Url: https://administrator.de/forum/shutdown-s-mit-fehlermeldung-bei-eingeschraenkten-benutzern-xp-home-35243.html

Ausgedruckt am: 23.12.2024 um 15:12 Uhr

badmaxx
badmaxx 02.07.2006 um 20:47:38 Uhr
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
nilson
nilson 02.07.2006 um 21:38:14 Uhr
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
Biber
Biber 02.07.2006 um 21:49:15 Uhr
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?
micha31
micha31 03.07.2006 um 10:32:34 Uhr
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
nilson
nilson 03.07.2006 um 12:17:32 Uhr
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
micha31
micha31 03.07.2006 um 13:39:33 Uhr
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
nilson
nilson 03.07.2006 um 14:49:39 Uhr
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
micha31
micha31 03.07.2006 um 16:13:14 Uhr
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
nilson
nilson 03.07.2006 um 18:02:05 Uhr
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
micha31
micha31 04.07.2006 um 08:35:35 Uhr
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