Ich konnte mithilfe von WMI den Wert LogFile.Directory
für eine bestimmte IIS-Site abrufen, die sich auf einem Remotecomputer befindet. Jetzt muss ich die LogFile.Directory
Eigenschaft ändern - das ist ein Schritt in einem Automatisierungsprozess - aber ich treffe eine Wand. Das habe ich bisher, obwohl es nicht funktioniert.Wie Ändern der LogFile.Directory-Eigenschaft über WMI auf einem Remotecomputer?
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()
}
Ich bekomme keine Fehler. Der Wert LogFile.Directory
ändert sich nicht auf dem Remotecomputer, wenn ich den IIS-Manager einchecke. Ich habe gelesen, dass ich Set-WMIInstance
stattdessen verwenden soll, also habe ich versucht:
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)
}
Aber das wirft Fehler:
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) {
+ ~
Gibt es eine Möglichkeit diesen besonderen Wert der Ferne zu ändern, oder ist es ein schreibgeschützte Eigenschaft? Jede Hilfe würde sehr geschätzt werden. Danke,
// Franc