Я пишу командлет VB.NET PowerShell, которому необходимо запустить и позже остановить файл Transcript (Start-Transcript). Итак, как мне удастся запустить команду Start-Transcript из командлета? Я попытался это:VB.NET PowerShell Cmdlet Start-Transcript
Dim myRunSpace As Runspace = RunspaceFactory.CreateRunspace()
myRunSpace.Open()
Dim MyPipeline As Pipeline = myRunSpace.CreatePipeline()
MyPipeline.Commands.AddScript("Start-Transcript -Path $pwd\session.txt")
Dim results As Collection(Of PSObject) = MyPipeline.Invoke()
myRunSpace.Close()
Производит ошибку «Start-Transcript: этот хост не поддерживает направление транскрипции». Тем не менее, когда я вхожу в команду вручную , не возникает ошибки и начинается транскрипция.
На самом деле все, что я пытаюсь сделать, это определить, переписывает ли он, поскольку мне нужно отредактировать файл транскрипта, который заблокирован в таком случае, и я могу обнаружить это, если Start-Transcript выдает ошибку. Кроме того, по-видимому, малоизвестная переменная $ transcript редко работает. – Archdeacon
Тогда ваш вопрос является дубликатом http://stackoverflow.com/questions/10170237/powershell-how-to-check-if-transcript-is-running –
Возможно, нет, так как вы действительно хотите отредактировать файл. Я не знаю, как проверить, записана ли запись в настоящее время или нет. Я не знаю, что такое $ transcript, переменная, которую вы настраиваете сами? Насколько я вижу, переменные переменных не изменяются, вызывая Start-Transcript (do 'ls variable:' до и после проверки) в консоли PowerShell. Я предполагаю, что такая переменная будет существовать, это также будет специфичным для узла. –