我有一个脚本,它通过服务器列表并检查DNS条目是否设置为特定值。
当我进行WMI调用以捕获任何错误并将它们写入屏幕和文本文件时,我设置了一个环境变量。它正在写一个截断版本的错误(这就是我想要的)除了"访问被拒绝"。在该错误上,它会转储整个堆栈。
我的问题是,我如何获得拒绝接入"错误堆栈只是报告类似Access的内容被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))。
奇怪的是,当我运行脚本时,只需键入$ err并按Enter键即可获得以下内容:
PS C:\ myScripts> $犯错 访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
当我尝试Write-Host $ err或Add-Content $ err时,我得到了整个错误堆栈。 (如果你愿意,我可以发布它...只是想节省空间。)
脚本:
$ErrorActionPreference = "SilentlyContinue"
Clear-Content C:\myScripts\iofiles\dns.txt
$servers = Get-Content "C:\myScripts\iofiles\hosts.txt"
#Set the DNS values to check for
$newDNS1 = "1.1.1.1" #placeholder value
$newDNS2 = "1.1.1.2" #placeholder value
ForEach($server in $servers){
Write-Host ""
Write-Host "Checking" $server -ForegroundColor Cyan
$wmi = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName $server -filter "ipenabled='true'" -ea "SilentlyContinue" -ev err
$primaryDNS = $wmi.DNSServerSearchOrder[0]
$secondaryDNS = $wmi.DNSServerSearchOrder[1]
if ($err.count -gt 0) {
Add-Content C:\myScripts\iofiles\dns.txt "$server - $err"
Write-Host "Error on $name $err" -ForegroundColor Red
}else{
if ($primaryDNS -ne $newDNS1) {
Add-Content C:\myScripts\iofiles\dns.txt "$server - Primary DNS incorrectly set - $primaryDNS"
Write-Host "Primary DNS incorrectly set: " -ForegroundColor Yellow -NoNewline; Write-Host $primaryDNS -ForegroundColor Red
}else{
Write-Host "Primary DNS Correct" -ForegroundColor Green
}if ($secondaryDNS -ne $newDNS2) {
Add-Content C:\myScripts\iofiles\dns.txt "$server - Secondary DNS incorrectly set - $secondaryDNS"
Write-Host "Secondary incorrectly set: " -ForegroundColor Yellow -NoNewline; Write-host $secondaryDNS -ForegroundColor Red
}else{
Write-Host "Secondary DNS correct" -ForegroundColor Green
}
}
}#END ForEach
答案 0 :(得分:0)
可能您遇到与DCOM相关的错误:
0x80070005 - E_ACCESS_DENIED:DCOM安全拒绝访问。
用户无法通过DCOM远程访问计算机。 通常,连接到远程计算机时会发生DCOM错误 一个不同的操作系统版本。
授予用户远程启动和远程激活权限 DCOMCNFG。右键单击我的电脑 - > COM安全下的属性, 单击两个部分的“编辑限制”。为您想要的用户提供远程服务 访问,远程启动和远程激活。然后去DCOM配置, 找到“Windows Management Instrumentation”,并为您提供所需的用户 远程启动和远程激活。有关更多信息,请参阅 连接不同的操作系统