2017-08-31 118 views
0

我必须编写一个脚本,它将两个不同的注册表项远程部署到我们的Active Directory中的所有客户端。该脚本不响应任何错误,但它似乎仍然没有创建密钥。你能帮我吗?远程部署注册表项

我不是用来编程,所以请记住这一点:d

$pc = Get-ADComputer -filter {name -like "WS226"} 
foreach ($object in $pc) 
{ 
    $object.name 

    #New Powershell-Remotesession with $PC 
    $session = New-PSSession -Computername $object.name 

    $Dir ="HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1" 
    If (Test-Path $Dir) 
    { 
     New-Item -Path HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1 -Name NewKey -Value "Default Value" -Force 
     New-ItemProperty -Path HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1\NewKey -Name "NLS_DATE_FORMAT" -PropertyType "String" -Value "DD.MM.RRRR" 
    } 
    else 
    { 
     ECHO "key" 
    } 

    $Dir ="HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1" 
    If (Test-Path $Dir) 
    { 
     New-Item -Path HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1 -Name NewKey2 -Value "Default Value" -Force 
     New-ItemProperty -Path  HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1\NewKey2 -Name " NLS_NUMERIC_CHARACTERS" -PropertyType "String" -Value ".," 
    } 
    else 
    { 
     ECHO "key" 
    } 
} 
+0

一件事你的代码是不完整的,你换行被打破。你的代码与你在这里发布的内容完全相同吗?如果没有:请[编辑]你的问题并解决。 –

回答

1

您所创建的PSSession中,但你不使用它。 将你的代码放在一个invoke命令中。

Invoke-command -Session $Session -scriptblock{ 
    $Dir ="HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1" 
    If (Test-Path $Dir) 
    { 
    New-Item -Path HKLM:\SOFTWARE\ORACLE\KEY_OraClient11g_home1 -Name NewKey - 
    Value "Default Value" -Force 
    #your other code goes here 
}