从powershell向cmd传递命令
我想通过以下命令更改注册表项:从powershell向cmd传递命令,powershell,cmd,registry,Powershell,Cmd,Registry,我想通过以下命令更改注册表项: 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.ex
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命令传递到我作为管理员启动的控制台?您需要在
-ArgumentList
参数中传递命令,如下所示:
powershell.exe "Start-Process powershell -ArgumentList 'REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" /v TcpDynamicPorts /t REG_SZ /d 6363 /f' -Verb RunAs"
这将执行PowerShell,尝试执行另一个PowerShell窗口,询问您的凭据,然后执行REG ADD
命令并在最后关闭PowerShell
请记住,您没有错误处理或类似操作,因此您可能希望稍后添加它们,因为它们可能非常有用您需要在
-ArgumentList
参数中传递命令,如下所示:
powershell.exe "Start-Process powershell -ArgumentList 'REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" /v TcpDynamicPorts /t REG_SZ /d 6363 /f' -Verb RunAs"
这将执行PowerShell,尝试执行另一个PowerShell窗口,询问您的凭据,然后执行REG ADD
命令并在最后关闭PowerShell
请记住,您没有错误处理或类似的功能,因此您可能希望稍后添加它们,因为它们可能非常有用为什么不在powershell控制台中运行整个程序?为什么需要使用cmd控制台?为什么不直接使用Powershell设置Regkey?为什么要使用cmd执行额外的步骤?我想使用配置文件为SQLServer2014安装一个静默安装。要完成设置,我需要更改动态TCP/IP端口。没有管理权,这是不可能的。由于我们有多个服务器,可能有不同的管理员帐户,我需要用户输入凭据。我们希望将用户输入保持在最低限度,以避免由用户引起的任何错误。我可以以管理员的身份启动powershell,但是我也不知道如何将regedit命令传递给powershell。您应该看看。Powershell还提供了简单的凭据解析,使用
Get Credential
提示,我可以作为管理员启动Powershell,但是我也不知道如何将regedit命令传递给Powershell
-只需使用Powershell执行reg
正在执行的任务即可。可以像使用cmd一样使用reg
,也可以使用powershell命令来执行此操作为什么不在powershell控制台中运行整个过程?为什么需要使用cmd控制台?为什么不直接使用Powershell设置Regkey?为什么要使用cmd执行额外的步骤?我想使用配置文件为SQLServer2014安装一个静默安装。要完成设置,我需要更改动态TCP/IP端口。没有管理权,这是不可能的。由于我们有多个服务器,可能有不同的管理员帐户,我需要用户输入凭据。我们希望将用户输入保持在最低限度,以避免由用户引起的任何错误。我可以以管理员的身份启动powershell,但是我也不知道如何将regedit命令传递给powershell。您应该看看。Powershell还提供了简单的凭据解析,使用Get Credential
提示,我可以作为管理员启动Powershell,但是我也不知道如何将regedit命令传递给Powershell
-只需使用Powershell执行reg
正在执行的任务即可。可以像使用cmd一样使用reg
,也可以使用powershell命令执行此操作