hawk0815 10 Geschrieben 21. Februar 2013 Melden Teilen Geschrieben 21. Februar 2013 (bearbeitet) Hallo, ich habe ein Poweshell scrip mit dem ich user in einer SharePoint Seite berechtigen möchte. hier der teil um den es geht. Try { Set-SPUser -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } catch { "new User wird verwendet" new-SPUser -UserAlias $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } der Set Befehl bricht wenn der user noch nie verwendet wurde mit dieser Fehler meldung ab. Set-SPUser : You must specify a valid user object or user identity. At D:\scripte\set_Index_ACLs.ps1:62 char:17 + Set-SPUser <<<< -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp + CategoryInfo : InvalidArgument: (:) [Set-SPUser], PSArgumentException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletSetUser der Catch wird aber nicht "angesprochen" hat jemend eine idee warum nicht? Gruß hawk0815 bearbeitet 21. Februar 2013 von hawk0815 Zitieren Link zu diesem Kommentar
Timsk 11 Geschrieben 21. Februar 2013 Melden Teilen Geschrieben 21. Februar 2013 (bearbeitet) Hallo, ich habe ein Poweshell scrip mit dem ich user in einer SharePoint Seite berechtigen möchte. hier der teil um den es geht. Try { Set-SPUser -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } catch { "new User wird verwendet" new-SPUser -UserAlias $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } der Set Befehl bricht wenn der user noch nie verwendet wurde mit dieser Fehler meldung ab. Set-SPUser : You must specify a valid user object or user identity. At D:\scripte\set_Index_ACLs.ps1:62 char:17 + Set-SPUser <<<< -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp + CategoryInfo : InvalidArgument: (:) [Set-SPUser], PSArgumentException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletSetUser der Catch wird aber nicht "angesprochen" hat jemend eine idee warum nicht? Gruß hawk0815 Mit Standard Commandlets funktioniert try catch nicht soweit mir bekannt, Du kannst das nur benutzen wenn du .NET Klassen ansprichst, zum Beispiel [system.Net.WebRequest], vielleicht irre ich mich aber auch! Viele Grüße! bearbeitet 21. Februar 2013 von Timsk Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 21. Februar 2013 Melden Teilen Geschrieben 21. Februar 2013 Evtl. statt Catch {... mal Catch [system.Exception] {... probieren. Evtl. am Scriptanfang noch $ErrorActionPreference = "stop" einfügen. Zitieren Link zu diesem Kommentar
ducke 11 Geschrieben 22. Februar 2013 Melden Teilen Geschrieben 22. Februar 2013 Es gibt bei Powershell zwei Arten von Errors. Die Terminating errors und non-terminating errors. Terminating errors werden mit try + catch aufgefangen. Non-terminating errors leider nicht. Du kannst, wie Cybquest schon richtig erwähnt hat, mit -ErrorAction "Stop" arbeiten try { $ErrorActionPreference = "Stop" Set-SPUser ....... } catch { write-host $error[0].exception.Message } finally { $ErrorActionPreference = "Continue" } oder mit der Variable $? Set-SPUser ...... if ($?) { write-host "Alles toll :)" } else { write-host $error[0].exception.Message } Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.