Udostępnij za pośrednictwem


New-PSRoleCapabilityFile

Tworzy plik, który definiuje zestaw możliwości, które mają być uwidocznione za pośrednictwem konfiguracji sesji.

Składnia

New-PSRoleCapabilityFile
   [-Path] <String>
   [-Guid <Guid>]
   [-Author <String>]
   [-Description <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-ModulesToImport <Object[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <Object[]>]
   [-VisibleFunctions <Object[]>]
   [-VisibleExternalCommands <String[]>]
   [-VisibleProviders <String[]>]
   [-ScriptsToProcess <String[]>]
   [-AliasDefinitions <IDictionary[]>]
   [-FunctionDefinitions <IDictionary[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <IDictionary>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-AssembliesToLoad <String[]>]
   [<CommonParameters>]

Opis

Polecenie cmdlet New-PSRoleCapabilityFile tworzy plik, który definiuje zestaw możliwości użytkownika, które można uwidocznić za pośrednictwem plików konfiguracji sesji. Obejmuje to określenie, które polecenia cmdlet, funkcje i skrypty są dostępne dla użytkowników. Plik możliwości to plik tekstowy czytelny dla człowieka, który zawiera tabelę skrótów właściwości i wartości konfiguracji sesji. Plik ma rozszerzenie nazwy pliku psrc i może być używany przez więcej niż jedną konfigurację sesji.

Wszystkie parametry New-PSRoleCapabilityFile są opcjonalne, z wyjątkiem parametru ścieżka, który określa ścieżkę pliku. Jeśli nie dołączysz parametru podczas uruchamiania polecenia cmdlet, odpowiedni klucz w pliku konfiguracji sesji jest komentowany, z wyjątkiem sytuacji, w których określono w opisie parametru. Jeśli na przykład nie dołączysz parametru AssembliesToLoad, oznacza to, że sekcja pliku konfiguracji sesji zostanie oznaczona jako komentarz.

Aby użyć pliku możliwości roli w konfiguracji sesji, najpierw umieść plik w RoleCapabilities podfolder prawidłowego folderu modułu programu PowerShell. Następnie odwołuj się do pliku według nazwy w polu RoleDefinitions w pliku konfiguracji sesji programu PowerShell (pssc).

To polecenie cmdlet zostało wprowadzone w programie Windows PowerShell 5.0.

Przykłady

Przykład 1. Tworzenie pustego pliku możliwości roli

W tym przykładzie tworzony jest nowy plik możliwości roli, który używa domyślnych (pustych) wartości. Plik można później edytować w edytorze tekstów, aby zmienić te ustawienia konfiguracji.

New-PSRoleCapabilityFile -Path ".\ExampleFile.psrc"

Przykład 2: Tworzenie pliku funkcji roli umożliwiającego użytkownikom ponowne uruchamianie usług i dowolnego komputera VDI

W tym przykładzie tworzony jest przykładowy plik możliwości roli, który umożliwia użytkownikom ponowne uruchamianie usług i komputerów pasujących do określonego wzorca nazwy. Filtrowanie nazw jest definiowane przez ustawienie parametru ValidatePattern na wyrażenie regularne VDI\d+.

$roleParameters = @{
    Path = ".\Maintenance.psrc"
    Author = "User01"
    CompanyName = "Fabrikam Corporation"
    Description = "This role enables users to restart any service and restart any VDI computer."
    ModulesToImport = "Microsoft.PowerShell.Core"
    VisibleCmdlets = "Restart-Service", @{
                      Name = "Restart-Computer"
                      Parameters = @{ Name = "ComputerName"; ValidatePattern = "VDI\d+" }
    }
}
New-PSRoleCapabilityFile @roleParameters

Parametry

-AliasDefinitions

Dodaje określone aliasy do sesji korzystających z pliku możliwości roli. Wprowadź tabelę skrótów z następującymi kluczami:

  • Nazwa. Nazwa aliasu. Ten klucz jest wymagany.
  • Wartość. Polecenie, które reprezentuje alias. Ten klucz jest wymagany.
  • Opis. Ciąg tekstowy opisujący alias. Ten klucz jest opcjonalny.
  • Opcje. Opcje aliasu. Ten klucz jest opcjonalny. Wartość domyślna to Brak. Dopuszczalne wartości tego parametru to: None, ReadOnly, Constant, Private lub AllScope.

Na przykład: @{Name="hlp";Value="Get-Help";Description="Gets help";Options="ReadOnly"}

Typ:IDictionary[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-AssembliesToLoad

Określa zestawy, które mają być ładowane do sesji korzystających z pliku możliwości roli.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Author

Określa użytkownika, który utworzył plik możliwości roli.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CompanyName

Identyfikuje firmę, która utworzyła plik możliwości roli. Wartość domyślna to Nieznany.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Określa prawa autorskie do pliku możliwości roli. Jeśli pominięto ten parametr, New-PSRoleCapabilityFile generuje oświadczenie o prawach autorskich przy użyciu wartości parametru Author.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Description

Określa opis pliku możliwości roli.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-EnvironmentVariables

Określa zmienne środowiskowe dla sesji, które uwidaczniają ten plik możliwości roli. Wprowadź tabelę skrótów, w której klucze są nazwami zmiennych środowiskowych, a wartości są wartościami zmiennych środowiskowych.

Na przykład: EnvironmentVariables=@{TestShare="\\\\Server01\TestShare"}

Typ:IDictionary
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FormatsToProcess

Określa pliki formatowania (.ps1xml), które są uruchamiane w sesjach korzystających z pliku możliwości roli. Wartość tego parametru musi być pełną lub bezwzględną ścieżką plików formatowania.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FunctionDefinitions

Dodaje określone funkcje do sesji, które uwidaczniają możliwość roli. Wprowadź tabelę skrótów z następującymi kluczami:

  • Nazwa. Nazwa funkcji. Ten klucz jest wymagany.
  • ScriptBlock. Treść funkcji. Wprowadź blok skryptu. Ten klucz jest wymagany.
  • Opcje. Opcje funkcji. Ten klucz jest opcjonalny. Wartość domyślna to Brak. Dopuszczalne wartości tego parametru to: None, ReadOnly, Constant, Private lub AllScope.

Na przykład:

@{Name="Get-PowerShellProcess";ScriptBlock={Get-Process PowerShell};Options="AllScope"}

Typ:IDictionary[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Guid

Określa unikatowy identyfikator pliku możliwości roli. Jeśli ten parametr zostanie pominięty, New-PSRoleCapabilityFile wygeneruje identyfikator GUID dla pliku. Aby utworzyć nowy identyfikator GUID w programie PowerShell, wpisz [guid]::NewGuid().

Typ:Guid
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ModulesToImport

Określa moduły, które są automatycznie importowane do sesji korzystających z pliku możliwości roli. Domyślnie wszystkie polecenia w wymienionych modułach są widoczne. W przypadku użycia z VisibleCmdlets lub VisibleFunctionspolecenia widoczne z określonych modułów mogą być ograniczone.

Każdy moduł używany w wartości tego parametru może być reprezentowany przez ciąg lub tabelę skrótów. Ciąg modułu składa się tylko z nazwy modułu. Tabela skrótów modułów może zawierać ModuleName, ModuleVersioni identyfikator GUID kluczy. Wymagany jest tylko klucz ModuleName.

Na przykład następująca wartość składa się z ciągu i tabeli skrótów. Dowolna kombinacja ciągów i tabel skrótów w dowolnej kolejności jest prawidłowa.

"TroubleshootingPack", @{ModuleName="PSDiagnostics"; ModuleVersion="1.0.0.0";GUID="c61d6278-02a3-4618-ae37-a524d40a7f44"}

Typ:Object[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Path

Określa ścieżkę i nazwę pliku funkcji roli. Plik musi mieć rozszerzenie nazwy pliku .psrc.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ScriptsToProcess

Określa skrypty do dodania do sesji korzystających z pliku możliwości roli. Wprowadź ścieżkę i nazwy plików skryptów. Wartość tego parametru musi być pełną lub bezwzględną ścieżką nazw plików skryptu.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-TypesToProcess

Określa pliki typów (.ps1xml) do dodania do sesji korzystających z pliku możliwości roli. Wprowadź nazwy plików typu. Wartość tego parametru musi być pełną lub bezwzględną ścieżką nazw plików typu.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-VariableDefinitions

Określa zmienne do dodania do sesji korzystających z pliku możliwości roli. Wprowadź tabelę skrótów z następującymi kluczami:

  • Nazwa. Nazwa zmiennej. Ten klucz jest wymagany.
  • Wartość. Wartość zmiennej. Ten klucz jest wymagany.

Na przykład: @{Name="WarningPreference";Value="SilentlyContinue"}

Typ:Object
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-VisibleAliases

Ogranicza aliasy w sesji do tych aliasów określonych w wartości tego parametru, a także wszelkie aliasy zdefiniowane w AliasDefinition parametru. Obsługiwane są symbole wieloznaczne. Domyślnie wszystkie aliasy zdefiniowane przez aparat programu PowerShell i wszystkie aliasy eksportowane przez moduły są widoczne w sesji.

Aby na przykład ograniczyć dostępne aliasy do gm i gcm, użyj następującej składni: VisibleAliases="gcm", "gp"

Jeśli dowolny parametr Visible jest uwzględniony w pliku możliwości roli, program PowerShell usuwa polecenie cmdlet Import-Module i jego alias ipmo z sesji.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-VisibleCmdlets

Ogranicza polecenia cmdlet w sesji do tych określonych w wartości tego parametru. Obsługiwane są symbole wieloznaczne i kwalifikowane nazwy modułu.

Domyślnie wszystkie polecenia cmdlet, które moduły w eksporcie sesji są widoczne w sesji. Użyj parametrów SessionType i ModulesToImport, aby określić, które moduły i przystawki są importowane do sesji. Jeśli żadne moduły w ModulesToImport uwidocznić polecenie cmdlet, New-PSRoleCapabilityFile spróbuje załadować odpowiedni moduł.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa polecenie cmdlet Import-Module i jego alias ipmo z sesji.

Typ:Object[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-VisibleExternalCommands

Ogranicza zewnętrzne pliki binarne, skrypty i polecenia, które można wykonać w sesji do tych określonych w wartości tego parametru.

Domyślnie w tej sesji nie są widoczne żadne polecenia zewnętrzne.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa polecenie cmdlet Import-Module i jego alias ipmo z sesji.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-VisibleFunctions

Ogranicza funkcje w sesji do tych określonych w wartości tego parametru, a także wszystkie funkcje zdefiniowane w parametrze FunctionDefinitions. Obsługiwane są symbole wieloznaczne.

Domyślnie wszystkie funkcje wyeksportowane przez moduły w sesji są widoczne w tej sesji. Użyj parametrów SessionType i ModulesToImport, aby określić, które moduły są importowane do sesji.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa polecenie cmdlet Import-Module i jego alias ipmo z sesji.

Typ:Object[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-VisibleProviders

Ogranicza dostawców programu PowerShell w sesji do tych określonych w wartości tego parametru. Obsługiwane są symbole wieloznaczne.

Domyślnie wszyscy dostawcy wyeksportowani przez moduł w sesji są widoczni w sesji. Użyj parametrów SessionType i ModulesToImport, aby określić, które moduły są importowane do sesji.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa polecenie cmdlet Import-Module i jego alias ipmo z sesji.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True