有大量我需要获取IE版本的机器。Powershell检查版本的计算机列表
目前只是通过远程注册表连接并将值写入文本文件,逗号分隔为漂亮的Excel视图。
在这个机器列表中,有些服务器和不是Windows的过时机器。我希望能够跳过IE检查,如果不是Windows,但回显失败,然后到下一台机器。
这是目前我正在做的,但我不太确定它是否正确完成。它仍在检查非Windows的IE版本,而不是写入失败。
(注意,IE6-8有版本不同的注册表键,这就是为什么有冗余IF)
$computernames = Get-Content C:\ps\servers.txt
echo "Server,Status,IE Version;" >> C:\ps\result.txt
foreach ($server in $computernames) {
if (!(Get-Service "Windows Audio" -ErrorAction SilentlyContinue))
{
$failure = $server + ",Failure,;"
echo $failure >> C:\ps\result.txt
}
else
{
Get-Service -ComputerName $server -Name RemoteRegistry |Start-Service
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $server)
$IEkey = $reg.OpenSubkey('SOFTWARE\Microsoft\Internet Explorer\')
If (!$IEKEY)
{
$IEVALUE = '0'
}
if ($IEKEY)
{
$IEvalue = $IEkey.GetValue('svcVersion')
IF (!$IEVALUE)
{
$IEvalue = $IEkey.GetValue('Version')
}
}
$result = $server + ",Success," + $IEvalue + ";"
echo $result >> C:\ps\result.txt
}}
Doh! X_X。虽然我只是做了一些不同的事情,但我敢打赌,这种改正也会使我的剧本奏效。 – 2014-12-03 21:49:09