Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Powershell-使用For Each将变量追加到数组_Arrays_List_Powershell - Fatal编程技术网

Arrays Powershell-使用For Each将变量追加到数组

Arrays Powershell-使用For Each将变量追加到数组,arrays,list,powershell,Arrays,List,Powershell,我当前正在尝试向多个注册表文件夹添加注册表项。然而,由于您不能通过组策略对注册表项进行通配符,我正在使用ps1脚本添加这些项。基本上,我想在此位置添加一个十六进制值为00的REG_二进制键:HKCU:\SOFTWARE\Microsoft\Office\15.0\Outlook\Profiles\Outlook Profiles\name of Outlook profile\C02EBC553D9CD11975200AA004AE40E 我有使用一行PS在一个配置文件上添加此键的代码。这是:

我当前正在尝试向多个注册表文件夹添加注册表项。然而,由于您不能通过组策略对注册表项进行通配符,我正在使用ps1脚本添加这些项。基本上,我想在此位置添加一个十六进制值为00的REG_二进制键:HKCU:\SOFTWARE\Microsoft\Office\15.0\Outlook\Profiles\Outlook Profiles\name of Outlook profile\C02EBC553D9CD11975200AA004AE40E

我有使用一行PS在一个配置文件上添加此键的代码。这是:

$path = "HKCU:\SOFTWARE\Microsoft\Office\15.0\Outlook\Profiles\Name of Outlook Profile\c02ebc5353d9cd11975200aa004ae40e"

New-ItemProperty -Path $path -Name 00030354 -PropertyType Binary -Value ([byte[]](0x00,0x00,0x00,0x00)) -Force
这是完美的工作方式,但是我需要在profiles目录中的所有文件夹上执行此操作。 我可以通过以下命令找到此字符串中的所有配置文件名称:

$Profilelist = get-childItem "HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles\*" | select name
如何将值“\c02ebc5353d9cd11975200aa004ae40e”添加到此数组/列表的每一行

添加此命令后,我将能够使用for-each命令添加密钥

如果有人知道更好的方法,我愿意接受其他想法


提前感谢!:)

IMO最简单的方法是使用计算属性:

$Profilelist = get-childItem "HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles\*" | select @{n='extendedname'; e={'{0}\c02ebc5353d9cd11975200aa004ae40e' -f $_.Name.Replace('HKEY_CURRENT_USER\', 'HKCU:\'}}

IMO最简单的方法是使用计算属性:

$Profilelist = get-childItem "HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles\*" | select @{n='extendedname'; e={'{0}\c02ebc5353d9cd11975200aa004ae40e' -f $_.Name.Replace('HKEY_CURRENT_USER\', 'HKCU:\'}}
尝试:

尝试:


但是,这将非常有效,因为get-child项将开始从HKCU:\更改为HKEY\U CURRENT\U USER\I获取错误消息New-ItemProperty:找不到路径“C:\WINDOWS\system32\HKEY\U CURRENT\U USER\Software…”。。。等等。关于如何更改字符串的开头以使此命令生效,有什么想法吗?Thanks@user3290171只需替换它。问题是您需要先创建密钥。立即更新这将非常有效,但是,因为get-child项将开始从HKCU:\更改为HKEY\u CURRENT\u USER\I获取错误消息New-ItemProperty:找不到路径“C:\WINDOWS\system32\HKEY\u CURRENT\u USER\Software…”。。。等等。关于如何更改字符串的开头以使此命令生效,有什么想法吗?Thanks@user3290171只需替换它。问题是您需要先创建密钥。立即更新这将非常有效,但是,因为get-child项将开始从HKCU:\更改为HKEY\u CURRENT\u USER\I获取错误消息New-ItemProperty:找不到路径“C:\WINDOWS\system32\HKEY\u CURRENT\u USER\Software…”。。。等等。关于如何更改字符串的开头以使此命令生效,有什么想法吗?感谢这将非常有效,但是,因为get-child项将开始从HKCU:\更改为HKEY\U CURRENT\U USER\I获取错误消息New-ItemProperty:找不到路径“C:\WINDOWS\system32\HKEY\U CURRENT\U USER\Software…”。。。等等。关于如何更改字符串的开头以使此命令生效,有什么想法吗?谢谢