Verwenden Sie das Provisioning-Tool, um die erforderlichen Einstellungen für die Jupyter- und NotebookExecution-Dienste durchzuführen.

Das Bereitstellungs-Tool, NINotebookUserSetupCmd.exe, führt folgende Operationen aus:
  • Erstellt oder aktualisiert die Benutzerkonten.
  • Wendet alle erforderlichen Berechtigungen an.
  • Erstellt die Jupyter-Profilverzeichnisstruktur für fehlende Unterverzeichnisse neu.
    Hinweis Beispielsweise fehlt möglicherweise ein Verzeichnis in der Verzeichnishierarchie ProgramData\National Instruments\Skyline\JupyterHub\profile.

Das NIPM-Installationsprogramm führt das Provisioning-Tool automatisch aus. Starten Sie das Tool manuell, um Passwörter zu rotieren, die Funktionalität nach einer Reparatur sicherzustellen oder Profilverzeichnisse wiederherzustellen.

Das Bereitstellungs-Tool wendet die folgenden Zugriffsrechte und Verweigerungsrechte auf die Gruppe SystemLinkNotebooks an.

Tabelle 13. Zulassungsrechte für Bereitstellungs-Tool
Pfad Rechte
%ProgramData%\National Instruments\Skyline\JupyterHub Ändert die Rechte für Jupyter-Profilverzeichnisse und Runtime-Dateien.
%ProgramFiles%\National Instruments\Shared\Skyline\Python Liest und führt den gesamten Inhalt einschließlich der Versionsunterordner aus. Das Provisioning-Tool arbeitet beispielsweise mit dem Unterordner 3.8\. Fehlende Schreibrechte blockieren den Befehl pip install.
Tabelle 14. Verweigerungsrechte für Bereitstellungs-Tool
Pfad Rechte
%ProgramFiles%\National Instruments\Shared\Web Server Volle Kontrolle
%ProgramData%\National Instruments\Skyline\Config Volle Kontrolle
%ProgramData%\National Instruments\Skyline\HttpConfigurations Volle Kontrolle
%ProgramData%\National Instruments\Skyline\Install Volle Kontrolle
%ProgramData%\National Instruments\Skyline\KeyValueDatabase Volle Kontrolle
%ProgramData%\National Instruments\Skyline\Logs Volle Kontrolle
%ProgramData%\National Instruments\Skyline\NoSqlDatabase Volle Kontrolle
%ProgramData%\National Instruments\Skyline\PostgreSQLDatabase Volle Kontrolle
%ProgramData%\National Instruments\Skyline\Python Volle Kontrolle
%ProgramData%\National Instruments\Skyline\RabbitMQ Volle Kontrolle
%ProgramData%\National Instruments\Skyline\SkylineConfigurations Volle Kontrolle
%ProgramData%\National Instruments\SystemLink TDM Index Volle Kontrolle
%ProgramData%\National Instruments\TDM Server Volle Kontrolle
%ProgramData%\National Instruments\Skyline\Data Schreiben. Dieser Pfad behält die Lese- und Ausführungsberechtigungen der Mitgliedschaft Benutzer bei.
%ProgramData%\National Instruments\Skyline\JupyterHub\profile\AppData\Roaming\Python Schreiben. Dieser Pfad blockiert den Befehl pip install --user.

Die Verweigerungsregeln für Dienstverzeichnisse überschreiben den Lesezugriff, den Konten von der Gruppe "Benutzer" erhalten. Zu diesen Verzeichnissen gehören Konfigurieren und Protokolle. Per Voreinstellung hat die Gruppe Benutzer Lesezugriff und Ausführungszugriff auf die meisten Verzeichnisse von %ProgramData%.

Die Schreibverweigerungsregel für %ProgramData%\National Instruments\Skyline\JupyterHub\profile\AppData\Roaming\Python überschreibt das von JupyterHub abgeleitete Recht "Ändern". Regeln sind idempotent und gelten für die Gruppe SystemLinkNotebooks. Diese Regeln wirken sich nicht auf andere Konten aus.

Syntax zum Ausführen des Bereitstellungs-Tools

Zum Ausführen des Provisioning-Tools müssen Sie die folgende Syntax verwenden.

Hinweis Um diese Syntax zu verwenden, starten Sie das Provisioning-Tool mit Administratorberechtigungen.
NINotebookUserSetupCmd.exe --username <name> --service <jupyterhub|notebookexecution> [options]

Required:
  --username    <name>                         Windows local account name to create or update
  --service     <jupyterhub|notebookexecution> Target service for credential storage

Optional:
  --password      <pwd>    Use a specific password (default: auto-generate 32 chars)
  --hide-from-login        Hide the account from the Windows login screen

Gängige PowerShell-Operationen für das Bereitstellungs-Tool

Verwenden Sie je nach Ziel die folgenden Powershell-Operationen mit dem Provisioning-Tool.

Tabelle 15. Gängige Bereitstellungsziele
Ziel Powershell-Operation
Erstellen oder aktualisieren Sie beide Konten
Hinweis Diese Operation funktioniert ähnlich wie das Installationsprogramm.
$exe = "$env:ProgramFiles\National Instruments\Shared\Skyline\NINotebookUserSetupCmd.exe"

& $exe --username SystemLinkJupyterHub --service jupyterhub        --hide-from-login
& $exe --username SystemLinkNotebookEx --service notebookexecution --hide-from-login
Hinweis Wenn das Provisioning-Tool keinen Benutzer erstellen kann, verwenden Sie einen anderen Benutzernamen mit dem Argument --username. SystemLink erlaubt eine maximale Benutzernamenlänge von 20 Zeichen.
Passwort für JupyterHub-Benutzer drehen
& $exe --username SystemLinkJupyterHub --service jupyterhub --password "<user-provided-password>"
Hinweis Nach dem Rotieren eines Passworts müssen Sie SystemLink-Dienste neu starten. Lösen Sie einen Systemneustart aus der Anwendung SystemLink Server Configuration aus.
Verwenden Sie ein automatisch generiertes Passwort für den NotebookExecution-Dienst.
Hinweis Dieser Vorgang verschlüsselt und speichert das Passwort in der Dienstkonfiguration.
& $exe --username SystemLinkNotebookEx --service notebookexecution

Beheben von Provisionierungsfehlern

Wenn das Provisioning-Tool fehlschlägt, werden die von den bereitgestellten Konten abhängigen Dienste nicht ordnungsgemäß gestartet.

  • NotebookExecution – Zeigt den Fehler mit einem Fehlerzustand in der Anwendung "SystemLink Server Configuration" an.
  • JupyterHub—Listet den Fehler unter Dienste mit Fehlern auf. Die Fehlermeldung in der Benutzeroberfläche ist in der Regel allgemein und identifiziert den Fehler nicht als Provisioning-Fehler.

Die genaue Ursache des Fehlers finden Sie in der Bereitstellungs-Protokolldatei unter %ProgramData%\National Instruments\Skyline\Logs\notebookUserSetup.log

Das Provisioning-Tool protokolliert eine [FATAL]-Zeile, die den spezifischen Fehler beschreibt. Beispielsweise kann die Zeile einen Kontonamenkonflikt oder einen Zugriffsfehler beschreiben.

Sie können das Provisioning-Tool auch manuell starten, um die Ausgabe direkt in PowerShell anzuzeigen.

$exe = "$env:ProgramFiles\National Instruments\Shared\Skyline\NINotebookUserSetupCmd.exe"
& $exe --username SystemLinkJupyterHub --service jupyterhub --hide-from-login
Write-Host "Exit code: $LASTEXITCODE"

Führen Sie je nach Fehler folgende Schritte aus:

Tabelle 16. Lösungen für gängige Provisionierungsfehler
Fehler Lösung
Es fehlen Profilverzeichnisse

Wenn Unterverzeichnisse im Jupyter-Profilverzeichnis fehlen, werden Kernel möglicherweise nicht gestartet. Alternativ können die Kernel FileNotFoundError ausgeben. Beispiel-Unterverzeichnisse sind AppData, ipython und jupyter. Diese Unterverzeichnisse fehlen möglicherweise nach einem manuellen Löschen oder einem Installationsfehler.

Ein weiteres Symptom ist ein Notebook, das scheinbar ausgeführt wird, aber keine Ausgabe erzeugt. Dieses Problem kann auftreten, wenn der Kernel die Verbindungsdatei nicht in JUPYTER_RUNTIME_DIR unter profile\jupyter\runtime schreiben kann. Der Kernel-Prozess wird gestartet, aber das Frontend kann keine Verbindung zum Kernel herstellen. Daher liefert das System niemals die Zellenausgabe.

Führen Sie das Provisioning-Tool in Powershell erneut als Administrator für beide Dienste aus.

$exe = "$env:ProgramFiles\National Instruments\Shared\Skyline\NINotebookUserSetupCmd.exe"
& $exe --username SystemLinkJupyterHub --service jupyterhub        --hide-from-login
& $exe --username SystemLinkNotebookEx --service notebookexecution --hide-from-login

Beim erneuten Ausführen des Tools wird die Struktur neu erstellt und ACL erneut angewendet.

Notebook kann nicht gestartet werden

Eine Notebook-Session kann möglicherweise nicht gestartet werden, auch wenn das Provisioning-Protokoll keine Fehler anzeigt. Die häufigste Ursache sind die Zugangsdaten des SystemLinkJupyterHub-Kontos in der JupyterHub-Konfigurationsdatei. Diese Zugangsdaten stimmen wahrscheinlich nicht mit dem tatsächlichen Windows-Kontopasswort überein. Führen Sie das Provisioning-Tool ohne --password erneut aus, um automatisch neue Zugangsdaten zu generieren. Sie müssen dann alle Dienste neu starten.

Die Session kann mit einem allgemeinen Spawn-Fehler fehlschlagen, auch wenn das JupyterHub-Protokoll kein Anmeldedatenproblem anzeigt. Sie müssen den Berechtigungsmodus deaktivieren und die Dienste neu starten. Wenn das Notebook erfolgreich gestartet wird, verursachen Zugriffsbeschränkungen den Fehler. Um die fehlenden Berechtigungen zu identifizieren, lesen Sie die Tabelle zu den Breaking Changes.

Das Notebook kann nach dem Ausführen einer Zelle nicht auf Daten zugreifen.

Eine Notebook-Zelle kann beim Lesen oder Schreiben eines Dateipfads eine Ausnahme PermissionError oder Zugriff verweigert ausgeben. Wenn es eine Ausnahme gibt, hat die Gruppe SystemLinkNotebooks keinen Zugriff auf dieses Verzeichnis. Informationen zum Gewähren des Zugriffs finden Sie unter Entschärfung der Berechtigungen für den Modus mit geringsten Rechten.

Um die aktuellen Berechtigungen für den Pfad vom Notebook aus zu überprüfen, führen Sie den folgenden Befehl in Powershell aus.

import subprocess
result = subprocess.run(["icacls", r"C:\path\to\directory"], capture_output=True, text=True)
print(result.stdout)