web-dev-qa-db-ja.com

regeditが無効になっているログオンスクリプトで.REGファイルを実行しますか?

ログオフ時にレジストリにエントリを追加するには、.REGを実行する必要がありますが、GP環境ではregeditが無効になっています。おそらく、regeditをオンにし、スクリプトを実行してから、再びオフにすることでこれを達成できますが、それよりも洗練されたソリューションがあることを望んでいます。

2
Doug Chase

試しましたか REG.EXE

REG.EXEを使用すると、コマンドラインから多くのレジストリ操作を実行できます。これは、RegEditを開かずにすばやく変更を加えたい場合に役立ちます。また、ログオンスクリプトやバッチファイルにレジストリ操作を埋め込むこともできます。

2
splattne

WMIスクリプトを使用して、cscript.exeを使用して実行してみませんか。

' taken from
' http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/registry/


' computer name we want to modify ("." for local, "pcname" for remote pc, no "\\" needed)
strComputer = "."


' leave these constants
const HKEY_LOCAL_MACHINE = &H80000002
Set StdOut = WScript.StdOut

' connect to the registry on the specified computer
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
strComputer & "\root\default:StdRegProv")

StdOut.WriteLine "Changing Registry on " & strComputer


' registry key we want to modify 
strKeyPath = "SOFTWARE\MyCompany\"


' create a new key.
' strKeyPath = "SOFTWARE\MyCompany\New registry folder"
' oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath

' write a string value
strValueName = "String Value Name"
strValue = "string value"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

' write a integer value
strValueName = "DWORD Value Name"
dwValue = 82
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
3
gbjbaanb

MS KB831787によるとWindowsでのレジストリ編集ツールへのアクセスの防止ポリシーの変更XPおよびWindowsServer 20GPOテンプレートを更新すると、Windows XP/2003でも、サイレントモードでregeditを実行できます

KB831787から、

Microsoft Windows XPおよびMicrosoftWindows Server 2003がレジストリ編集ツールへのアクセスの防止ポリシーを使用する方法を変更するための新機能が利用可能です。この機能を使用すると、レジストリ設定を構成して、次のことができるようになります。次の構成のいずれかを使用できます。

  • レジストリエディタは、インタラクティブモードまたはサイレントモードのいずれかで起動できます。
  • レジストリエディタはサイレントモードでのみ起動できます(regedit/s)。これは、Windows2000およびWindowsNT 4.0で、レジストリ編集ツールへのアクセスを禁止するポリシーが適用されている場合のデフォルトの動作です。
  • レジストリエディタをまったく起動できません。これは、レジストリ編集ツールへのアクセスの防止ポリシーが適用されている場合のWindows XP)のデフォルトの動作です。
2
nray