gpt4 book ai didi

vb.net - VB.NET中的Powershell具有管理员权限

转载 作者:行者123 更新时间:2023-12-03 00:20:15 24 4
gpt4 key购买 nike

我正在使用PowerShell命令编写Web服务,我想在其中启动和停止本地计算机以及远程计算机上的服务。

在远程计算机上启动和停止服务不是问题。我使用WmiObject进行此操作,如下所示。

如果我要启动本地服务,则说我没有权限。

如果要启动本地服务,则不能使用带有凭据的WmiObject。

如何以管理员权限启动服务?

我的脚本(strScriptText):

$username = "domain\administrator"
$pw = convertto-securestring "password" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $pw
$computername = "serverAB"
if ( $computername.Contains("serverAB")){(Get-WmiObject -class Win32_Service -filter "name='AppIDSvc'").startservice().returnvalue}
else {(Get-WmiObject -class Win32_Service -ComputerName $computername -Credential $cred -filter "name='AppIDSvc'").startservice().returnvalue}

vb:
 runspace = RunspaceFactory.CreateRunspace()
runspace.Open()
pipeline = runspace.CreatePipeline()

pipeline.Commands.AddScript(strScriptText)
pipeline.Commands.Add("Out-String")

最佳答案

您不能尝试通过PowerShell使用旧的.NET方法吗?

# Create an authentication object
$ConOptions = New-Object System.Management.ConnectionOptions
$ConOptions.Username = "dom\jpb"
$ConOptions.Password = "pwd"
$ConOptions.EnablePrivileges = $true
$ConOptions.Impersonation = "Impersonate"
$ConOptions.Authentication = "Default"

# Creation of a rmote or local process
$scope = New-Object System.Management.ManagementScope("\\dom.fr\root\cimV2", $ConOptions)
$ObjectGetOptions = New-Object System.Management.ObjectGetOptions($null,
[System.TimeSpan]::MaxValue, $true)
$proc = New-Object System.Management.ManagementClass($scope,
"\\dom.fr\ROOT\CIMV2:Win32_Process", $ObjectGetOptions)

# Equivalent to :
# $proc = [wmiclass]"\\.\ROOT\CIMV2:Win32_Process"
# $res = $proc.Create("cmd.exe")

关于vb.net - VB.NET中的Powershell具有管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com