私は作成したレジストリ値に一般ユーザーの書き込みアクセスを許可しようとしています。レジストリ値のアクセス許可のコマンドラインまたはNSISを変更します
親キーへの書き込みアクセス権を持つことはできません。 regedit
を通じて
、それは簡単です: 1. [値 2. [権限の編集(適宜変更) 3. OK
私は、コマンドラインまたはNSISを経由して同じことを行うのに苦労していますが。
- コマンド
regini
には、key
権限を変更するための非常に便利な方法があります。これがvalue
の権限を変更した場合、私は簡単にインストーラにスクリプトを書き込むことができました。 - NSISプラグイン
AccessControl
には、key
権限を変更するには非常に良い方法がありますが、value
権限の変更の証拠はありません。
この場合、key
はHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
です。これは私の許可を変更しません。
は、私が作成した値のアクセス許可をどのように変更できますか? regedit
が許可しているのと同じように、コマンドラインまたはNSISを通して静かにこれを行うにはどうすればよいですか?
値は何かのようになります:(NSISがこれを可能にする)
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"My Value"="C:\Please\Let\Me\Change\Permissions\Sadface.exe"
注、これは、Mac、LinuxとWindows上で動作するスクリプトをビルドスクリプトソフトウェアインストーラのためです。特別なdlls
またはWindowsの実行可能ファイルをバンドルするための推奨事項は、インストール時に簡単にバンドルされ、連鎖される限り、OKです。フットプリントが小さくなければ、またDLLを簡単にバンドルしてLGPL 2.1プロジェクトに組み込むことができない限り、Windows SDKなどのツールを含むソリューションは受け入れられません。例えばユーザーをインストールするにはこれを実行する必要があります。そのため、ソリューションは合理的に移植可能/配布可能である必要があります。
権限ダイアログのタイトルバーを見ると、値ではなく実行キーの権限が変更されていることがわかります。値にはセキュリティがありません。 'HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run'キーを使用してください。 –
ありがとうございます。この特定の問題を解決するためのより創造的なアプローチを調査する必要があります、ありがとうございます。 – tresf
すべてのユーザーのスタートアップフォルダを使用します。これはファイルなので、 'icacls'でパーミッションを設定することができます。それを見つけるには、 '%ProgramData%\ Microsoft \ Windows \ Start Menu \ Programs \ Startup'を使用してください。 –