我目前正在编写一个脚本,该脚本可以在一次运行中对我的 Windows 10 20H2 操作系统进行所有黑客攻击。
我正在使用 PowerShell 7.0.4 x64,我想在 Admin 中运行脚本pwsh
,我发现一些注册表项需要更改 TrustedInstaller 权限,我找到了一个解决方案:使用psexec -S
启动一个pwsh
进程来运行具有TrustedInstaller
权限的命令,不幸的是我不知道如何将变量传递给新进程,并使其自动退出psexec
以继续执行脚本。
我将以此为例:
$TiSvc=@(
"PrintWorkflowUserSvc"
"RmSvc"
"SCardSvr"
"SecurityHealthService"
"Sense"
"SgrmBroker"
"wscsvc"
)
$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}
如果没有TrustedInstaller
特权,该命令将失败并出现拒绝访问错误。
现在,要解决这个问题,请使用psexec
运行命令(我已将SysInternals
文件夹放入path
):
$PwSh=(Get-Process -Id $pid).path
PsExec -S $PwSh ???
我想在当前会话中设置[array]
变量$TiSvc
,我不知道如何传递$TiSvc
给新pwsh
会话并运行此命令:
$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}
并且命令执行完毕后,退出新的pwsh
会话,退出psexec
继续脚本执行;
我怎样才能做到这一点?任何帮助表示赞赏。
将您想要运行的任何命令放在
TrustedInstaller
与脚本文件相同的路径中的文本文件中,确保PsExec.exe
在 中Path
,然后使用以下命令:在另一个
PowerShell
进程中运行需要 TrustedInstaller 权限的命令,执行完成后进程会自动退出,让主脚本继续执行。修复了导致 PowerShell 进程在没有 TrustedInstaller 权限的情况下启动的小错误。
上述方法不知何故无法正常工作,就像我尝试运行这些命令时一样:
我得到了错误:
如果我使用
reg add
然而,他们之前的命令都返回了:
特别是这些命令:
当以管理员身份而不是 TrustedInstaller 身份运行时,每个都将返回此错误:
使用 运行时
PsExec
,不会产生此错误。但是这个错误:
仍然会生成。
我想这是因为
PsExec
依赖于远程的东西,我禁用了“远程协助”、“远程桌面”和“远程注册表”;我使用
NSudoLC.exe
并成功禁用了 Windows Defender,没有出现错误:使用
NSudo
上述两种错误时都不会产生。