查找域内所有的Windows Server 2012 R2的服务器,并区分出哪些是物理机,那些是虚拟机
2021-05-14 05:27
标签:powershell 基本命令 通过使用Get-Adcomputer和Get-Wmiobject 组合来实现。 思路是这样的,先看一台服务器的属性值有什么可用利用的。 [12r2-dc]: PS C:\> Get-ADComputer -Identity 12r2-dc -Properties * AccountExpirationDate : accountExpires : 9223372036854775807 AccountLockoutTime : AccountNotDelegated : False AllowReversiblePasswordEncryption : False AuthenticationPolicy : {} AuthenticationPolicySilo : {} BadLogonCount : 0 badPasswordTime : 0 badPwdCount : 0 CannotChangePassword : False CanonicalName : abc.com/Domain Controllers/12R2-DC Certificates : {System.Security.Cryptography.X509Certificates.X509Certificate} CN : 12R2-DC codePage : 0 CompoundIdentitySupported : {False} countryCode : 0 Created : 10/9/2016 10:29:00 PM createTimeStamp : 10/9/2016 10:29:00 PM Deleted : Description : DisplayName : DistinguishedName : CN=12R2-DC,OU=Domain Controllers,DC=abc,DC=com DNSHostName : 12R2-DC.abc.com DoesNotRequirePreAuth : False dSCorePropagationData : {10/9/2016 10:29:03 PM, 12/31/1600 4:00:01 PM} Enabled : True HomedirRequired : False HomePage : instanceType : 4 IPv4Address : 169.254.15.118 IPv6Address : isCriticalSystemObject : True isDeleted : KerberosEncryptionType : {RC4, AES128, AES256} LastBadPasswordAttempt : LastKnownParent : lastLogoff : 0 lastLogon : 131498622097210925 LastLogonDate : 9/10/2017 11:04:43 PM lastLogonTimestamp : 131495834837332604 localPolicyFlags : 0 Location : LockedOut : False logonCount : 1860 ManagedBy : MemberOf : {CN=Pre-Windows 2000 Compatible Access,CN=Builtin,DC=abc,DC=com, CN=Cert Publishers,CN=Users,DC=abc,DC=com} MNSLogonAccount : False Modified : 9/12/2017 7:23:19 PM modifyTimeStamp : 9/12/2017 7:23:19 PM msDFSR-ComputerReferenceBL : {CN=12R2-DC,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=abc,DC=com} msDS-GenerationId : {45, 30, 43, 189...} msDS-SupportedEncryptionTypes : 28 msDS-User-Account-Control-Computed : 0 Name : 12R2-DC nTSecurityDescriptor : System.DirectoryServices.ActiveDirectorySecurity ObjectCategory : CN=Computer,CN=Schema,CN=Configuration,DC=abc,DC=com ObjectClass : computer ObjectGUID : bf0a2518-aa9c-4cb9-ab8e-09be04b3e27b objectSid : S-1-5-21-2770570338-4234891044-2636713416-1001 OperatingSystem : Windows Server 2012 R2 Standard OperatingSystemHotfix : OperatingSystemServicePack : OperatingSystemVersion : 6.3 (9600) PasswordExpired : False PasswordLastSet : 8/20/2017 4:58:11 PM PasswordNeverExpires : False PasswordNotRequired : False PrimaryGroup : CN=Domain 看到这里就知道利用哪个属性值了,过滤一下,用一个通配符表达式或是任何一个能把这个值抓住的条件就可以,再用一个选择语句把名字选择出来。 $computer = Get-ADComputer -Filter {operatingsystem -like "*20*"} | select -ExpandProperty name 然后运行了一下Get-Wmiobject,结果如下: [12r2-dc]: PS C:\> Get-WmiObject -Class win32_computersystem Domain : abc.com Manufacturer : Microsoft Corporation Model : Virtual Machine Name : 12R2-DC PrimaryOwnerName : Windows User TotalPhysicalMemory : 2094039040 然后想到,如果把变量$computer传递进来,再把两个属性暴露出来,就会产生一个结果集,当然,你愿意输出到文件自己再用管道符输出就是了。 Invoke-Command -ComputerName $computer {Get-WmiObject win32_computersystem} -ErrorAction SilentlyContinue | select name,model | sort model 结果就是: Name Model ---- ----- 12R2-SCCM Virtual Machine 本文出自 “沙丁鱼” 博客,请务必保留此出处http://shadingyu.blog.51cto.com/2617687/1965482 查找域内所有的Windows Server 2012 R2的服务器,并区分出哪些是物理机,那些是虚拟机 标签:powershell 基本命令 原文地址:http://shadingyu.blog.51cto.com/2617687/1965482
上一篇:rewind()函数
文章标题:查找域内所有的Windows Server 2012 R2的服务器,并区分出哪些是物理机,那些是虚拟机
文章链接:http://soscw.com/index.php/essay/85466.html