以下是我为解决此问题而编写的PowerShell函数-
function DeleteJupyterKernel {
param (
[string]$baseUrl = "http://localhost:8888" , # Base URL of your Jupyter server
[string]$token = "mytoken", # Your Jupyter access token
[string]$kernelId # ID of the kernel to delete
)
# Create a web session
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
# Initial GET request to set the XSRF token
$getResponse = Invoke-WebRequest -Uri "$baseUrl/tree?" -WebSession $session -UseBasicParsing
# Extract the XSRF token
$xsrfToken = $session.Cookies.GetCookies($baseUrl)['_xsrf'].Value
# Define headers for DELETE request
$headers = @{
"X-XSRFToken" = $xsrfToken
"Authorization" = "token $token"
}
# DELETE request URL
$deleteUri = "$baseUrl/api/kernels/$kernelId"
# Perform the DELETE request
$response = Invoke-RestMethod -Uri $deleteUri -Method Delete -Headers $headers -WebSession $session -SkipCertificateCheck
return $response
}
然后,您可以通过将内核id传递给此函数来调用此函数,如下所示-
DeleteJupyterKernel -kernelId "<kernelid>"
你可以获取内核id,做类似的事情,见下文-
function listjupytersessions{
# Define the URL for GET request
$getUri = "http://localhost:8888/api/sessions/?token=mytoken"
# Send the GET request
$response = Invoke-RestMethod -Uri $getUri -Method Get -SkipCertificateCheck
# Initialize the Counter
$counter = 1
# Process each session
foreach ($session in $response) {
$name = $session.name
$kernelId = $session.kernel.id
$kernelName = $session.kernel.name
$executionState = $session.kernel.execution_state
# Output the extracted information
Write-Host ""
Write-Host "------KernelInfo for Kernel $counter with Id $kernelId Starts------"
Write-Host "Notebook Name: $name"
Write-Host "Kernel ID: $kernelId"
Write-Host "Kernel Name: $kernelName"
Write-Host "Execution State: $executionState"
Write-Host "------KernelInfo for Kernel $counter with Id $kernelId Ends------"
$counter++
}
$counter = 1
}
让我知道进展如何.