PowerShellでドメイン名を取得

PowerShell

方法1

$str = (Get-ChildItem -Path env: | Where-Object {$_.NAME -eq "USERDNSDOMAIN"}).value
$str = $str.ToLower()
Write-Host($str)

解説

1行目で大文字で取得してから2行目で小文字に変更

方法2 「Win32_ComputerSystem」を使用

$CompInfo = Get-WmiObject -NameSpace root\CIMV2 -Class Win32_ComputerSystem

switch($CompInfo.PartOfDomain){
  $true {
    $DomainType = "ドメイン"
    $DomainName = $CompInfo.Domain
  }
  $false {
    $DomainType = "ワークグループ"
    $DomainName = $CompInfo.Workgroup
  }
  default {
    $DomainType = "不明"
    $DomainName = "不明"
  }
}

echo $DomainType" : "$DomainName
 (Get-WMIObject Win32_ComputerSystem).Domain

解説

取得する情報
   ・ドメインまたはワークグループ
   ・ドメインまたはワークグループ名

(Get-WMIObject Win32_ComputerSystem).PartOfDomain

これがTrueを返せばドメインのメンバ、Falseを返せばワークグループにいるということになります。

方法3

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersにあるレジストリ値「Domain」が空白ならワークグループ、文字が入っていたらドメインの方法もあり。

Get-ItemPropertyValue "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" "Domain"

コメント