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 New-PSRoleCapabilityFile cmdlet 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 programu są opcjonalne, z wyjątkiem parametru Path , 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 podfolderze RoleCapabilities prawidłowego folderu modułu programu PowerShell. Następnie odwołaj 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 VDI\d+regularne .

$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:

  • Name. 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 ten parametr zostanie pominięty, New-PSRoleCapabilityFile wygeneruje 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:

  • Name. 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 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 elementami VisibleCmdlets lub VisibleFunctions polecenia 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ć klucze ModuleName, ModuleVersion i GUID . 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ć .psrc rozszerzenie nazwy pliku.

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 typu (.ps1xml), które mają zostać dodane 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:

  • Name. 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 wszystkie aliasy zdefiniowane w aliasie parametru AliasDefinition . 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"

Gdy dowolny parametr Visible jest uwzględniony w pliku możliwości roli, program PowerShell usuwa Import-Module polecenie cmdlet i jego ipmo alias 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 moduleToImport nie uwidacznia polecenia cmdlet, New-PSRoleCapabilityFile spróbuje załadować odpowiedni moduł.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego ipmo alias 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 Import-Module polecenie cmdlet i jego ipmo alias 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 oraz wszystkich funkcji zdefiniowanych 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 Import-Module polecenie cmdlet i jego ipmo alias 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 Import-Module polecenie cmdlet i jego ipmo alias z sesji.

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