通过 Get-ADComputer -filter 使用变量

问题描述 投票:0回答:1

我可能想得太多了,但无法让这个简单的代码编辑与 Powershell 一起使用

这个效果很好

Get-ADComputer -Filter "operatingsystem -like "Windows server 2012"

但是,我想使用变量,例如 $ServerOS = "Windows server 2022"

然后在同一代码中使用该变量,例如这样

Get-ADComputer -Filter "operatingsystem -like "$EOLOS"

但是,由于 -filter 使用“单”引号,因此它不起作用。我将如何编辑代码以使变量起作用?

Get-ADComputer -Filter "operatingsystem -like "Windows server 2012"
powershell active-directory quotes
1个回答
0
投票

我所做的是拆分过滤器参数,将其插入到一个变量中,并将整个变量称为过滤器。

通过您的示例,您将得到以下结果:

$EOLOS='Windows server 2012'
$Filter='operatingsystem -like "*' + $EOLOS + '*"'
#Filter='operatingsystem -like "*Windows server 2012*"
Get-ADComputer -Filter $Filter

但是,就您的具体情况而言,听起来最好使用等于(-eq),因为它是一个精确值(但由您决定):

$EOLOS='Windows server 2012'
$Filter='operatingsystem -EQ "' + $EOLOS + '"'
#Filter='operatingsystem -EQ "Windows server 2012"
Get-ADComputer -Filter $Filter
© www.soinside.com 2019 - 2024. All rights reserved.