![](/img/trans.png)
[英]Import-GPO by using folders named after its DisplayName - Powershell
[英]Populate paramters of Import-Gpo using CSV
CSV:
BackupGpoName,BackupId,GPOName,path "GPO1",11111111-2222-3333-444444444444,"GPO1","C:\BackupGPO" "GPO2",78888888-1222-4555-8777-123456789123,"GPO1","C:\BackupGPO"
脚本:
$csv = Import-Csv -Path "C:\gpotest.csv" -Header BackupGpoName, BackupId, gponame, Path
$csv | ForEach-Object {
$params = @{
BackupGpoName = $_.BackupGpoName
BackupId = $_.backupid
TargetName = $_.gponame
Path = $_.path
}
$params.$type = $true
Import-Gpo @params -CreateIfNeeded
}
但是我得到了错误:
Foreach-Object : Cannot bind parameter 'BackupId'. Cannot convert value "BackupId" to type "System.Guid". Error: "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)." At line:2 char:10 + $csv | Foreach-Object { + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [ForEach-Object], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ForEachObjectCommand
Bill_Stewart是正确的,如果您的csv包含标题,则不应指定-Header
。 使用示例csv和简单的打印语句:
$csv = import-csv -Path "C:\temp\test.csv" -Header BackupGpoName, BackupId,
gponame, Path
$csv | Foreach-Object {
$_.BackupGpoName
$_.backupid
$_.gponame
$_.path
$params = @{
BackupGpoName=$_.BackupGpoName
BackupId=$_.backupid
TargetName=$_.gponame
Path=$_.path
}
$params.$type = $true
#import-gpo @params -CreateIfNeeded
}
由于代码尝试将“ BackupId”强制转换为GUID而导致错误:
BackupGpoName BackupId GPOName path GPO1 11111111-2222-3333-444444444444 GPO1 C:\\BackupGPO GPO2 78888888-1222-4555-8777-123456789123 GPO1 C:\\BackupGPO
由于您的csv具有标头,因此您的代码应为
$csv = import-csv -Path "C:\temp\test.csv"
$csv | Foreach-Object {
$_.BackupGpoName
$_.backupid
$_.gponame
$_.path
$params = @{
BackupGpoName=$_.BackupGpoName
BackupId=$_.backupid
TargetName=$_.gponame
Path=$_.path
}
$params.$type = $true
#import-gpo @params -CreateIfNeeded
}
和预期的输出:
GPO1 11111111-2222-3333-444444444444 GPO1 C:\\BackupGPO GPO2 78888888-1222-4555-8777-123456789123 GPO1 C:\\BackupGPO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.