是否可以使用Powershell访问特定的用户环境变量?
在服务器计算机上,我们有50个用户。
我想知道某个特定用户(例如user1
是否正在为环境变量PYTH_HOME_LOG
使用不同的值。
此系统变量指向C:\PYTHON\LOG
,我想检查哪个用户通过配置用户环境变量PYTH_HOME_LOG
来更改此位置。
答案 0 :(得分:1)
如果您是本地Administrators组的成员,则只需遍历所有用户注册表配置单元并在其中搜索Environment
变量:
$AllUserHives = Get-ChildItem Registry::HKEY_USERS\ |Where Name -like "HKEY_USERS\S-1-5-21*[0-9]"
foreach($UserHive in $AllUserHives){
if(Get-ItemProperty -Path "$UserHive\Environment" -Name PYTH_HOME_LOG -EA SilentlyContinue){
# User is overriding %PYTH_HOME_LOG%
}
}
您可以通过搜索Volatile Environment
env变量来从USERNAME
注册表子树中获取相应的用户名,也可以使用IdentityReference.Translate()
:
$SID = [System.Security.Principal.SecurityIdentifier]"S-1-5-21-436246-18267386-368368356-356777"
$Username = $SID.Translate([System.Security.Principal.NTAccount]).Value
或者,在这种情况下:
$SID = ($UserHive -split '\\')[-1] -as [System.Security.Principal.SecurityIdentifier]
$Username = $SID.Translate([System.Security.Principal.NTAccount]).Value