【发布时间】:2018-02-22 17:13:32
【问题描述】:
我的目标是运行一个 powershell 脚本来查看当前用户是否是某个组的成员。如果用户是成员,那么它将更改文件的内容。如果没有,它就会退出。我只是运行它,并没有对我的文件进行更改。
我知道这 2 个单独的脚本分别按广告宣传的那样工作。我需要帮助确定为什么当我组合它们时它没有给我想要的结果,因为没有错误消息:
Import-Module ActiveDirectory
$group = "The Beatles"
$members = Get-ADGroupMember -Identity $group -Recursive | Select -ExpandProperty Name
if($members -contains $ENV:USERNAME)
{
$File = "\\server\folder\$($Env:USERNAME)\File.reg"
$Content = Get-Content -Path $File |
ForEach-Object {
$_ -replace 'peter best',$ENV:USERNAME
}
Set-Content -Path $File -Value $Content
}
else
{
Exit
}
我将 if 括号的内容替换为:Write-Host "WINNER WINNER!"它仍然没有做任何事情。但是,如果我用 for 替换 if 并消除 else 部分,它会吐出“WINNER WINNER!”。我的猜测是,我对如何在 If 大括号内执行代码的语法或理解是罪魁祸首。
如何获得想要的结果?
感谢您的意见。
谢谢,
维克多
【问题讨论】:
-
您是否确保
$members包含与$ENV:USERNAME相同形式的对象?可能需要一些翻译。
标签: powershell windows-7