如何测试远程IP地址的身份验证

时间:2013-09-23 19:14:03

标签: authentication powershell

我有一个powershell脚本可以调用另一个PowerShell脚本。

使用ip地址调用第一个脚本,该地址将传递给第二个脚本。第二个脚本应该以Domain \ User

的形式返回userId

第一个脚本使用ProcessStartInfo和Process获取提升的凭据以调用第二个脚本

# part of first script

$startInfo = New-Object System.Diagnostics.ProcessStartInfo
$startInfo.FileName = "powershell.exe"
$startInfo.Arguments = "C:\script\second_script.ps1 " 

$startInfo.RedirectStandardOutput = $true
$startInfo.UseShellExecute = $false
$startInfo.CreateNoWindow = $false
$startInfo.Username = Service_Account
$startInfo.Domain = Domain
$startInfo.Password = password 

$process = New-Object System.Diagnostics.Process
$process.StartInfo = $startInfo

$process.Start() | Out-Null


$standardOut = $process.StandardOutput.ReadToEnd()

$process.WaitForExit()

第二个脚本有许多try-catch块,例如检查我们是否可以ping机器,检查我们是否可以访问WMI

# part of second

# Can we ping the machine?
try{
    Test-Connection $Sender_IP -count 1 -ErrorAction Stop | out-null
}
catch [Exception]
{
    $userId = "Unknown/CannotPing "
    return $output = "userId=" + $userId
}

try
{
    <#Gather information on the computer corresponding to $Sender_IP#>
    $Win32OS = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $Sender_IP -ErrorAction Stop
}
catch [Exception]
{
    $userId = "Unknown/CannotDetectOS "
    return $output = "userId=" + $userId
}

该脚本无法访问许多IP地址的WMI。当我尝试使用服务帐户手动远程连接到IP地址进行故障排除时,我无法进行。

现在,我试图找出一种方法让脚本检查它是否可以对IP地址进行身份验证。如果脚本无法对IP地址进行身份验证,则应该抛出异常,甚至不检查它是否可以访问WMI。

哪些cmdlet可以帮助解决这个问题?

0 个答案:

没有答案