Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
Powershell 使用CSV填充导入Gpo的参数_Powershell_Csv_Import_Group Policy - Fatal编程技术网

Powershell 使用CSV填充导入Gpo的参数

Powershell 使用CSV填充导入Gpo的参数,powershell,csv,import,group-policy,Powershell,Csv,Import,Group Policy,CSV: 但我得到了一个错误: $csv = Import-Csv -Path "C:\gpotest.csv" -Header BackupGpoName, BackupId, gponame, Path $csv | ForEach-Object { $params = @{ BackupGpoName = $_.BackupGpoName BackupId = $_.backupid TargetName = $_.g

CSV:

但我得到了一个错误:

$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对象:无法绑定参数“BackupId”。无法转换值 “BackupId”以键入“System.Guid”。错误:“Guid应包含32位数字 带4个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx-xxxxxxxxxxxx)。” 第2行字符:10 +$csv | Foreach对象{ + ~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidArgument:(:)[ForEach对象],参数BindingException +FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ForEachObjectCommand
Bill_Stewart是正确的,如果您的csv包含标题,则不应指定
-标题。使用示例csv和简单的打印语句:

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 由于代码试图将“BackupId”强制转换为GUID,导致出现和错误:

BackupGpoName
备份ID
GPOName
路径
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" -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 
}
}

以及预期的产量:

GPO1
11111111-2222-3333-444444444444
GPO1
C:\BackupGPO
GPO2
78888888-1222-4555-8777-123456789123
GPO1
C:\BackupGPO

读取错误,然后查看您的第一个备份ID。不要指定
-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 
}
$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