在弄获取某台服务器磁盘空间时,显示RPC服务器不可用
启动一下服务Remote Procedure Call (RPC),Remote Procedure Call (RPC) Locator
电脑没有安装打印机,,这个服务也启动了,还是说RPC服务不可用
@兔兔涂涂凸: 启动一下服务Remote Procedure Call (RPC),Remote Procedure Call (RPC) Locator
@jqw2009: 也启动了,还是那个错
@兔兔涂涂凸: 你是用的wmi是吧? 那在启动一下wmi服务看看
@兔兔涂涂凸: 使用命令打开WMI服务。在开始-运行,输入cmd,在窗口内输入sc config wmiApSrv start= auto 按enter键;在输入sc start wmiSpSrv按enter键。
@jqw2009: 是这个么,,,
@jqw2009: 还是那个错,命令行输入后是这样
@兔兔涂涂凸: 是那个,wmi performance adapter,你开启了吗?目前我所知道就这么多了
@兔兔涂涂凸: 这个是针对你连接的那台电脑是否开启了这些服务,不是你自己的电脑吧
@jqw2009: 我是连接的自己的电脑,不行吗?
@兔兔涂涂凸: 好吧,你在百度下看看,我知道就这些了
@jqw2009: 好的,谢谢了
@兔兔涂涂凸: 我给你看看我写的代码,这是获取连接电脑的硬盘信息:
ConnectionOptions co = new ConnectionOptions();
co.Username = username;
co.Password = password;
co.EnablePrivileges = true;
System.Management.ManagementScope ms = new ManagementScope(@"\\" + address + @"\root\cimv2", co); // 新建一个到远程机器的连接scope.Connect(); // 进行连接
ms.Connect(); // 进行连接
SelectQuery query = new SelectQuery("Select * From Win32_LogicalDisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, query);
string str = "";
//foreach (ManagementBaseObject disk in searcher.Get())
foreach (ManagementObject disk in searcher.Get())
{
Int64 size= Convert.ToInt64(disk["Size"]);
Int64 freesize = Convert.ToInt64(disk["FreeSpace"]);
string strTotalSize = GetSize(size);
string strFreeSize = GetSize(freesize);
str += "\r\n" + disk["Name"] + " " + disk["DriveType"] + " " + strFreeSize+"/" + strTotalSize;
}
label1.Text = str;
@jqw2009: 你那个address是电脑的ip地址么,还有GetSize方法是?
@兔兔涂涂凸: 仅供参考,address是ip,getsize是个反法,取到的值是字节,所以转成相应的 KB,M,G等等
@jqw2009: getsize方法能看下么。我试试你的在我电脑上行不行
@兔兔涂涂凸: 不用这个方法也行,只是转一下,你直接输出就好了啊 ,只是单位是B
@jqw2009: 还是 ms.Connect();走到连接这一步的时候,报那个RPC服务器不可用这个错
@兔兔涂涂凸: 好吧,应该是你电脑配置的问题,哪里服务没开吧,你在百度找找原因吧
@jqw2009: 嗯嗯,谢谢你了
@jqw2009: 麻烦问下,用户凭据不能用于本地连接是怎么回事?
@兔兔涂涂凸: 不清楚,我也是一知半解,能说的都告诉你了