Jump to content

GUID in lesbaren Text "umwandeln"


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

ich weiß, "umwandeln" ist hier vielleicht der falsche Begriff, aber vielleicht kann ich mein Anliegen trotzdem verständlich erläutern.

 

Ich habe ein Script, dass mir aus einem SCOM die Groups Scopes, Tasks und Views rauszieht und in eine XML-Datei speichert.

Nun werden die aber als GUID angezeigt. Später reicht das sicher auch. Momentan würde ich statt der GUID aber gerne "Klartext" sehen, so wie wenn ich über Rechtsklick - Properties die Tasks oder Views anzeige.

 

Kann mir da jemand helfen?

 

Da ich leider in Sachen PowerShell noch absoluter Anfänger bin, versuche ich das mit einem fertigen Script. Ich vermute das passiert an dieser Stelle (Code auszugsweise)

 

#Loop through the groups if the user has explicitly defined group scopes
if ($mo.scope.MonitoringObjects.count -gt 0)
{
foreach ($grp in $mo.scope.MonitoringObjects)
{
	$elem2 = $doc.CreateElement("Group")
	$elem2.SetAttribute("GroupScope",$grp.ToString())
	$temp = $elem.AppendChild($elem2)
}
}
.
.
.
#Write this new element to the XML document		
$temp = $doc.get_ChildNodes().Item(1).AppendChild($elem)
Write-Host "---" $mo.DisplayName "-> exported"

Link zu diesem Kommentar
Ich habe keine Ahnung von der Powershell und noch weniger von SCOM. Aber vielleicht hilft ja das Gefundene weiter

 

SCOM: Get-UserRole Group Scope (PowerShell)

SCOM PowerShell Snippets

Die kenne ich ja, aber ich habe bereits ein anderes Script gefunden, das exakt das macht was es soll - abgesehen von der Ausgabe als Klartext anstatt der GUID. (Exporting and importing user roles - System Center WebLog by Russ Slaten - Site Home - MSDN Blogs)

 

Schonmal die Eigenschaft displayName ausprobiert?

$grp.displayName

anstatt dem

$grp.ToString()

 

Gerade getestet, aber da bleibt die Ausgabe dann leer :( (Fehler gibts aber auch keinen)

Link zu diesem Kommentar

So, ich bin einen Tick weiter.

 

Mit diesem Script bekomme ich die Klartextnamen ausgegeben:

Get-UserRole | Sort-Object DisplayName | foreach { 
 If($_.IsSystem -ne $true)
 {
Write-Host "Group Scope for" $_.DisplayName ":"
If($_.Scope.MonitoringClasses -ne $null)
{
	$_.Scope.MonitoringClasses | foreach {Get-MonitoringClass -Id $_} | Sort-Object DisplayName | foreach {Write-Host "  "$_.displayName}
   } 
else 
{
	"   All grous are selected!"
   }
 }
}

 

Aber wie muss ich den Code (oder Teile davon) in u.g. Script einbinden, damit ich den jeweiligen Scope mit ausgegeben bekomme?

 

#Loop through the groups if the user has explicitly defined group scopes
	if ($mo.scope.MonitoringObjects.count -gt 0)
	{
		foreach ($grp in $mo.scope.MonitoringObjects)
		{
			$elem2 = $doc.CreateElement("Group")
			$elem2.SetAttribute("GroupScope",$grp.ToString())
			$temp = $elem.AppendChild($elem2)
		}			
	}

 

Wenn ich es einfach mal per Copy & Paste in die innerste foreach Schleife reinkopiere, werden alle Scopes ausgegeben, nicht nur die, die es für die Gruppe/den User gibt.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...