//首先添加对 System.Management的引用
//然后代码入下:
ConnectionOptions op = new ConnectionOptions ( ) ;
op.Username ="xx";//或者你的帐号(注意要有管理员的权限)
op.Password = "xx" ; //你的密码
ManagementScope scope = new ManagementScope( "\\\\" + "106.54.20.1" + "\\root\\wgscd",
op ) ;
try
{
scope.Connect ( ) ;
System.Management.ObjectQuery oq = new System.Management.ObjectQuery ( "SELECT * FROM
Win32_OperatingSystem" ) ;
ManagementObjectSearcher query1 = new ManagementObjectSearcher ( scope , oq ) ;
//得到WMI控制
ManagementObjectCollection queryCollection1 = query1.Get ( ) ;
foreach ( ManagementObject mobj in queryCollection1 )
{
string [ ] str= { "" } ;
mobj.InvokeMethod ( "Reboot" , str ) ;
}
}
catch
{
}
服务器的RPC服务我已经开启了!
26 个解决方案
#1
服务器的WMI服务开了没有
#2
服务器的WMI服务是什么?
怎么开?
怎么开?
#3
up
#4
防火墙都关上
#5
防火墙什么的!
我都关掉了!
我都关掉了!
#6
up
#7
up
#8
你在远程计算机上没有安装客户端,所以需要对方允许你去关机才可以。
这就要求对方打开RPC服务让你可以进去关机
这就要求对方打开RPC服务让你可以进去关机
#9
干嘛不用。net的remoting???
#10
远程计算机上还要装什么客服端??
RPC服务已经打开!!
#11
remoting要怎么做??
#12
急呀!
麻烦各位了
麻烦各位了
#13
参考:远程关闭别人的电脑:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace Ex18_11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//指定生成 WMI 连接所需的所有设置
ConnectionOptions op = new ConnectionOptions();
op.Username = "administrator"; //远程计算机用户名称
op.Password = ""; //远程计算机用户密码
//设置操作管理范围
ManagementScope scope = new ManagementScope("\\\\" + "192.9.103.114" + "\\root\\cimv2", op);
scope.Connect(); //将此 ManagementScope 连接到实际的 WMI 范围。
ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query = new ManagementObjectSearcher(scope, oq);
//得到WMI控制
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject obj in queryCollection)
{
// obj.InvokeMethod("ShutDown", null); //执行关闭远程计算机,reboot为重新启动
obj.InvokeMethod("Reboot",null);
}
}
}
}
#14
要报RPC服务不可用!这个错误!
我在网上查了下!
说是RPC服务没启动!
我服务器的RPC服务是启动了的!
#15
就是这个啊
服务名称: winmgmt
显示名称: Windows Management Instrumentation
描述:提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windows 的软件将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。
#16
这个服务我也是开启的的
#17
up
#18
那这句加过没有
scope.Options.EnablePrivileges = true;
scope.Options.EnablePrivileges = true;
#19
//
// 摘要:
// 获取或设置一个值,该值指示是否需要为连接操作启用用户特权。只有在执行的操作需要启用某种用户特权(例如,重新启动计算机)时,才应使用此属性。
//
// 返回结果:
// 返回一个 System.Boolean 值,该值指示是否需要为连接操作启用用户特权。
public bool EnablePrivileges { get; set; }
#20
scope.Options.EnablePrivileges = true;
加上还是报RPC服务
不可用!
加上还是报RPC服务
不可用!
#21
应该是权限问题,wmi远程不好用,限制太多,tcp/udp135端口必须可用,没有设过相应的本地ip策略
远程计算机的dcom配置看看,控制面板->管理工具->组件服务>DCOM配置->Windows Management and Instrumentation->属性,里面看看。。
建议是远程计算机做一个window服务监听tcp,这边发一个tcp重启指令,对方的windows自动调用shutdown,只要端口不被禁,就能用
远程计算机的dcom配置看看,控制面板->管理工具->组件服务>DCOM配置->Windows Management and Instrumentation->属性,里面看看。。
建议是远程计算机做一个window服务监听tcp,这边发一个tcp重启指令,对方的windows自动调用shutdown,只要端口不被禁,就能用
#22
dcom配置里选自定义,然后先把权限都设为最大再说。。。
启动和激活权限->everyone->完全控制
访问权限->self->本地访问允许,远程访问允许A
->system->本地访问允许,远程访问允许A
配置权限users组->完全控制允许
启动和激活权限->everyone->完全控制
访问权限->self->本地访问允许,远程访问允许A
->system->本地访问允许,远程访问允许A
配置权限users组->完全控制允许
#23
按照你说的设置了!
还是报RPC服务部可用!
难道要重启下电脑??
还是报RPC服务部可用!
难道要重启下电脑??
#24
远程计算机做一个window服务监听tcp,这边发一个tcp重启指令
我不知道这边怎么发指令过去?
我试过用webService,
在webService里面写一个方法!是重启的方法!
然后客服端掉用那个方法!
但是不行!
我不知道这边怎么发指令过去?
我试过用webService,
在webService里面写一个方法!是重启的方法!
然后客服端掉用那个方法!
但是不行!
#25
就是随便发一条能代表你这个客户端的指令,比如
客户端发送"AA",远程计算机的一个在listen tcp的windows服务AcceptTcpClient到了,一看是"AA",就重启计算机
客户端发送"AA",远程计算机的一个在listen tcp的windows服务AcceptTcpClient到了,一看是"AA",就重启计算机
#26
怎么发送?
怎么接受?
#1
服务器的WMI服务开了没有
#2
服务器的WMI服务是什么?
怎么开?
怎么开?
#3
up
#4
防火墙都关上
#5
防火墙什么的!
我都关掉了!
我都关掉了!
#6
up
#7
up
#8
你在远程计算机上没有安装客户端,所以需要对方允许你去关机才可以。
这就要求对方打开RPC服务让你可以进去关机
这就要求对方打开RPC服务让你可以进去关机
#9
干嘛不用。net的remoting???
#10
远程计算机上还要装什么客服端??
RPC服务已经打开!!
#11
remoting要怎么做??
#12
急呀!
麻烦各位了
麻烦各位了
#13
参考:远程关闭别人的电脑:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace Ex18_11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//指定生成 WMI 连接所需的所有设置
ConnectionOptions op = new ConnectionOptions();
op.Username = "administrator"; //远程计算机用户名称
op.Password = ""; //远程计算机用户密码
//设置操作管理范围
ManagementScope scope = new ManagementScope("\\\\" + "192.9.103.114" + "\\root\\cimv2", op);
scope.Connect(); //将此 ManagementScope 连接到实际的 WMI 范围。
ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query = new ManagementObjectSearcher(scope, oq);
//得到WMI控制
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject obj in queryCollection)
{
// obj.InvokeMethod("ShutDown", null); //执行关闭远程计算机,reboot为重新启动
obj.InvokeMethod("Reboot",null);
}
}
}
}
#14
要报RPC服务不可用!这个错误!
我在网上查了下!
说是RPC服务没启动!
我服务器的RPC服务是启动了的!
#15
就是这个啊
服务名称: winmgmt
显示名称: Windows Management Instrumentation
描述:提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windows 的软件将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。
#16
这个服务我也是开启的的
#17
up
#18
那这句加过没有
scope.Options.EnablePrivileges = true;
scope.Options.EnablePrivileges = true;
#19
//
// 摘要:
// 获取或设置一个值,该值指示是否需要为连接操作启用用户特权。只有在执行的操作需要启用某种用户特权(例如,重新启动计算机)时,才应使用此属性。
//
// 返回结果:
// 返回一个 System.Boolean 值,该值指示是否需要为连接操作启用用户特权。
public bool EnablePrivileges { get; set; }
#20
scope.Options.EnablePrivileges = true;
加上还是报RPC服务
不可用!
加上还是报RPC服务
不可用!
#21
应该是权限问题,wmi远程不好用,限制太多,tcp/udp135端口必须可用,没有设过相应的本地ip策略
远程计算机的dcom配置看看,控制面板->管理工具->组件服务>DCOM配置->Windows Management and Instrumentation->属性,里面看看。。
建议是远程计算机做一个window服务监听tcp,这边发一个tcp重启指令,对方的windows自动调用shutdown,只要端口不被禁,就能用
远程计算机的dcom配置看看,控制面板->管理工具->组件服务>DCOM配置->Windows Management and Instrumentation->属性,里面看看。。
建议是远程计算机做一个window服务监听tcp,这边发一个tcp重启指令,对方的windows自动调用shutdown,只要端口不被禁,就能用
#22
dcom配置里选自定义,然后先把权限都设为最大再说。。。
启动和激活权限->everyone->完全控制
访问权限->self->本地访问允许,远程访问允许A
->system->本地访问允许,远程访问允许A
配置权限users组->完全控制允许
启动和激活权限->everyone->完全控制
访问权限->self->本地访问允许,远程访问允许A
->system->本地访问允许,远程访问允许A
配置权限users组->完全控制允许
#23
按照你说的设置了!
还是报RPC服务部可用!
难道要重启下电脑??
还是报RPC服务部可用!
难道要重启下电脑??
#24
远程计算机做一个window服务监听tcp,这边发一个tcp重启指令
我不知道这边怎么发指令过去?
我试过用webService,
在webService里面写一个方法!是重启的方法!
然后客服端掉用那个方法!
但是不行!
我不知道这边怎么发指令过去?
我试过用webService,
在webService里面写一个方法!是重启的方法!
然后客服端掉用那个方法!
但是不行!
#25
就是随便发一条能代表你这个客户端的指令,比如
客户端发送"AA",远程计算机的一个在listen tcp的windows服务AcceptTcpClient到了,一看是"AA",就重启计算机
客户端发送"AA",远程计算机的一个在listen tcp的windows服务AcceptTcpClient到了,一看是"AA",就重启计算机
#26
怎么发送?
怎么接受?