Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从powershell向cmd传递命令_Powershell_Cmd_Registry - Fatal编程技术网

从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命令执行此操作