【发布时间】:2026-02-15 01:15:01
【问题描述】:
我有一组子目录,每个子目录都包含一个带有 .pub 扩展名的文件,其中包含一个 SSH 密钥。然后我需要将此密钥导入 AD(这部分是通过 CSV 工作的)。
现在我有这个工作脚本,我将 SSH 密钥从 CSV 文件导入到 AD 对象,这工作正常。
Import-Module activedirectory
Import-Csv "C:\Script\SSH Keys\users.csv" | ForEach-Object {
Get-ADUser -Identity $_.SamAccountName
Set-ADUser $_.SamAccountName -add @{'altsecurityidentities'=$_.altSecurityIdentities}
}
CSV 很简单,如下所示:
| SamAccountName | altSecurityIdentities |
|---|---|
| User1 | ssh-123123123123XYZ |
| User2 | ssh-234234234234XYZ |
SamAccountName altSecurityIdentities 用户1 ssh-123123123123XYZ 用户2 ssh-234234234234XYZ
现在我的想法是进一步自动化,并遍历这些子文件夹并使用 Get-Content 读取内容,然后将这些密钥写入 CSV 文件。
到目前为止,我可以从一个文件中获取内容并将其写入 CSV
Get-Content -Path "D:\Script\SSH Keys\1\*.pub"| Out-File -FilePath "D:\Script\SSH Keys\users.txt" -Append
我有 2 个问题 - 任何指针都会有所帮助
-
如何遍历子目录(创建一个 foreach)以获取所述子目录中所有文件的内容?
-
如何写入 csv 中的特定部分?假设文件所在的子文件夹与上表中的 SamAccountName 同名。有什么办法可以匹配这些吗?
C:\SSH\User1\key.pub
C:\SSH\User2\key.pub
干杯
【问题讨论】:
标签: powershell loops csv