私は前にシステムにログオンしているユーザーのSIDを見つけようとしています。私たちのシステムには、管理者以外のユーザー(最初は#がないユーザー)と管理ユーザー(#が付いています)が分かれています。私は上記の最終$UserSID = ...
ラインで'$DomainUser'
を使用している場合、このスクリプトは動作しませんPowershellで変数を使用して検索する
$CurrentDomainUser = wmic computersystem get username
$Separator = "\"
$CurrentDomainUserSplit = $CurrentDomainUser.split($Separator)
$DomainUser= $CurrentDomainUserSplit[3]
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_Users
$UserSID = ls 'hklm:software/microsoft/windows nt/currentversion/profilelist' | ? {
$_.getvalue('profileimagepath') -match '$DomainUser' -and
$_.getvalue('profileimagepath') -notmatch '#'
} | % pschildname
:私のPowerShellスクリプトは、これまでのところ、このです。それは私は実際の値を入れている場合は動作します。
これはシンプルなPowerShell構文の問題だと思います。
こんにちは、 '$ CurrentDomainUserSplit [3]'では、なぜ '3'ですか?そして、あなたは最終的に何を達成しようとしていますか? – sodawillow
Get-WmiObject/Get-CimInstanceを使用してWin32_ComputerSystemを照会します。 wmicを使用してそれを行うと、解析が少し愚かです。 –
@sodawillow:CurrentDomainUserSplit [3]の出力は、 "wmic computersystem get username"コマンドのユーザ名部分です(ドメイン名、バックスラッシュなどはありません)。 –