将.bat转换为PowerShell



在这里寻找一些帮助。我有以下要转换为PowerShell的批处理文件。它的作用是远程编辑注册表条目。行是以下内容:

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

我想把它放入powershell中吗?只要有这些行就在那里,PowerShell提示了完整的计算机名称,我将输入该行,然后将更新注册表。可能吗?如果是,怎么样?谢谢!

要提示它仅将读取行保存到变量中需要什么PC(也让我们也获得其凭据(:

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

对于PowerShell中的远程工作,您需要创建一个远程会话并调用命令。

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

调用命令时,将会话作为参数传递:

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

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

PowerShell确实有自己的更惯用方法可以实现这一目标,但是它仍然是可以调用其他程序的外壳,而sc.exe就是这样的程序。由于我看不到任何其他批处理构造(例如命令行参数(要翻译,因此我相信所示的脚本将在任何一个环境中不变。

最新更新