見出し画像

ActiveDirectoryに登録済みユーザーかどうか調べたい【PowerShell】

新入社員が入った時
ローマ字表示にしてそれをユーザーアカウントとして登録しています。

例えば
山田太郎→taro yamada
の場合

ユーザー名:t.yamada
PC名:t.yamada-PC

のように決めて、キッティングスクリプトで一気に設定を行うのですが、共用PCだけしか使わないからユーザー登録のみの社員が居たりして、後で名前がバッティングしていることに気が付くことがあり、直すのがメンドクサイときがあります。

そこで事前にチェックしたいのでコードを書きました。

まず必要なモジュールをインポートする必要があります。ActiveDirectoryをコントロールするモジュールです。次のコマンドを実行します。これは一回だけです。

Import-Module ActiveDirectory


つぎがユーザーIDを調べるコード


$UserName = read-host "探したいユーザーID"
$CheckUser = $(try {Get-ADUser $UserName} catch {$null})
If ($CheckUser -ne $Null) {
	write-host "いますよ" $CheckUser.Name
	if($CheckUser.Enabled -eq $False){
		write-host "ただし無効のアカウントです"
	}
} Else {
	write-host "いませんよ"
}


パソコン名を調べるコード

$PCName = read-host "探したいPC名"
$CheckPC = $(try {Get-ADComputer $PCName} catch {$null})
If ($CheckPC -ne $Null) {
	write-host "いますよ" 
	if($CheckPC.Enabled -eq $False){
		write-host "ただし無効のアカウントです"
	}
} Else {
	write-host "いませんよ"
}


両方一度に調べる


$IDName = read-host "探したいID"
$CheckUser = $(try {Get-ADUser $IDName} catch {$null})
$CheckPC = $(try {Get-ADComputer $IDName} catch {$null})
If ($CheckUser -ne $Null) {
   write-host "ユーザーIDが登録されています" $CheckUser.Name
   if($CheckUser.Enabled -eq $False){
       write-host " ただし無効のアカウントです"
   }
} else {
   write-host "ユーザーIDにはありません"
}
If ($CheckPC -ne $Null) {
   write-host "PC名が登録されています" $CheckPC.Name
   if($CheckPC.Enabled -eq $False){
       write-host " ただし無効のアカウントです"
   }
} else {
   write-host "PC名にはありません"
}


#PowerShell #コマンドレット #ActiveDirectory #プログラミング初心者 #プログラミング学習


この記事が気に入ったらサポートをしてみませんか?