gpt4 book ai didi

powershell - 从数组中选择选项

转载 作者:行者123 更新时间:2023-12-03 00:22:50 25 4
gpt4 key购买 nike

我正在做一个辅助项目,并使其易于管理,因为几乎所有外部服务器名称都是15个字符,所以我开始寻找RDP管理选项,但我不喜欢它。因此我开始写一个,但只涉及一个问题,如果用户键入的内容不足以进行搜索,因此两台服务器将与查询匹配,该怎么办。我想我必须将其放入一个数组中,然后让他们选择他们想要的服务器。这是我到目前为止所拥有的

function Connect-RDP
{

param (
[Parameter(Mandatory = $true)]
$ComputerName,
[System.Management.Automation.Credential()]
$Credential
)

# take each computername and process it individually
$ComputerName | ForEach-Object{
Try
{
$Computer = $_
$ConnectionDNS = Get-ADComputer -server "DomainController:1234" -ldapfilter "(name=$computer)" -ErrorAction Stop | Select-Object -ExpandProperty DNSHostName
$ConnectionSearchDNS = Get-ADComputer -server "DomainController:1234" -ldapfilter "(name=*$computer*)" | Select -Exp DNSHostName
Write-host $ConnectionDNS
Write-host $ConnectionSearchDNS
if ($ConnectionDNS){
#mstsc.exe /v ($ConnectionDNS) /f
}Else{
#mstsc.exe /v ($ConnectionSearchDNS) /f
}
}
catch
{
Write-Host "Could not locate computer '$Computer' in AD." -ForegroundColor Red
}
}
}

基本上,我正在寻找一种管理用户是否键入server1的方法

因为它们都匹配过滤器,它将询问他是否要连接到Server10或Server11。

最佳答案

向用户显示选择的另一个选项是Out-GridView,带有-OutPutMode开关。

从马特的例子中借用:

$selection = Get-ChildItem C:\temp -Directory

If($selection.Count -gt 1){
$IDX = 0
$(foreach ($item in $selection){
$item | select @{l='IDX';e={$IDX}},Name
$IDX++}) |
Out-GridView -Title 'Select one or more folders to use' -OutputMode Multiple |
foreach { $selection[$_.IDX] }
}

else {$Selection}

此示例允许选择多个文件夹,但是您可以通过简单地将 -OutPutMode切换为Single来将它们限制为单个文件夹

关于powershell - 从数组中选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com