Powershell 使用NITRO获取Netscaler ns.log的内容

Powershell 使用NITRO获取Netscaler ns.log的内容,powershell,netscaler,Powershell,Netscaler,我正在尝试使用Nitro在NetScaler上获取ns.log文件的内容。这是密码 $URL = 'https://$NSIP/nitro/v1/config/systemfile/ns.log?args=filelocation:%2fvar%2Flog' $varlog = Invoke-WebRequest -Method Get -uri $URL -UseDefaultCredentials | ConvertFrom-Json 我得到了文件本身的详细信息(下面的输出),但它缺少f

我正在尝试使用Nitro在NetScaler上获取ns.log文件的内容。这是密码

$URL = 'https://$NSIP/nitro/v1/config/systemfile/ns.log?args=filelocation:%2fvar%2Flog'
$varlog = Invoke-WebRequest -Method Get -uri $URL  -UseDefaultCredentials | ConvertFrom-Json
我得到了文件本身的详细信息(下面的输出),但它缺少filecontent部分

文件名:ns.log
文件位置:/var/log
文件编码:BASE64
文件访问时间:2017年4月26日星期三01:00:01
文件修改时间:2017年4月26日星期三07:19:23

事实上,当我试图获取var/log文件夹中任何文件的内容时,我也遇到了同样的问题。当我在任何其他文件夹上尝试此功能时,效果都很好。 当我使用油灰时,我可以很好地阅读文件

我发现一篇Citrix文章说有2MB的文件大小限制(不确定限制是什么),但我的ns.log文件只有49kB


是否有人知道在NetScaler上使用nitro有任何其他限制,或者找到了获取文件内容的方法?有一个GUI函数允许这样做。在系统-审核下,选择“Recenet Audit Messages”。在这里,我相信您能够使用开发人员工具来分析有效负载。使用的特定命令属于rapi,而不是NitroAPI,因此您找不到任何文档

Request URL: http://hostname/rapi/remote_shell
payload:object: {"params":{"warning":"YES"},"remote_shell":{"command":"show audit messages -logLevel ALL -numOfMesgs 20","prompt":">show audit messages -logLevel ALL -numOfMesgs 20","target":"cli"}}

我已经更新了缺少的报价输入错误。我试过在没有
| convertfromjson
的情况下进行转换,但仍然存在相同的问题。我已经使用了invoke webrequest的所有别名,并尝试了invoke restmethod。我还尝试使用
-credential
输入凭据。我可以得到较大文件的文件内容,所以我认为大小不是问题。谢谢NetScaler日志文件不是二进制文件吗?在这种情况下,您必须在Invoke-WebRequest中显式设置-OutputFile。您的意思是
-outfile
?只是累了,它将我已经提到的内容输出到一个文件中。没什么新鲜事在我发布这个问题之前的一个多星期,我用Citrix记录了一个支持电话,在上传了一个又一个日志后,他们终于告诉我,使用NITRO查看日志文件的内容是不受支持的!如果其他人也有同样的问题,为了解决这个问题,我最终使用plink将ssh连接到netscaler,并将日志文件复制到一个变量中。然后,我可以格式化它,但我喜欢