格式化函数中的数据或提取全局变量

时间:2018-11-07 21:40:05

标签: powershell global-variables

我一直在研究一个脚本,该脚本将根据我的组织检查PC /服务器的特定信息。我是根据从网络和此站点发现,修改,修改和组成的代码创建此代码的。

它将读取CSV文件并查找要比较的变量。最初,它会使用带有颜色的 Write-Host 输出到屏幕,并且效果很好。 IF 的第一个是如果注册表匹配期望值,它将变为绿色。否则 Else (其他)会将输出线变为红色。但是,现在我想将其发送给Doug Finke进行归档的Powershell Excel Module。

CSV 文件具有四个字段,这些字段描述了我要查找的内容,要检查的注册表配置单元,键,值和我想要读取的内容。

当我导出数据时,数据现在分成不同的行,并且在打印变量时很难读取。

我现在宁愿从函数中获取变量作为Global,但是我也没有运气。我已经阅读了无数示例,甚至在这里也有一些示例,但是并没有设法在我可以使用或操作的地方获取数据。

Function Check-Reg-Values(){
    foreach ($RegLine in $RegCSV){

        $array =@() 
        $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($RegLine.Hive, $server) 
        $key = $reg.OpenSubkey($RegLine.RegKey)
           If ($key){
           $value = $key.GetValue($RegLine.RegValue)  
           $array += $value
           #Write-output $array -BackgroundColor Yellow -ForegroundColor Black
                If ($array -eq $RegLine.WhatShouldBe){
                Write-Output "Registry =" + $RegLine.RegKey +"="+ $array + $RegLine.WhatShouldBe
                }
                Else
                {
                Write-Output "Registry =" + $RegLine.RegKey +' ='+ $array + $RegLine.WhatShouldBe
                }
           }
           Else
           {
           Write-Output 'Registry Key ' $RegLine.RegKey 'does not exist' 
           }
    }
}

请提供一些指导,以操纵数据以使数据可用,或排除全局变量,甚至更好地兼顾两者。

下面的示例输出。您会注意到“ +”号,我已经尝试了很多不同的方法来使它看起来正确。

    Registry =
+
Control Panel\Accessibility\ToggleKeys
+ =+
62
+
58
Registry =
+
SOFTWARE\Wow6432Node\Symantec\Symantec Endpoint Protection\SMC
+ =+
0
+
1
Registry =
+
SOFTWARE\Policies\Microsoft\Internet Explorer\Main
+ =+
1
+
0
Registry =
+
SOFTWARE\Altiris\Altiris Agent
+=+
1
+
1

我感谢在此提供的任何帮助,并且保证在阅读本文之前,我会读很多书。

0 个答案:

没有答案