Windows
如何在 Powershell 中列出網路上的所有電腦作業系統
我正在尋找一個腳本來顯示我的域中的所有機器、主機名和作業系統版本。我找到了一些腳本,但我找到的腳本都沒有。
這是我發現的一個例子:
$strCategory = "computer" $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.Filter = ("(objectCategory=$strCategory)") $colProplist = "name" foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)} $colResults = $objSearcher.FindAll() foreach ($objResult in $colResults) {$objComputer = $objResult.Properties; $objComputer.name}
有人可以告訴我如何為 powershell 創建一個腳本來列出主機名和作業系統版本嗎?
Get-ADComputer -Filter * -Property * | Format-Table Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion -Wrap –Auto
Get-ADComputer
預設情況下也返回電腦名稱。
不確定這是否正是您正在尋找的,但它對我有用。您需要知道傳遞給函式的電腦名稱。它會在返回字元串中為您提供作業系統。我相信它可以被修改以適應其他需求。
function global:Get-OSInfo { param([string]$computer) [string] $strReturn = '' if([string]::IsNullOrEmpty($computer) -eq $false) { # Create the connection to Active directory. $dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() $root = $dom.GetDirectoryEntry() $search = [System.DirectoryServices.DirectorySearcher]$root # Search the directory for our user. $search.Filter = "(&(objectclass=Computer)(sAMAccountName=$computer$))" $result = $search.FindOne() if ($result -ne $null) { $system = $result.GetDirectoryEntry() $strReturn = $system.Properties["operatingSystem"] } } return $strReturn }