问:在下面的脚本中使用AD时,如何弹出要求提供凭据的提示?
我尝试创建另一个powershell脚本来收集凭据以运行此脚本,但在输入凭据后无法启动脚本。我还尝试将凭据插入[ADSI]快捷方式中,但无法理解。
我的代码是这样的:
While($true){
Clear-Host
$IPSet = Ping-IPRange -StartAddress 56.192.87.200 -EndAddress 56.192.87.254 -Interval 60
$IPSet | Select-object IPAddress | foreach {
$IPA = $_.IPAddress
$HN = [System.Net.Dns]::GetHostByAddress($IPA) | Select-Object -ExpandProperty Hostname
$Administrators = invoke-command -computername "$HN" {get-localgroupmember -Name "administrators"}
if ($Administrators -like '*Admin*')
{
Write-Host 'Admin is already an administrator'
}
elseif ($Administrators -notlike '*Admin*')
{
$AdminGroup = [ADSI]"WinNT://$IPA/Administrators,group"
$User = [ADSI]"WinNT://USA/EAGANACE,user"
$AdminGroup.Add($User.Path)
Write-Host 'Admin has been added as an administrator'
}
}
}
到目前为止我所尝试的:
创建一个脚本来调用这个具有提升凭据的脚本:
$Cred = Get-Credential
$ScriptLocation = "filepath"
Start-Process -Credential $Cred -FilePath "Powershell.exe" -ArgumentList "-file $Scriptlocation"
我也试过在[ADSI]命令上使用-Credential,但它不接受该命令。我读到你可以向[ADSI]添加凭据,但无法弄清楚如何这样做。
任何批评/指导都非常感谢!
1条答案
按热度按时间mwkjh3gx1#
我找到了如何去做我想做的,似乎很容易,似乎是可重复的任何脚本,你想运行。文件路径其实并不重要,但为了解释/简单起见,我将使用C:\Scripts作为我的示例文件路径,在该文件夹中有我的脚本MyScript.ps1。
我在同一个文件夹中创建了MyScript.ps1的快捷方式,然后修改了快捷方式的属性,如下所示:
转到“高级...”选中“以管理员身份运行”前面的框,然后点击确定
目标:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe & 'C:\Scripts\MyScript.ps1'
开始于:“C:\Scripts\MyScript.ps1”
只需将C:\Scripts\MyScript.ps1替换为您的路径,并在目标位置和开始位置都保留引文。单击属性页上的“确定”完成更改,然后双击快捷方式,提示您输入管理员凭据,并在获得授权后启动脚本。
如果它不起作用,请确保你没有拼写错误,并且你有正确的位置引用。只要你把myscript.ps1留在同一位置,你就可以把快捷方式移到你喜欢的任何地方,只要它在目标中,它仍然会调用myscript.ps1:位置。
编辑:Powershell.exe、&和“C:\Scripts\MyScripts.ps1”之间有空格。如果遇到问题,最好只是复制和粘贴它,并替换C:\Scripts\Myscripts.ps1部分。记住要保留引号!