簡體   English   中英

Powershell-使用For Each將變量附加到陣列

[英]Powershell - Append Variable to an Array using For Each

我目前正在嘗試將注冊表項添加到多個注冊表文件夾中。 但是,因為您不能通過組策略對注冊表項進行通配,所以我正在使用ps1腳本添加這些項。 本質上,我想在此位置添加一個十六進制值為00 00 00 00的REG_Binary密鑰:HKCU:\\ SOFTWARE \\ Microsoft \\ Office \\ 15.0 \\ Outlook \\ Profiles \\ Outlook配置文件的名稱\\ c02ebc5353d9cd11975200aa004ae40e。

我有使用一行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

這完美地工作,但是我需要在配置文件目錄中的所有文件夾上執行此操作。 我可以通過以下命令找到此字符串中的所有配置文件名稱:

$Profilelist = get-childItem "HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles\*" | select name

如何將值“ \\ c02ebc5353d9cd11975200aa004ae40e”添加到此數組/列表的每一行?

添加后,我將能夠對每個命令使用a來添加密鑰。

如果有人知道更好的方法,我歡迎其他想法!

提前致謝! :)

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-ChildItem -Path "HKCU:\SOFTWARE\Microsoft\Office\15.0\Outlook\Profiles" | ForEach-Object {
    $path = Join-Path $_.Name "c02ebc5353d9cd11975200aa004ae40e"
    #Create key if missing
    if(-not (Test-Path $path)) { New-Item -ItemType RegistryKey -Path $path }
    New-ItemProperty -Path $path -Name 00030354 -PropertyType Binary -Value ([byte[]](0x00,0x00,0x00,0x00)) -Force
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM