首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从许多服务器检索特定注册表值的远程Powershell

从许多服务器检索特定注册表值的远程Powershell
EN

Stack Overflow用户
提问于 2015-02-10 15:12:51
回答 1查看 1.6K关注 0票数 0

我有以下..。

代码语言:javascript
复制
$output = @()
$servers =Get-Content "C:\Windows\System32\List3.txt"

foreach ($server in $servers)
{
    trap [Exception] {continue}
    Import-Module PSRemoteRegistry
    $key="SOFTWARE\Microsoft\'Microsoft Antimalware'\'Signature Updates'"

    $regkey=Get-RegBinary -ComputerName $server -Key $Key -Value SignatuesLastUpdated

    #$regkey=(Get-Item HKLM:\SOFTWARE\Microsoft\'Microsoft Antimalware'\'Signature Updates').getValue('SignaturesLastUpdated')

    #$regkey=[datetime]::ParseExact("01/02/03", "dd/MM/yy", $null) | Export-csv -path c:\temp\avinfo.csv -append

    #$regkey
}

$output | Select $server , $Regkey | Export-Csv c:\temp\avinfo.csv -NoTypeInformation

我认为这是相当接近,但没有工作的需要-谁能告诉我做错了什么在这里-一直读了很多,并设法做到这一点,只是需要帮助,以最终确定。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-02-10 16:05:59

好的..。因此,有许多需要改变,以使这一工作。我会经常更新答案后,这是张贴。

代码语言:javascript
复制
$servers = Get-Content "C:\Windows\System32\List3.txt"
$key="SOFTWARE\Microsoft\Microsoft Antimalware\Signature Updates"

$servers | ForEach-Object{
    $server = $_
    Try{
        Get-RegBinary -ComputerName $server -Key $Key -Value SignatuesLastUpdated -ErrorAction Stop
    } Catch [exception]{
        [pscustomobject]@{
            ComputerName = $server
            Data = "Unable to retrieve data"
        }
    }
} | Select ComputerName,@{Label=$value;Expression={If(!($_.Data -is [string])){[System.Text.Encoding]::Ascii.GetBytes($_.data)}Else{$_.Data}}} | Export-Csv c:\temp\avinfo.csv -NoTypeInformation

以上代码所做的更符合您的意图。获取列表,并为每个项目从该服务器获取关键数据。如果存在获取该数据的问题,则输出一个自定义对象,以便在输出中判断是否存在问题。悬而未决的部分是如何将二进制数据导出到文件中。就目前情况而言,它应该创建一个以空格分隔的字节字符串。

应该强调的是,您确实遇到了一些问题

  1. 不需要为每个服务器导入模块。把呼叫从循环中移出
  2. 您已经声明了变量$output,但不要在循环过程中填充它。这对于foreach结构非常重要。最后,你发送空数组给你csv。我的答案不需要它,因为它只是使用标准输出。
  3. 正如@Meatspace指出的,这里有一个错误:SignatuesLastUpdated
  4. 默认情况下,Get-RegBinary不会创建try/catch块所需的终止错误。增加了-ErrorAction Stop。不要认为您的代码trap [Exception] {continue}会捕捉到任何东西。
  5. 您在$key中的单引号可能会阻止对路径进行解析。您试图转义空格,只需将整个字符串括在一组引号中即可。
  6. 虽然Select可以使用变量,但它们以基本形式在那里选择属性名称。简而言之,你所做的都是错的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28435150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档