在Windows 8.1上,我有一个启动PowerShell脚本的服务.该服务在Session 0 Isolation中以"nt authority\system"运行.我从PowerShell中生成的任何进程在Session 0 Isolation中作为"nt authority\system"运行.
我需要在会话0之外的用户帐户下运行脚本而不是系统帐户.我试过这个
Start-Process "$PsHome\PowerShell.exe" -Credential $pp -ArgumentList $script -wait
Run Code Online (Sandbox Code Playgroud)
和PsExec使用"-I 1"参数指定我想要的会话.
& PsExec.exe "Install.bat" -i 1 -accepteula -u "domain\user" -p "awesomePassword" -w "startdir" -h
Run Code Online (Sandbox Code Playgroud)
我尝试过设置"允许服务与桌面交互".
当我尝试从PowerShell或c#服务启动该过程时,我一直得到Access被拒绝的错误.
当我尝试使用服务上的c#进行转义时,这是一个示例异常.
System.ComponentModel.Win32Exception (0x80004005): Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
Run Code Online (Sandbox Code Playgroud)
如何逃离会话0?
我可以重新编写c#代码以在不同的用户下启动进程.或者我可以重新编写调用的PowerShell脚本以作为用户启动另一个进程.无论我尝试什么,我似乎都无法突破会话0.
当我去调试我们的应用程序时,我收到以下错误消息
Microsoft Visual Studio
无法激活Windows应用商店应用'xxxx'.激活请求失败并显示错误'此应用程序的软件包系列安装了多个软件包.这不受支持'.有关解决问题的建议,请参阅帮助.
好的帮助
当我挖出事件日志时,我发现了这个错误.
app xxx App的软件包系列(xxxx)安装了多个软件包.这不受支持,因此未针对Windows.Launch合同激活应用程序.
为了找出安装了哪些其他软件包,我运行以下PS脚本:
Get-AppxPackage -all
Run Code Online (Sandbox Code Playgroud)
查看前一个脚本的输出,我只看到从visual studio位置安装的一个包.我从开始菜单中卸载了应用程序并再次运行脚本,并且没有安装任何内容.
该应用已签名,因此我无法更改包的系列名称.
我已按照/sf/answers/1003805281/中的步骤操作,但仍无法从VS或已安装的软件包运行我们的应用程序.
如何找到其他错误的包裹系列名称?挖掘注册表?
为了再次运行应用程序,我可以遵循哪些步骤?
我在大学时使用IDL和MatLab,现在我已经工作了几年,我想念:索引数组的符号.例如
arrray[1:5]
Run Code Online (Sandbox Code Playgroud)
这将从1到5的元素返回一个数组.另一个例子是:
stringVar.Split(")".ToCharArray())[1:*]
Run Code Online (Sandbox Code Playgroud)
这将返回跳过第一个元素的字符串数组.
有没有人看过鞋角的方法:用C#表示?
我在一些解释语言和Perl或Python中看到它,不记得了.
我想知道这是否可以通过一些运算符覆盖来完成?