将.bat转换为Powershell

时间:2019-05-21 16:08:33

标签: powershell batch-file

在这里寻求帮助。我有以下要转换为powershell的批处理文件。 它的作用是远程编辑注册表项。 这些行如下:

sc \\FULLCOMPUTERNAME config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc \\FULLCOMPUTERNAME config mrxsmb10 start= disabled

我想把它放到Powershell中吗?只要有这些行,powershell便会提示您输入完整的计算机名称,我将输入该名称,然后将更新注册表。 这有没有可能?如果是的话,怎么办? 谢谢!

2 个答案:

答案 0 :(得分:0)

要提示您输入哪台PC,您只需要将读取行保存到变量中即可(让我们也获得其凭据):

$targetServer = Read-Host;
$cred = Get-Credential;

要在Powershell中进行远程工作,您需要创建一个远程会话并调用该命令。

$session = New-PSSession -ComputerName $targetServer -Credential $cred

调用命令时,您将通过会话作为参数:

Invoke-Command -Session $session -InputObject{
    Set-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\...' -Name 'This Process' -value 00000000
}

答案 1 :(得分:0)

我认为您可以将此特定脚本的文件扩展名从.bat更改为.ps1,并且仍然可以运行。

Powershell确实有其自己的惯用方式来完成此操作,但是它仍然是可以调用其他程序的Shell,sc.exe就是这样的程序。由于我看不到要转换的其他任何批处理构造(例如命令行参数),因此我相信如图所示的脚本将在两种环境中均保持不变。