Win32Shutdown-Methode der Win32_OperatingSystem-Klasse

Die WMI-KlassenmethodeWin32Shutdown bietet den vollständigen Satz von Herunterfahroptionen, die von Win32-Betriebssystemen unterstützt werden. Dazu gehören Abmelden, Herunterfahren, Neustarten und Erzwingen eines Abmeldens, Herunterfahrens oder Neustarts.

In diesem Thema wird MOF-Syntax (Managed Object Format) verwendet. Weitere Informationen zur Verwendung dieser Methode finden Sie unter Aufrufen einer Methode.

Syntax

uint32 Win32Shutdown(
  [in] sint32 Flags,
  [in] sint32 Reserved = 
);

Parameter

Flaggen [in]

Bitmap-Set von Flags zum Herunterfahren des Computers. Um einen Befehl zu erzwingen, fügen Sie dem Befehlswert das Flag Erzwingen (4) hinzu. Durch Die Verwendung von "Erzwingen" in Verbindung mit Herunterfahren oder Neustarten auf einem Remotecomputer wird sofort alles heruntergefahren (einschließlich WMI, COM usw.) oder der Remotecomputer wird neu gestartet. Dies führt zu einem unbestimmten Rückgabewert.

0 (0x0)

Abmelden: Protokolliert den Benutzer vom Computer. Die Protokollierung beendet alle Prozesse, die dem Sicherheitskontext des Prozesses zugeordnet sind, der die Exit-Funktion aufgerufen hat, protokolliert den aktuellen Benutzer vom System und zeigt das Anmeldedialogfeld an.

4 (0x4)

Erzwungene Abmeldung (0 + 4): Protokolliert den Benutzer sofort vom Computer und benachrichtigt Anwendungen nicht, dass die Anmeldesitzung beendet wird. Dies kann zu einem Datenverlust führen.

1 (0x1)

Herunterfahren : Schaltet den Computer bis zu einem Punkt herunter, an dem es sicher ist, den Strom auszuschalten. (Alle Dateipuffer werden auf den Datenträger geleert, und alle ausgeführten Prozesse werden beendet.) Benutzern wird die Meldung angezeigt, It is now safe to turn off your computer.

Während des Herunterfahrens sendet das System eine Nachricht an jede ausgeführte Anwendung. Die Anwendungen führen während der Verarbeitung der Nachricht eine Bereinigung durch und geben True zurück, um anzugeben, dass sie beendet werden können.

5 (0x5)

Erzwungenes Herunterfahren (1 + 4): Schaltet den Computer bis zu einem Punkt herunter, an dem es sicher ist, den Strom auszuschalten. (Alle Dateipuffer werden auf den Datenträger geleert, und alle ausgeführten Prozesse werden beendet.) Benutzern wird die Meldung angezeigt, It is now safe to turn off your computer.

Wenn der Ansatz zum erzwungenen Herunterfahren verwendet wird, werden alle Dienste, einschließlich WMI, sofort heruntergefahren. Aus diesem Fall können Sie keinen Rückgabewert erhalten, wenn Sie das Skript auf einem Remotecomputer ausführen.

2 (0x2)

Neustart : Wird heruntergefahren und startet dann den Computer neu.

6 (0x6)

Erzwungener Neustart (2 + 4): Wird heruntergefahren und anschließend der Computer neu gestartet.

Wenn der Ansatz für einen erzwungenen Neustart verwendet wird, werden alle Dienste, einschließlich WMI, sofort heruntergefahren. Aus diesem Fall können Sie keinen Rückgabewert erhalten, wenn Sie das Skript auf einem Remotecomputer ausführen.

8 (0x8)

Ausschalten : Schaltet den Computer herunter und schaltet den Strom aus (sofern vom betreffenden Computer unterstützt).

12 (0xC)

Erzwungene Ausschaltung (8 + 4): Schaltet den Computer herunter und schaltet den Strom aus (sofern vom betreffenden Computer unterstützt).

Wenn der Ansatz zum erzwungenen Ausschalten verwendet wird, werden alle Dienste, einschließlich WMI, sofort heruntergefahren. Aus diesem Fall können Sie keinen Rückgabewert erhalten, wenn Sie das Skript auf einem Remotecomputer ausführen.

Reserviert [in]

Ein Mittel zum Erweitern von Win32Shutdown. Derzeit wird der Reserved-Parameter ignoriert.

Rückgabewert

Gibt null (0) zurück, um den Erfolg anzugeben. Jede andere Zahl gibt einen Fehler an. Fehlercodes finden Sie unter WMI-Fehlerkonstanten oder WbemErrorEnum. Allgemeine HRESULT-Werte finden Sie unter Systemfehlercodes.

Erfolg (0)

Sonstiges (1–4294967295)

Bemerkungen

Für eine effizientere Verwaltung von Computern in einem organization benötigen Administratoren die Möglichkeit, einen Computer remote herunterzufahren oder neu zu starten oder einen Benutzer remote abzumelden. Die Möglichkeit, diese Aufgaben auszuführen, ermöglicht Es Administratoren, Software zu installieren, Computereinstellungen neu zu konfigurieren, Computer aus dem Netzwerk zu entfernen und andere Aufgaben auszuführen, ohne jeden Computer manuell herunterfahren oder neu starten zu müssen.

Um beispielsweise ein Netzwerkupgrade durchzuführen, müssen Sie möglicherweise alle Computer herunterfahren, die in einem bestimmten Netzwerksegment ausgeführt werden. Um ein Gruppenrichtlinie Upgrade zu erzwingen, müssen Sie Benutzer von ihren Computern abmelden. Wenn ein Computervirus überall in Ihrem organization vorhanden ist, sollten Sie so viele Computer wie möglich herunterfahren, bevor sich das Virus verbreiten kann. Die Möglichkeit, Computer herunterzufahren und neu zu starten und Benutzer programmgesteuert und nicht manuell abzumelden, kann eine enorme Zeitersparnis sein.

Der aufrufende Prozess muss über die berechtigung SE_SHUTDOWN_NAME verfügen.

Die Win32ShutdownTracker-Methode bietet denselben Satz von Optionen zum Herunterfahren, die von der Win32Shutdown-Methode in Win32_OperatingSystem unterstützt werden, aber Sie können auch Kommentare, einen Grund für das Herunterfahren oder ein Timeout angeben.

Die Win32Shutdown-Methode verfügt nicht über einen Parameter zum Sperren einer Arbeitsstation, sodass der Benutzer angemeldet bleibt. Arbeitsstationen können jedoch über die Befehlszeile mit dem folgenden Befehl gesperrt werden:

% windir %\System32\rundll32.exe user32.dll,LockWorkStation

Beispiele

Im VBScript-Beispiel Abmelden, Neustarten oder Herunterfahren mehrerer Computer im TechNet-Katalog wird Win32Shutdown verwendet, um die im Serverarray aufgeführten Computer abzumelden, herunterzufahren, neu zu starten oder auszuschalten (je nach Auswahl).

Das ComputerManagement.ps1 PowerShell-Beispiel im TechNet-Katalog enthält eine Methode, die Win32Shutdown auf einem Remotecomputer aufruft.

Im folgenden PowerShell-Beispiel wird die Win32Shutdown-Methode verwendet, um den angegebenen Computer herunterzufahren.

$computername= "."
$win32OS = get-wmiobject win32_operatingsystem -computername $computername
$win32OS.psbase.Scope.Options.EnablePrivileges = $true
$win32OS.win32shutdown(8)

Im folgenden PowerShell-Codebeispiel wird das Cmdlet EnableAllPrivileges von get-wmiobject verwendet, um die richtigen Privilegien zu erzielen.

$win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges
$win32OS.win32shutdown(8)

Im folgenden VB.NET Beispielcode wird die Shutdown-Methode verwendet, um ein System neu zu starten oder abzumelden.

Dim

testResult AsSingle

Dim WMIServiceObject, ComputerObject AsObject 

'Now get some privileges 

WMIServiceObject = GetObject(
"Winmgmts:{impersonationLevel=impersonate,(Debug,Shutdown)}")
ForEach ComputerObject In WMIServiceObject.InstancesOf("Win32_OperatingSystem") 
    testResult = ComputerObject.Win32Shutdown(2 + 4, 0) 
    'reboot
    'testResult = ComputerObject.Win32Shutdown(0, 0) 'logoff 
    ' testResult = ComputerObject.Win32Shutdown(8 + 4, 0) 'shutdown 

If testResult <> 0 Then 

MsgBox("Sorry, an error has occurred while trying to perform selected operation") 

Else 

'Operation selected in statement above if condition would be carried out 

EndIf 

Next

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Siehe auch

Betriebssystemklassen

Win32_operatingsystem

Win32ShutdownTracker

WMI-Aufgaben: Desktopverwaltung

Ausführen von privilegierten Vorgängen mit VBScript