【问题标题】:How can I turn a local user into an administrator via the PowerShell command line?如何通过 PowerShell 命令行将本地用户变成管理员?
【发布时间】:2016-02-26 10:37:29
【问题描述】:

PowerShell 新手,我正在编写一个脚本,准备将新安装的 PC 与我的 IT 公司网络合并。我在将通过 PowerShell 创建的本地用户帐户转换为本地管理员时遇到问题。

我使用 PowerShell 来执行此操作至关重要,但我在研究中还没有遇到任何问题。此外,对于理解 GPO 和 PowerShell 之间关系的功能方面的任何帮助,或者任何有助于扩展 PowerShell 功能(可以通过命令行启动)(尝试使该脚本尽可能自给自足和可重用)的任何帮助,都将是极大的赞赏。这是到目前为止的脚本以及相应的任务。

1.) $cn = [ADSI]"WinNT://Inquisition"    
$user = $cn.Create("User","Test")   
$user.SetPassword("P@ssword!")
$user.setinfo()    
$user.description = "TestUser"    
$user.SetInfo()

2.) Get-WmiObject -Class Win32_UserAccount -Filter "name = 'Test'"  | Set-WmiInstance -Argument @{PasswordExpires = 0}

3.)?

4.) $Computername = "TEST1"

$sysinfo = Get-WmiObject Win32_ComputerSystem $sysinfo.JoinDomainOrWorkGroup("AWS-TEST")

5.) netsh advfirewall set allprofiles state off

6.) $AUSettings = (New-Object -com "Microsoft.Update.AutoUpdate").Settings    
$AUSettings.NotificationLevel    
$ausettings.NotificationLevel = 1    
$ausettings.save()

7.) $path = 'HKCU:\Software\Microsoft\Internet Explorer\Main\'    
$name = 'start page'    
$value = 'http://www.blueprintcss.org/tests/parts/sample.html'    
Set-Itemproperty -Path $path -Name $name -Value $value

8.)?
  1. 添加一个名为“Test”的新用户帐户,密码为“P@ssw0rd!”

  2. 将“Test”帐户的密码设置为永不过期

  3. 将用户“Test”添加到本地管理员安全组

  4. 将计算机名称设置为“TEST1”,将工作组设置为“AWS-TEST”

  5. 关闭 Windows 防火墙

  6. 关闭 Windows 更新并设置为从不检查更新

  7. 在 Internet Explorer 中将公司网站设置为默认网页

  8. 关闭 Internet Explorer 中的弹出窗口阻止程序

【问题讨论】:

  • 你有什么尝试吗?向我们展示您目前拥有的代码。否则你不会有那么多人愿意帮助你。这就是它在这里的工作方式
  • 当然,我将编辑帖子以显示到目前为止的脚本。谢谢你的帮助。 :)
  • 哇。我被禁止发布一天的任何其他内容,因为这个问题被否决了。我完全是新手,这在我嘴里留下了苦涩的味道。

标签: windows powershell networking explorer


【解决方案1】:

我曾经有过类似的需求,除了我的需求是删除本地管理员权限。这是对我有用的核心.... 由于您是新的,请确保为域名、主机名和用户预定义变量。希望这会有所帮助!

    $AdminGroup = [ADSI]"WinNT://$HostName/Administrators,group"
    $InUser = [ADSI]"WinNT://$DomainName/$User,user"
    $Admingroup.Add($InUser.Path)

【讨论】:

  • 非常感谢!没想到这么直接的回答。最后几个问题;通过预定义,您的意思是在运行类似于您向我展示的内容之前,我会做类似$User = 'Test' 的事情,对吗?另外,我怎么知道 $Hostname 和 $DomainName 应该定义为什么?我只在 .NET 方面真正有经验,所以这对我来说都是全新的。再次感谢。 :)
  • 是的,$User = 'Test' 将是一种方法,如果你正在做一次性,或者你可以从 csv 导入。域名将与您用于域计算机的名称相同,即。 1dc.com 如果您在域上,否则您基本上可以无视。主机名是可以手动或通过 csv 输入的计算机名。
【解决方案2】:

这是来自https://community.spiceworks.com/topic/post/3297687的单班轮

([ADSI]"WinNT://<computername>/Administrators,group").Add("WinNT://<domain>/<user>")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 2023-03-19
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2011-12-03
    相关资源
    最近更新 更多