2016-09-13 57 views
0

私は作成したレジストリ値に一般ユーザーの書き込みアクセスを許可しようとしています。レジストリ値のアクセス許可のコマンドラインまたはNSISを変更します

親キーへの書き込みアクセス権を持つことはできません。 regeditを通じて

、それは簡単です: 1. [値 2. [権限の編集(適宜変更) 3. OK

私は、コマンドラインまたはNSISを経由して同じことを行うのに苦労していますが。

  • コマンドreginiには、key権限を変更するための非常に便利な方法があります。これがvalueの権限を変更した場合、私は簡単にインストーラにスクリプトを書き込むことができました。
  • NSISプラグインAccessControlには、key権限を変更するには非常に良い方法がありますが、value権限の変更の証拠はありません。

この場合、keyHKLM\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などのツールを含むソリューションは受け入れられません。例えばユーザーをインストールするにはこれを実行する必要があります。そのため、ソリューションは合理的に移植可能/配布可能である必要があります。

+3

権限ダイアログのタイトルバーを見ると、値ではなく実行キーの権限が変更されていることがわかります。値にはセキュリティがありません。 'HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run'キーを使用してください。 –

+0

ありがとうございます。この特定の問題を解決するためのより創造的なアプローチを調査する必要があります、ありがとうございます。 – tresf

+1

すべてのユーザーのスタートアップフォルダを使用します。これはファイルなので、 'icacls'でパーミッションを設定することができます。それを見つけるには、 '%ProgramData%\ Microsoft \ Windows \ Start Menu \ Programs \ Startup'を使用してください。 –

答えて

0

@Noodlesが上記のコメントに言及しているように、value権限を変更することはできないため、解決策はありません。レジストリエディタは、実際にはkey権限を提供しています。この権限は、ウィンドウタイトルを確認することで確認でき、この特定のソリューションでは望ましくありません。

関連する問題