問題が発生しました。PowerShell を使用してユーザー環境変数を設定しようとしています。
[Environment]::SetEnvironmentVariable($key,$value,'User')
しかし、レジストリを調べると、新しいエントリのタイプがREG_SZ
.
タイプにしたいと思いREG_EXPAND_SZ
ます。
誰かがこの問題で私を助けることができますか?
ありがとう
問題が発生しました。PowerShell を使用してユーザー環境変数を設定しようとしています。
[Environment]::SetEnvironmentVariable($key,$value,'User')
しかし、レジストリを調べると、新しいエントリのタイプがREG_SZ
.
タイプにしたいと思いREG_EXPAND_SZ
ます。
誰かがこの問題で私を助けることができますか?
ありがとう
レジストリメソッドにはMicrosoft.Win32名前空間を使用します。データ型を設定するには、RegistryValueKind列挙を使用します。そのようです、
[Microsoft.Win32.Registry]::SetValue("HKEY_CURRENT_USER\Environment","MyKey","1",[Microsoft.Win32.RegistryValueKind]::ExpandString)
ユーザー変数はHKEY_CURRENT_USER\Environmentにあります
システム変数は、HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager\Environmentにあります。
Set-ItemProperty HKCU:\Environment $key $value -Type ExpandString
またはゴルフ
sp hkcu:environment $key $value -t e
Set-ItemProperty は、一部のシステムでレジストリ値を DWord ではなく文字列として設定します。なぜですか?