首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >广告管理工具

广告管理工具
EN

Stack Overflow用户
提问于 2022-10-14 14:42:12
回答 1查看 21关注 0票数 0

尝试构建自定义的Active目录管理工具,但在将其打包到菜单时遇到一些问题。

代码语言:javascript
复制
do
 {
    Show-Menu
    $selection = Read-Host "Make your selection"
    switch ($selection)
    {
    '1' { #===Add Admin===
    Clear-Host
        $Workstation = Read-Host "Workstation\IP Address"
        $EndUser = Read-Host "EndUser"
        $AdminGroup = [ADSI]"WinNT://$Workstation/Administrators,group"
        $User = [ADSI]"WinNT://USA/$EndUser,user"
        $AdminGroup.Add($User.Path)
    } '2' { #===Remove Admin===
    Clear-Host
        $Workstation = Read-Host "Workstation\IP Address"
        $EndUser = Read-Host "ACEID"
        $AdminGroup = [ADSI]"WinNT://$Workstation/Administrators,group"
        $User = [ADSI]"WinNT://USA/$EndUser,user"
        $AdminGroup.remove($User.Path)
    } '3' { #===ADUC===
    Clear-Host
        runas /netonly /user:USA\ADM$env:USERNAME "mmc C:\Windows\System32\dsa.msc"
    } '4' { #===Computer Management===
    Clear-Host
        runas /netonly /user:USA\ADM$env:USERNAME "mmc C:\Windows\System32\compmgmt.msc"
    } '5' {
    Clear-Host
        $EndUser = Read-Host "Username?"
        (Get-ADUser $EndUser -Properties MemberOf).memberof | Get-ADGroup | Select-Object name | Where-Object {$_.Name -like "Shr*"}
        pause
    }
    }
 
 }
 until ($selection -eq 'q')

选项1-4按预期工作,但选项5没有输出任何内容。当我复制5的代码并在另一个PowerShell实例中单独执行它时,它会输出我想要的结果,但是尽管其他的代码工作得完美无缺,上面的结果还是不能工作。我是不是遗漏了什么?我确实复制和粘贴了代码,在一个实例中,它可以工作,但是只要我作为一个整体运行这个脚本,或者通过ISE,它就不会给我任何输出。

特别是

代码语言:javascript
复制
(Get-ADUser $EndUser -Properties MemberOf).memberof | Get-ADGroup | Select-Object name | Where-Object {$_.Name -like "Shr*"}

当它被包装在菜单中时,它不起作用,但是如果我在powershell中运行它,并为$EndUser变量输入用户名,它就会给出预期的结果。

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 16:13:35

我试着按照建议将写主机添加到开头,但它只输出第一个字符串的代码。然后,我在代码周围添加了括号,这样写主机就可以将其全部作为目标,但这也没有输出我想要的结果。

代码语言:javascript
复制
Write-Host ((Get-ADUser $EndUser -Properties MemberOf).memberof | Get-ADGroup | Select-Object name | Where-Object {$_.Name -like "Shr*"})

这将输出信息,但格式如下:

@{name=shr_Share1} @{name=shr_Share2} @{name=shr_Share3}

进步,但不完全正确。我希望能够轻松地复制和粘贴输出的信息。

在字符串的末尾添加一张“表”给了我我想要的:

代码语言:javascript
复制
(Get-ADUser $EndUser -Properties MemberOf).memberof | Get-ADGroup | Select-Object name | Where-Object {$_.Name -like "Shr*"} | Format-Table

名称

-

shr_Share1

shr_Share2

shr_Share3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74070922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档