Iis 7 如何在远程计算机上通过WMI更改LogFile.Directory属性?

Iis 7 如何在远程计算机上通过WMI更改LogFile.Directory属性?,iis-7,wmi,get-wmiobject,Iis 7,Wmi,Get Wmiobject,我能够使用WMI检索位于远程计算机上的特定IIS站点的LogFile.Directory值。 现在我需要更改LogFile.Directory属性-这是自动化过程中的一个步骤-但我遇到了麻烦。这是我到目前为止所拥有的,尽管它不起作用 Write-Output "Making IIS connection to $($XmlCloudNodeFullyQualifiedDomainName)" $site = Get-WmiObject -ComputerName $XmlClou

我能够使用WMI检索位于远程计算机上的特定IIS站点的
LogFile.Directory
值。 现在我需要更改
LogFile.Directory
属性-这是自动化过程中的一个步骤-但我遇到了麻烦。这是我到目前为止所拥有的,尽管它不起作用

    Write-Output "Making IIS connection to $($XmlCloudNodeFullyQualifiedDomainName)"
    $site = Get-WmiObject -ComputerName $XmlCloudNodeFullyQualifiedDomainName -Namespace "root/webadministration" -Class Site -Authentication 6 -Filter "Name = '$IISSiteName'"
    If ($site.Name -eq $IISSiteName) { 
        Write-Output "Found site $IISSiteName"
        Write-Output ("Existing log folder: " + $site.LogFile.Directory)
        $newLogFolder = "E:\" + $IISSiteName + "\logs"
        Write-Output ("Set IIS log folder to " + $newLogFolder)
        $site.LogFile.Directory = $newLogFolder
        $site.Put()
    } 
我没有发现任何错误。仅当我签入IIS管理器时,远程计算机上的
LogFile.Directory
值不会更改。 我读到应该使用
Set WMIInstance
,所以我尝试:

    Write-Verbose "Making IIS connection to $($XmlCloudNodeFullyQualifiedDomainName)"
    $site = Get-WmiObject -ComputerName $XmlCloudNodeFullyQualifiedDomainName -Namespace "root/webadministration" -Class Site -Authentication 6 -Filter "Name = '$IISSiteName'"
    $sitePath = (Get-WmiObject -ComputerName $XmlCloudNodeFullyQualifiedDomainName -Namespace "root/webadministration" -Class Site -Authentication 6 -Filter "Name = '$IISSiteName'").__path
    If ($site.Name -eq $IISSiteName) { 
        Write-Output "Found site $IISSiteName"
        $newLogFolder = "E:\" + $IISSiteName + "\logs"
        Write-Output ("Existing log folder: " + $site.LogFile.Directory)
        Set-WmiInstance -Path $sitePath -argument @{LogFile.Directory = $newLogFolder}
        Write-Output ("Set IIS log folder to " + $newLogFolder)
    }
但这会带来错误:

At E:\\Test.ps1:71 char:54
+             Set-WmiInstance -Path $sitePath @{LogFile.Directory = $newLogFolder}
+                                                      ~
Missing '=' operator after key in hash literal.
At E:\\Test.ps1:72 char:18
+             Write-Output ("Set IIS log folder to " + $newLogFolder)
+                  ~
Missing '=' operator after key in hash literal.
At E:\\Test.ps1:41 char:54
+     foreach ($FSMappingNode in $FSMappingNodesArray) {
+                                                      ~
有没有办法远程更改此特定值,或者它是只读属性? 任何帮助都将不胜感激。 谢谢


//Francesco

经过多次修补,我终于找到了远程更改IIS站点的
日志文件.Directory
的方法:

    Write-Output "Making IIS connection to $($XmlCloudNodeFullyQualifiedDomainName)"
    $site = Get-WmiObject -ComputerName $XmlCloudNodeFullyQualifiedDomainName -Namespace "root/webadministration" -Class Site -Authentication 6 -Filter "Name = '$IISSiteName'"
    $sitePath = $site.__path
    Write-Verbose $sitePath
    If ($site.Name -eq $IISSiteName) { 
        Write-Output "Found site $IISSiteName"
        Write-Verbose ("Existing log folder: " + $site.LogFile.Directory)
        $newLogFolder = "E:\" + $IISSiteName + "\logs"
        $siteLogFile = $site.LogFile
        $siteLogFile.Directory = $newLogFolder
        Set-WmiInstance -Path $sitePath -Arguments @{LogFile = $siteLogFile}
        Write-Output ("Set IIS log folder to " + $siteLogFile.Directory)
    }