【发布时间】:2018-12-07 06:43:28
【问题描述】:
我想通过这个命令更改注册表项:
REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" /v TcpDynamicPorts /t REG_SZ /d 6363 /f
这必须发生在 cmd 中,我通过 powershell 以管理员身份在批处理文件中使用此命令运行:
powershell.exe Start-Process cmd.exe -Verb runAs
我需要一个 UAC 提示,让用户输入他的管理员凭据,以使其尽可能用户友好。 现在我的问题是:如何将 reg add 命令传递给我以管理员身份启动的控制台?
【问题讨论】:
-
为什么不在 powershell 控制台中运行整个程序?为什么需要使用cmd控制台?
-
为什么不直接使用Powershell设置Regkey?为什么要对 cmd 采取额外的步骤?
-
我想使用配置文件为 SQLServer 2014 设置静默安装。要完成设置,我需要更改动态 TCP/IP 端口。如果没有管理权限,这是不可能的。而且由于我们有多个可能具有不同管理员帐户的服务器,因此我需要用户输入凭据。我们希望将用户输入保持在最低限度,以避免用户造成的任何错误。我可以以管理员身份启动 powershell,但是我也不知道如何将 regedit 命令传递给 powershell。
-
你应该看看blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/…。 Powershell 还提供了简单的凭据解析,并使用
Get-Credential进行提示。 -
I could just start the powershell as admin, but then i wouldn't know how to pass the regedit command to the powershell either- 只需使用 powershell 执行reg正在执行的任务。要么像在 cmd 中那样使用reg,要么使用 powershell 命令来完成它
标签: powershell cmd registry