如何解决PowerShell |使用“ Get-ADComputer”从服务器获取存储
我的脚本有问题,请帮忙:3
该脚本应该从我们的服务器OU中获取所有服务器主机名。而不是获得服务器的“已用”空间和可用空间,但是当我尝试使用“ Get-AdComputer” cmdlet获取服务器列表时,会出现错误。
$servers = Get-ADComputer -Filter * -SearchBase "OU=SomeOU,DC=SomeDomain,DC=SomeDomain" | Select-Object Name
$allDisks = foreach ($server in $servers)
{
Get-WmiObject Win32_LogicalDisk -ComputerName $server -Filter DriveType=3 |
Select-Object @{'Name'='ComputerName'; 'Expression'={$server}},DeviceID,@{'Name'='Size'; 'Expression'={[math]::truncate($_.size / 1GB)}},@{'Name'='Freespace'; 'Expression'={[math]::truncate($_.freespace / 1GB)}}
}
$allDisks |Export-Csv C:\Servers.csv -NoTypeInformation
运行此命令时,我得到:
Get-WmiObject : Der RPC-Server ist nicht verfügbar.
In Zeile:5 Zeichen:5
+ Get-WmiObject Win32_LogicalDisk -ComputerName $server -Filter Dri ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject],COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
我还应该补充一点,如果我只从第一行开始运行,就会得到我们所有服务器的干净列表。
解决方法
由于该错误指出RPC服务器不可用于您要查询的服务器之一。根据{{3}}可能有多种原因:
远程计算机已被防火墙阻止。
解决方案:打开“组策略对象编辑器”管理单元(gpedit.msc),以编辑用于管理组织中Windows防火墙设置的组策略对象(GPO)。打开计算机配置,打开管理模板,打开网络,打开网络连接,打开Windows防火墙,然后打开域配置文件或标准配置文件,具体取决于您要配置的配置文件。启用以下例外:“允许远程管理例外”和“允许文件和打印机共享例外”。
主机名或IP地址错误或远程计算机已关闭。
解决方案:验证正确的主机名或IP地址。 “ TCP / IP NetBIOS Helper”服务未运行。 解决方案:确认“ TCP / IP NetBIOS Helper”正在运行,并设置为重启后自动启动。
“远程过程调用(RPC)”服务未在远程计算机上运行。
解决方案:验证“远程过程调用(RPC)”正在运行,并设置为重新启动后自动启动。
远程计算机上没有运行“ Windows Management Instrumentation”服务。
解决方案:验证“ Windows Management Instrumentation”正在运行,并设置为重启后自动启动
所以,我认为那里没有任何代码问题。请检查网络防火墙和服务器端。另外,应用try/catch
块并在循环中捕获确切的服务器名称,以查看引起问题的服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。