我正在编写一个脚本来开始使用PowerShell.我正在尝试转换一个工作的VBScript脚本,该脚本枚举远程Windows计算机上的映射网络驱动器.
其中一项任务是使用远程WMI来读取注册表并找到explorer.exe的进程所有者,以确定谁登录.这个指南似乎很容易.
但是,我需要调用的WMI方法是来自Win32_Process的GetOwner(),它需要两个输出参数来存储其返回值.
如何调用带输出参数的方法?当我尝试给它两个字符串时,我得到错误:Cannot find an overload for "GetOwner" and the argument count: "2"..MSDN页面说有两个参数,所以我不确定我做错了什么.
这篇堆栈文章和这篇文章看起来都很相似,但我在那里找不到我的解决方案。我在理解 reg 导出与 reg 导入行为之间的差异时遇到问题。
在 powershell 内运行 reg export 时,它返回“操作成功完成”,但 reg import 会抛出一个终止错误,提示“操作成功完成”。即使抛出错误,注册表文件也会正确导入。一个例子:
PS C:\Windows\System32> reg export HKLM\Software\MySoftware C:\Scripts\MyFile.reg
The operation completed successfully.
PS C:\Windows\System32> reg import C:\Scripts\MyFile.reg
reg : The operation completed successfully.
At line:1 char:1
+ reg import C:\Scripts\MyFile.reg
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (The operation completed successfully.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Run Code Online (Sandbox Code Playgroud)
Microsoft 的 reg import 命令文档指出,返回码为 0 表示成功,1 表示失败。为什么 Powershell 将成功作为 reg 导出的常规成功消息返回,但将其作为 reg 导入的终止错误抛出?
我以管理员身份运行 Powershell,登录用户是服务器上的本地管理员。如有任何帮助,我们将不胜感激。