サイトでこのコードを見つけました: More userAccountControl Flag Fun (Convert-ToUACFlag.ps1) - http://bsonposh.com/archives/288、アクティブ ディレクトリのユーザー向け。と、ちょっと分かった気がしたので、こちらの記事を参考に逆向きの関数を作ってみたのですが、カウンターとしては機能しそうです|(パイプ) -> ? (if) % は (非常に) 明確ではありません。それが何をするか (モジュラス演算子ではないと思います。そうでなければ、配管を誤解しています)
%= モジュラス演算子による代入
echo( 1..($flags.length) | ? {$value -band [math]::Pow(2,$_)} | %{ $flags[$_] });
これは元の機能であり、正常に機能します
function checkUserControl
{
param
([int]$value)
$flags = @("","ACCOUNTDISABLE","", "HOMEDIR_REQUIRED",
"LOCKOUT", "PASSWD_NOTREQD","PASSWD_CANT_CHANGE", "ENCRYPTED_TEXT_PWD_ALLOWED",
"TEMP_DUPLICATE_ACCOUNT", "NORMAL_ACCOUNT", "","INTERDOMAIN_TRUST_ACCOUNT", "WORKSTATION_TRUST_ACCOUNT",
"SERVER_TRUST_ACCOUNT", "", "", "DONT_EXPIRE_PASSWORD", "MNS_LOGON_ACCOUNT", "SMARTCARD_REQUIRED",
"TRUSTED_FOR_DELEGATION", "NOT_DELEGATED","USE_DES_KEY_ONLY", "DONT_REQ_PREAUTH",
"PASSWORD_EXPIRED", "TRUSTED_TO_AUTH_FOR_DELEGATION")
echo( 1..($flags.length) | ? {$value -band [math]::Pow(2,$_)} | %{ $flags[$_] });
}
だから私自身の試み(数回の試み)
function checkUserControl2
{
param
([string]$value)
$flags = @("","ACCOUNTDISABLE","", "HOMEDIR_REQUIRED",
"LOCKOUT", "PASSWD_NOTREQD","PASSWD_CANT_CHANGE", "ENCRYPTED_TEXT_PWD_ALLOWED",
"TEMP_DUPLICATE_ACCOUNT", "NORMAL_ACCOUNT", "","INTERDOMAIN_TRUST_ACCOUNT", "WORKSTATION_TRUST_ACCOUNT",
"SERVER_TRUST_ACCOUNT", "", "", "DONT_EXPIRE_PASSWORD", "MNS_LOGON_ACCOUNT", "SMARTCARD_REQUIRED",
"TRUSTED_FOR_DELEGATION", "NOT_DELEGATED","USE_DES_KEY_ONLY", "DONT_REQ_PREAUTH",
"PASSWORD_EXPIRED", "TRUSTED_TO_AUTH_FOR_DELEGATION")
#echo( 1..($flags.length) | ? {$value -eq $flags[$_] } )} | %{$_});
#echo( 1..($flags.length) | ? {$value -match $flags[$_] } )} | %{$_});
#echo( 1..($flags.length) | ? {$value -ieq $flags[$_] } )} | %{$_});
#echo( 1..($flags.length) | ? {$value -imatch $flags[$_] } )} | %{ $_ });
#echo( 1..($flags.length) | ? {$value -ieq $flags[$_] } )} | {$_});
echo( 1..($flags.length) | ? {$value -imatch $flags[$_] } )} | { $_ });
}
echo "DONT_EXPIRE_PASSWORD";
checkUserControl2("DONT_EXPIRE_PASSWORD");
私が得るエラーan empty pipe is not allowed