【发布时间】:2019-04-25 02:48:30
【问题描述】:
我正在尝试使用 PowerShell 在 Google Chrome 中将我们公司的 URL 部署为“托管书签”。为了使用 IE 收藏夹完成同样的事情,我创建了一个 CSV 文件,其中包含分别包含名称和 URL 的 2 列。我导入该 CSV,然后我有一个 foreach 语句,它将遍历每一行并在用户的收藏夹中创建一个 .url 文件。为了最大程度地减少我的员工的工作量,我想为 Chrome 书签使用相同的 CSV 文件,因此我们只需维护一个文件。这样我们就不需要修改和重新部署脚本了,我们可以将 CSV 文件发布到网络共享上,以便根据需要进行更新。
Chrome 有一个注册表值,可以让我做我需要做的事情。以 3 个搜索引擎为例,我知道如何“硬编码”并使其工作。
$PolicyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies'
$GoogleKey = 'Google'
$ChromeKey = 'Chrome'
$ManagedBookmarks = '[ { "name": "Bing", "url": "http://www.bing.com" }, { "name": "Google", "url": "http://www.google.com" },{ "name": "Yahoo", "url": "http://www.yahoo.com" } ]'
Set-ItemProperty -Path "$($PolicyPath)\$($GoogleKey)\$($ChromeKey)" -Name 'ManagedBookmarks' -Value "$ManagedBookmarks" -Type String
有没有办法进行 foreach 并将结果连接到单个变量中?这将导致以下格式:
$ManagedBookmarks = "[ { "name:" "$($line.name)", "url": "$($line.url)"}, { "name:" "$($line+n.name)", "url": "$($line+n.url)"} ]"
【问题讨论】:
标签: powershell csv