我有一位客户要求我找到他所有的 Dhcp 和 DNS 服务器以及一些附加信息,例如 DC 服务器和操作系统
所以我决定尝试提高我的 powershell 技能,但我对此还很陌生,所以我写了这个脚本,但我想仍然缺少一些东西,因为它不起作用
编辑:我设法找到一种方法来获取我想要的信息,即操作系统,但它让我找回公司中的所有服务器
$servers = get-dhcpserverindc
foreach($server in $Servers){
get-adcomputer -filter {Operatinsytem -like "*windows server*"} -properties
Operatingsystem | sort name | format-table name,Operatinsytem
}
这并不太棘手。首先,您连接到安装了 RSAT 工具的计算机(例如管理服务器、跳线盒或域控制器),并获取所有 DHCP 服务器的列表。
$DHCPServers = Get-DhcpServerInDC
然后,我们使用 PowerShell 的内置循环逻辑来单步执行每个服务器,并检查您需要的操作系统信息。
ForEach ($DHCPServer in $DHCPServers){
$OSInfo = Get-CIMInstance -ComputerName $DHCPServer.DnsName -ClassName Win32_OperatingSystem
}
最后,我们将修改上面的内容以返回您要查找的信息,即 IP 地址、名称和操作系统版本
ForEach ($DHCPServer in $DHCPServers){
$OSInfo = Get-CIMInstance -ComputerName $DHCPServer.DnsName -ClassName Win32_OperatingSystem
[pscustomobject]@{
ServerName = $DHCPServer.DnsName;
IPAddress=$DHCPServer.IpAddress;
OS=$OSInfo.Caption
}
}
ServerName IPAddress OS
---------- --------- --
dc2016 192.168.10.1 Microsoft Windows Server 2016 Standard
从那里,您可以将其存储在变量中,使其成为电子表格,执行您需要执行的任何操作。
希望这可以帮助。
如果这不起作用,请确保您首先已启用 PowerShell 远程处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)