私はスクリプトブロックでスクリプトを開始しました:使用してスクリプトブロック内の変数と、ここで、文字列
[scriptblock]$HKCURegistrySettings = {
Set-RegistryKey -Key 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord -SID $UserProfile.SID
Set-RegistryKey -Key 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'updatereliabilitydata' -Value 1 -Type DWord -SID $UserProfile.SID
Set-RegistryKey -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce' -Name 'blabla' -Value 1 -Type DWord -SID $UserProfile.SID
}
だから、これはそれが見なければならないものです。
いいえ、変数が必要です。
$HKCURegistrySettings2 = {
@"
set-RegistryKey -Key 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord -SID $UserProfile.SID
Set-RegistryKey -Key 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'updatereliabilitydata' -Value 1 -Type DWord -SID $UserProfile.SID
Set-RegistryKey -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce' -Name `'$test`' -Value 1 -Type DWord -SID $UserProfile.SID
"@
}
だから私は$test
でblabla
を交換してください。私の最初の$HKCURegistrySettings
と私は今$HKCURegistrySettings3
は、彼らが同じでなければなりませんを比較することにより、
$HKCURegistrySettings -eq $HKCURegistrySettings3
だから今
$test="blabla"
$test3=&$HKCURegistrySettings2
$test3
[ScriptBlock]$HKCURegistrySettings3 = [ScriptBlock]::Create($test3)
。しかし、私は偽を得る。 1.なぜ彼らは異なっていますか? 2.それらを同一にするにはどのようにすればよいですか? 3.変数はHere-stringsの作成後に定義されます。その他のオプション?
スクリプトブロックは、その後、最初の関数 を呼び出すために使用されて作成することです。結果は同じでなければなりませんだから、なぜこれがある
Invoke-HKCURegistrySettingsForAllUsers -RegistrySettings $HKCURegistrySettings
となりまし
Invoke-HKCURegistrySettingsForAllUsers -RegistrySettings $HKCURegistrySettings3
。
おかげで、