Win32_OperatingSystem 클래스의 Reboot 메서드
WMI 다시부팅 클래스 메서드는 컴퓨터 시스템을 종료한 다음 다시 시작합니다.
이 항목에서는 MOF(Managed Object Format) 구문을 사용합니다. 이 메서드를 사용하는 방법에 대한 자세한 내용은 메서드 호출을 참조하세요.
구문
uint32 Reboot();
매개 변수
이 메서드에는 매개 변수가 없습니다.
반환 값
성공을 나타내기 위해 0을 반환합니다. 다른 모든 숫자는 오류를 나타냅니다. 오류 코드는 WMI 오류 상수 또는 WbemErrorEnum을 참조하세요. 일반적인 HRESULT 값은시스템 오류 코드를 참조하세요.
-
성공 (0)
-
기타 (1 4294967295)
설명
프로그래밍 방식으로 컴퓨터를 다시 시작하는 기능을 통해 관리자는 많은 컴퓨터 관리 작업을 원격으로 수행할 수 있습니다.
예를 들어 소프트웨어를 설치하는 스크립트를 만들거나 컴퓨터를 다시 시작해야 하는 구성을 변경하는 경우 스크립트에 restart 명령을 포함하고 전체 작업을 원격으로 수행할 수 있습니다. Reboot 메서드를 사용하여 컴퓨터를 다시 시작할 수 있습니다. Win32Shutdown 메서드와 마찬가지로 Reboot 메서드를 사용하려면 스크립트에서 보안 자격 증명을 사용하는 사용자가 종료 권한을 보유해야 합니다.
예제
다음 VBScript 코드 샘플은 Win32_OperatingSystem 클래스의 Reboot 메서드를 호출합니다.
참고
Shutdown 메서드를 성공적으로 호출하려면 종료 권한이 있어야 합니다.
Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Reboot()
next
다음 Perl 코드는 Win32_OperatingSystem 클래스의 Reboot 메서드를 호출합니다.
참고
Shutdown 메서드를 성공적으로 호출하려면 종료 권한이 있어야 합니다.
use Win32::OLE;
use strict;
my $OpSysSet;
eval { $OpSysSet = Win32::OLE->GetObject("winmgmts:{(Shutdown)}//./root/cimv2")->
ExecQuery("SELECT * FROM Win32_OperatingSystem WHERE Primary=true"); };
if (!$@ && defined $OpSysSet)
{
close(STDERR);
foreach my $OpSys (in $OpSysSet)
{
my $RetVal = $OpSys->Reboot();
if (!defined $RetVal || $RetVal != 0)
{
print Win32::OLE->LastError, "\n";
}
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
다음 VBScript는 원격 시스템에서 Win32_OperatingSystem 클래스의 Reboot 메서드를 호출합니다. 다시 부팅할 원격 시스템의 이름으로 REMOTE_SYSTEM_NAME 입력합니다.
참고
Reboot 메서드를 성공적으로 호출하려면 RemoteShutdown 권한이 있어야 합니다.
Set OpSysSet = GetObject("winmgmts:{(RemoteShutdown)}//REMOTE_SYSTEM_NAME/root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Reboot()
next
Perl을 따르는 그는 원격 시스템에서 Win32_OperatingSystem 클래스의 Reboot 메서드를 호출합니다. 다시 부팅할 원격 시스템의 이름으로 REMOTE_SYSTEM_NAME 입력합니다.
참고
Reboot 메서드를 성공적으로 호출하려면 RemoteShutdown 권한이 있어야 합니다.
use strict;
use Win32::OLE;
use constant REMOTE_SYSTEM_NAME => "MACHINENAME";
use constant USERNAME => "USER";
use constant PASSWORD => "PASSWORD";
use constant NAMESPACE => "root\\cimv2";
use constant wbemPrivilegeRemoteShutdown => 23;
use constant wbemImpersonationLevelImpersonate => 3;
close(STDERR);
my ($locator, $services, $OpSysSet);
eval {
$locator = Win32::OLE->new('WbemScripting.SWbemLocator');
$locator->{Security_}->{impersonationlevel} = wbemImpersonationLevelImpersonate;
$services = $locator->ConnectServer(REMOTE_SYSTEM_NAME, NAMESPACE, USERNAME, PASSWORD);
$services->{Security_}->{Privileges}->Add(wbemPrivilegeRemoteShutdown);
$OpSysSet = $services->ExecQuery("SELECT * FROM Win32_OperatingSystem WHERE Primary=true");
};
if (!$@ && defined $OpSysSet)
{
foreach my $OpSys (in $OpSysSet)
{
$OpSys->Reboot();
}
}
else
{
print Win32::OLE->LastError, "\n";
exit(1);
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
네임스페이스 |
Root\CIMV2 |
MOF |
|
DLL |
|