C#实现重新启动计算机
一. C#重启远程计算机的一些理论知识:
C#实现启动远程计算机的原理是"视窗管理规范"。就是所谓的"WMI"(Windows Management Instrumentation)。Windows 管理规范 (WMI) 支持通过 Internet 管理系统的结构。通过提供管理环境的一致观察,WMI 为用户提供通用访问管理信息。该管理的一致性使您能够管理整个系统,而不只是组件。从 Microsoft MSDN上,您可以获得有关 WMI 软件开发工具包 (SDK) 的详细信息。
WMI(Windows 管理规范)支持有限的安全格式,允许用户在本地计算机或远程计算机上连接 WMI 之前要验证每个用户。这种安全性是操作系统已有的安全顶端的另一层。WMI 不覆盖或破坏由操作系统提供的任何现有的安全性。在默认情况下,管理员组的所有成员都可以完全控制它管理的计算机上的 WMI 服务。其他所有用户在其本地计算机上只有读取/写入/执行的权限。可以通过向被管理的计算机上的管理员组添加用户,或者在 WMI 中授权用户或组并设置权限级别来更改权限。访问基于 WMI 名称空间。在一般情况下,脚本程序的默认命名空间是"root\cimv2"。
在WMI中有着许多足以令我们感觉惊奇的功能。重启远程计算机只是一个很小的功能。在程序中使用WMI可以编写出许多远程管理类型的应用程序。由于在.Net FrameWork SDK中提供了可以直接操作WMI的名称空间,所以C#就可以利用在这些名称空间中定义了的类来充分使用WMI控制给我们带来的各种方便。
二.程序设计和运行的环境设置:
(1).视窗2000服务器版
(2). .Net FrameWork SDK Beta 2
(3).远程计算机的管理者帐号
以上这些不仅是本地计算机配置,还是远程计算机的配置。
三.实现重启远程计算机所使用到在.Net FrameWork SDK Beta 2用以操作WMI名称空间和类:
在.Net FrameWork SDK Beta 2中用来操作WMI的名称空间主要是"System.Management"。要实现重启远程计算机所使用到的类主要有六个:
. "ConnectionOptions"类主要定义远程计算机的管理员帐号;
. "ManagementScope"主要是以给定的管理员帐号连接给定计算机名或者IP地址的计算机;
. "ObjectQuery"类功能是定义对远程计算机要实现那些地远程操作;
. "ManagementObjectSearcher"类从已经完成远程连接的计算机中,得到有那些WMI操作;
. "ManagementObjectCollection"类存放得到WMI操作;
. "ManagementObject"类调用远程计算机可进行WMI操作。
在本文介绍的操作就是重启操作。
四.C#重启远程计算机的重要步骤和实现方法:
(1).连接远程计算机:
按照下列语句可以实现连接远程计算机:
ConnectionOptions options = new ConnectionOptions ( ) ;
options.Username ="管理者帐号用户名";
options.Password = "管理者帐号口令" ;
ManagementScope scope = new ManagementScope( "\\\\" + "远程计算机名或IP地址" + "\\root\\cimv2", options ) ;
//用给定管理者用户名和口令连接远程的计算机
scope.Connect ( ) ;
(2).得到在远程计算机中可以进行WMI控制:
System.Management.ObjectQuery oq = new System.Management.ObjectQuery ( "SELECT * FROM Win32_OperatingSystem" ) ;
ManagementObjectSearcher query1 = new ManagementObjectSearcher ( scope , oq ) ;
//得到WMI控制
ManagementObjectCollection queryCollection1 = query1.Get ( ) ;
(3).调用WMI控制,实现重启远程计算机:
foreach ( ManagementObject mo in queryCollection1 )
{
string [ ] ss= { "" } ;
//重启远程计算机
mo.InvokeMethod ( "Reboot" , ss ) ;
}
转载于:https://www.cnblogs.com/prince1985s/archive/2006/12/02/580199.html
C#实现重新启动计算机相关推荐
- SQL安装时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运作安装程序之前必须重新启动计算机”...
SQL安装时出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作.运作安装程序之前必须重新启动计算机",但是重启了N次也没用. .net 2003安装问题-安装程序检测到另一 ...
- 计算机意外地重新启动或遇到错误。windows安装无法继续。若要安装windows 请单击 确定 重新启动计算机...
快安装完系统时遇到提示:计算机意外地重新启动或遇到错误.Windows 安装无法继续.若要安装Windows,请单击"确定"重新启动计算机,然后重新启动安装".如下图所示 ...
- 更改计算机名引起的奇怪问题:“重新启动计算机之前控制台无法刷新”
背景 阿里云云服务器,操作系统为 Windows Server 2008 R2 SP1 中文标准版,问题出现更改计算机名之后. 问题现象 打开服务器管理器(Server Manager),在窗口的右下 ...
- Sql Server 2008 精简版(Express)和管理工具的安装以及必须重新启动计算机才能安装 SQLServer的问题和第一次使用sqlexpress的连接问题
下载地址: SQL Server 2008 Express 中文简体安装包 x86: https://download.microsoft.com/download/5/f/a/5fad1d35-e6 ...
- win7电脑总是提示重新启动计算机以完成重要更新的安装是怎么回事,Win7开机时弹出Windows Update提示,怎样解决?(图文)...
Win7开机时弹出Windows Update提示,怎样解决?最近有一些Win7用户都反映了这样一个问题,就是在开关机的时候,电脑总是弹出"Windows Update"的窗口,同 ...
- 在安装sql server时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。...
在安装sql server时出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机"错误.无法进行下去. 这个问题,以前我遇到过,知道是删除 ...
- sqlsever无法重新启动计算机,有关SqlServer 2008安装及卸载的一些问题,安装检测时显示重新启动计算机....
安装检测时显示"重新启动计算机". "需要重新启动计算机.必须重新启动计算机才能安装SQL Server.",重启后还是显示同样的问题, 解决方法: 1.开始菜 ...
- 关闭注册表编辑器,重新启动计算机后生效。这样资源管理器重启后就不会自动重启了。...
那试试这个打开注册表编辑器,展开"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon", ...
- 安装sqlserver2008,重新启动计算机不通过的解决办法
安装sqlserver2008,重新启动计算机不通过的解决办法 解决步骤: a .重启机器,再进行安装,如果发现还有该错误,请按下面步骤 b.在开始->运行中输入regedit c.到HKEY_ ...
- 以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机...
以前装过sql server,后来删掉.现在重装,却出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机"错误.无法进行下去. 参考网上资 ...
最新文章
- Linux Kernel TCP/IP Stack — L1 Layer — tcpdump 抓包
- 《C++ Primer 4th》读书笔记 第6章-语句
- 超不清视频播放器-用Python将视频转成字符
- java求根号函数_一般实系数四次方程的一种求根公式与根的判别法则及其推导...
- 微信小程序引入骨架屏组件
- oracle sql2000,sql2000的代码改成oracle的
- java 耦合解耦_为什么工厂模式可以解耦?why?
- nuke软件功能有哪些?苹果Mac影视后期特效合成软件NUKE 13
- java项目开发经验总结
- 关于Boost的Asio的信号灯超时时间已到错误
- bpsk调制及解调实验_漫画讲解调制解调,深奥的通信原理是不是明白了?
- linux版本i686,在Ubuntu中'i686'是什么意思? - Ubuntu问答
- 记录mikrotik路由器的折腾过程
- mysql入门1:建表、插入、单表查询练习题1
- 【复习笔记】计算机网络求职考点整理
- 163邮箱怎么开通注册?公司邮箱格式选择,可以邮箱注册微信吗?
- java基础知识大端模式及其小端模式处理
- ITIL学习笔记——核心流程之:容量管理
- 【Golang之路】——slice总结
- 对于电子签名、CA、证书的理解
热门文章
- “达观杯”文本智能处理冠军分享:深度学习文本分类
- 研究百度下拉360下拉搜狗下拉神马下拉头条下拉抖音下拉的优化算法(合集帖)
- fckeditor漏洞_一、Ewebeidtor编辑器漏洞
- 有关python_30个有关Python的小技巧
- java doget 和dopost_Servlet中的doGet和doPost
- python 获取表格中的空数据_在python beautifulsoup中获取表格单元格值为空时的文本输出...
- excel删除重复数据保留一条_Excel怎么快速查找和删除重复数据
- oracle 11g Flashback Data Archive(闪回数据归档)
- mysql怎么保证最少一条消息_MySQL 的一条语句是怎么执行的
- Windows打印机驱动开发笔记(二)