允许所有用户更改计算机名称

允许所有用户更改计算机名称

我必须允许 Windows 10 设备上的普通用户使用命令提示符或 powershell 更改计算机名称(主机名)。但似乎普通用户无权更改名称。我尝试了以下命令,这些命令对管理员有效,但对普通用户无效:

命令提示符:

WMIC computersystem where caption='CurrentName' rename 'NewName'

电源外壳:

Rename-Computer -NewName "NewName"

有没有办法允许普通用户通过 GPEdit 重命名计算机?或者有其他不需要让用户成为管理员的方法?

答案1

我无法评论允许所有人重命名计算机是否是个好主意,但可以通过授予启动以 身份运行的计划任务的权限来仅允许一项特权操作SYSTEM。 可以将额外信息传递给任何人都可写入的文件中特权任务;我将compname.txt在 中使用C:\Users\Public\Documents

在管理 PowerShell 提示符中,创建一个以以下身份运行的计划任务SYSTEM并调用 PowerShell 将计算机名称设置为该文本文件中的任何内容:

New-ScheduledTask -Action (New-ScheduledTaskAction -Execute 'powershell' -Argument '-command Rename-Computer (gc "C:\Users\Public\Documents\compname.txt")') -Principal (New-ScheduledTaskPrincipal -UserId 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount) | Register-ScheduledTask -TaskName 'RenameComputer'

不幸的是,任务计划程序的 PowerShell cmdlet 不支持调整安全描述符,因此我们必须改用 COM 脚本 API。要重新配置任务以另外向用户组 ( ) 授予读取 ( FR) 和执行 ( ) 权限:FXBU

$ts = New-Object -ComObject 'Schedule.Service'
$ts.Connect('localhost')
$ts.GetFolder('\').GetTask('RenameComputer').SetSecurityDescriptor('D:(A;ID;0x1f019f;;;BA)(A;ID;0x1f019f;;;SY)(A;ID;FA;;;BA)(A;;FR;;;SY)(A;;FRFX;;;BU)', 0)

非管理员将能够查看和运行计划任务,但不能更改它。他们可以通过写入该文本文件并启动任务来更改计算机名称,例如使用此 PowerShell:

'NEWNAME' | Out-File 'C:\Users\Public\Documents\compname.txt'
Start-ScheduledTask 'RenameComputer'

如果您需要跟踪谁重命名了计算机,您可以对包含文本文件的文件夹启用审核。

答案2

要更改计算机名称,需要本地管理员权限,并且无法分配独立的权限。

您可以在本地管理员组中添加普通用户帐户。但是,如果您不想授予本地管理员权限,则可能需要更改用户的计算机名称。

相关内容