【问题标题】:How to use invoke-wmimethod without specifying an argument?如何在不指定参数的情况下使用 invoke-wmimethod?
【发布时间】:2019-07-24 05:38:41
【问题描述】:

我正在尝试创建一个 PowerShell 命令来编辑共享文件夹的某些信息。有 3 个参数 access、description 和 max users 但我只想更改 description 和 max users。

我需要此代码才能在 Windows 2008 和更高版本上工作。

这些命令用于更改共享文件夹的参数:

$c = Get-WmiObject -Namespace "root\cimv2" -Query "SELECT * FROM Win32_Share WHERE Name=`'ADMIN`$`'";

Invoke-WmiMethod -InputObject $c -Name SetShareInfo -ArgumentList @($null,"Remote Admin","5")

但在这个过程中我相信它会删除访问参数。

有谁知道编辑共享文件夹参数的简单方法。

【问题讨论】:

  • 您的代码似乎没有清除我在共享上设置的任何访问权限。我不知道在 PowerShell v2 中管理共享的“简单”方法。
  • Invoke-WmiMethod 要求将参数传递给需要它们的方法。我不知道除了使用另一个命令之外还有什么办法。如果您不喜欢必须提供参数的位置,您可以创建一个函数,然后将参数值传递给Invoke-WmiMethod。这确实增加了一些灵活性。与 v3 和更高版本相比,PowerShell v2 具有严重的局限性。

标签: powershell wmi


【解决方案1】:

我会以这种方式使用该方法。您可以仔细检查参数的顺序。

$a = get-wmiobject win32_share | where name -eq admin$
$a.setshareinfo

OverloadDefinitions
-------------------
System.Management.ManagementBaseObject SetShareInfo(System.UInt32 MaximumAllowed,System.String Description, System.Management.ManagementObject#Win32_SecurityDescriptor Access)

$a.setshareinfo($null,'Remote Admin','5')

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 2015-08-27
    • 2021-07-05
    • 2019-12-16
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多