使用配置工具对Jupyter和NotebookExecution服务进行必要的设置。

配置工具NINotebookUserSetupCmd.exe可执行下列操作:
  • 创建或更新用户帐户。
  • 应用所有必要的权限。
  • 为丢失的子目录重新创建Jupyter配置文件目录结构。
    备注 例如,ProgramData\National Instruments\Skyline\JupyterHub\profile目录层次结构中可能缺少一个目录。

NIPM安装程序将自动运行配置工具。手动运行该工具以轮换密码、确保修复后功能正常或恢复配置文件目录。

配置工具对SystemLinkNotebooks组应用下列允许权限和拒绝权限。

表 13. 授予配置工具相关权限
路径 权限
%ProgramData%\National Instruments\Skyline\JupyterHub 修改Jupyter配置文件目录和运行时文件的权限。
%ProgramFiles%\National Instruments\Shared\Skyline\Python 读取并执行所有内容,包括版本子文件夹。例如,配置工具可用于3.8\子文件夹。缺少写入权限将阻止pip install命令。
表 14. 拒绝授予配置工具权限
路径 权限
%ProgramFiles%\National Instruments\Shared\Web Server 完全控制
%ProgramData%\National Instruments\Skyline\Config 完全控制
%ProgramData%\National Instruments\Skyline\HttpConfigurations 完全控制
%ProgramData%\National Instruments\Skyline\Install 完全控制
%ProgramData%\National Instruments\Skyline\KeyValueDatabase 完全控制
%ProgramData%\National Instruments\Skyline\Logs 完全控制
%ProgramData%\National Instruments\Skyline\NoSqlDatabase 完全控制
%ProgramData%\National Instruments\Skyline\PostgreSQLDatabase 完全控制
%ProgramData%\National Instruments\Skyline\Python 完全控制
%ProgramData%\National Instruments\Skyline\RabbitMQ 完全控制
%ProgramData%\National Instruments\Skyline\SkylineConfigurations 完全控制
%ProgramData%\National Instruments\SystemLink TDM Index 完全控制
%ProgramData%\National Instruments\TDM Server 完全控制
%ProgramData%\National Instruments\Skyline\Data 写入。该路径保留了Users成员的读取和执行权限。
%ProgramData%\National Instruments\Skyline\JupyterHub\profile\AppData\Roaming\Python 写入。该路径阻止pip install --user命令。

服务目录的拒绝规则将重写帐户继承自用户组的读取权限。这些目录包括ConfigLogs。默认情况下,Users组对大多数%ProgramData%目录具有读取和执行权限。

%ProgramData%\National Instruments\Skyline\JupyterHub\profile\AppData\Roaming\Python中的拒绝写入规则将重写从JupyterHub继承的修改权限。规则具备幂等性,且作用域限定为SystemLinkNotebooks组。这些规则不影响任何其他帐户。

运行配置工具的语法

要运行配置工具,必须使用以下语法。

备注 如需使用该语法,请以管理员权限运行配置工具。
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

配置工具的常见PowerShell操作

根据您的目标,在配置工具中使用下列Powershell操作。

表 15. 常见配置目标
目标 Powershell操作
创建或更新两个帐户
备注 该操作与安装程序类似。
$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
备注 如果配置工具无法创建用户,请尝试通过--username参数使用其他用户名。SystemLink允许的最大用户名长度为20个字符。
轮换JupyterHub用户的密码
& $exe --username SystemLinkJupyterHub --service jupyterhub --password "<user-provided-password>"
备注 轮换密码后,须重新启动SystemLink服务。从SystemLink Server配置应用程序触发系统重启。
NotebookExecution服务使用自动生成的密码。
备注 此操作将加密密码并将其存储在服务配置中。
& $exe --username SystemLinkNotebookEx --service notebookexecution

调试配置失败

如果配置工具失败,依赖于已配置帐户的服务将无法正确启动。

  • NotebookExecution-显示SystemLink Server配置应用程序中具有错误状态的故障。
  • JupyterHub-在有错误的服务下列出该故障。用户界面中的错误消息通常是通用的,无法将错误识别为配置失败。

如需确定失败的确切原因,请参阅以下位置的配置日志文件:%ProgramData%\National Instruments\Skyline\Logs\notebookUserSetup.log

配置工具记录描述特定故障的[FATAL]行。例如,该行可能描述了帐户名称冲突或访问错误。

也可手动运行配置工具,直接查看PowerShell的输出。

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

根据错误,执行以下步骤。

表 16. 常见配置错误的解决方案
错误 解答
缺少配置文件目录

如Jupyter配置文件目录中缺少子目录,内核可能无法启动。或者,内核可能返回FileNotFoundError。子目录包括AppDataipythonjupyter。手动删除或安装失败后,这些子目录可能丢失。

另一种症状是Notebook看似执行但不产生输出。当内核无法将连接文件写入profile\jupyter\runtime下的JUPYTER_RUNTIME_DIR时,可能发生该问题。内核进程启动,但前端无法连接至内核。因此,系统不会提供单元格输出。

如需解决该问题,可在Powershell中以管理员身份为两个服务重新运行配置工具。

$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

再次运行工具将重新创建结构并重新应用ACL。

Notebook无法启动

即使配置日志未显示错误,Notebook会话也可能无法启动。最常见的原因是JupyterHub配置文件中的SystemLinkJupyterHub帐户凭证。这些凭据可能与实际的Windows帐户密码不同步。不使用--password重新运行配置工具以自动生成新的凭据。然后必须重启所有服务。

即使JupyterHub日志未显示凭据问题,会话也可能失败并出现通用生成错误。必须退出权限模式并重启服务。如果Notebook启动成功,访问限制将导致失败。如需识别缺失的权限,请参阅重大变更表。

运行单元格后,Notebook无法访问数据。

Notebook单元格可能在读取或写入文件路径时返回PermissionError异常或Access is denied异常。如发生异常,SystemLinkNotebooks组无权访问该目录。如需授予访问权限,请参阅放宽最低权限模式的权限

要在Notebook内部检查路径的当前权限,请在Powershell中运行以下命令。

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