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 #プログラミング初心者 #プログラミング学習
この記事が気に入ったらサポートをしてみませんか?